1*c66ec88fSEmmanuel Vadot* Samsung S5P6442/S5PC110/S5PV210 Clock Controller 2*c66ec88fSEmmanuel Vadot 3*c66ec88fSEmmanuel VadotSamsung S5P6442, S5PC110 and S5PV210 SoCs contain integrated clock 4*c66ec88fSEmmanuel Vadotcontroller, which generates and supplies clock to various controllers 5*c66ec88fSEmmanuel Vadotwithin the SoC. 6*c66ec88fSEmmanuel Vadot 7*c66ec88fSEmmanuel VadotRequired Properties: 8*c66ec88fSEmmanuel Vadot 9*c66ec88fSEmmanuel Vadot- compatible: should be one of following: 10*c66ec88fSEmmanuel Vadot - "samsung,s5pv210-clock" : for clock controller of Samsung 11*c66ec88fSEmmanuel Vadot S5PC110/S5PV210 SoCs, 12*c66ec88fSEmmanuel Vadot - "samsung,s5p6442-clock" : for clock controller of Samsung 13*c66ec88fSEmmanuel Vadot S5P6442 SoC. 14*c66ec88fSEmmanuel Vadot 15*c66ec88fSEmmanuel Vadot- reg: physical base address of the controller and length of memory mapped 16*c66ec88fSEmmanuel Vadot region. 17*c66ec88fSEmmanuel Vadot 18*c66ec88fSEmmanuel Vadot- #clock-cells: should be 1. 19*c66ec88fSEmmanuel Vadot 20*c66ec88fSEmmanuel VadotAll available clocks are defined as preprocessor macros in 21*c66ec88fSEmmanuel Vadotdt-bindings/clock/s5pv210.h header and can be used in device tree sources. 22*c66ec88fSEmmanuel Vadot 23*c66ec88fSEmmanuel VadotExternal clocks: 24*c66ec88fSEmmanuel Vadot 25*c66ec88fSEmmanuel VadotThere are several clocks that are generated outside the SoC. It is expected 26*c66ec88fSEmmanuel Vadotthat they are defined using standard clock bindings with following 27*c66ec88fSEmmanuel Vadotclock-output-names: 28*c66ec88fSEmmanuel Vadot - "xxti": external crystal oscillator connected to XXTI and XXTO pins of 29*c66ec88fSEmmanuel Vadotthe SoC, 30*c66ec88fSEmmanuel Vadot - "xusbxti": external crystal oscillator connected to XUSBXTI and XUSBXTO 31*c66ec88fSEmmanuel Vadotpins of the SoC, 32*c66ec88fSEmmanuel Vadot 33*c66ec88fSEmmanuel VadotA subset of above clocks available on given board shall be specified in 34*c66ec88fSEmmanuel Vadotboard device tree, including the system base clock, as selected by XOM[0] 35*c66ec88fSEmmanuel Vadotpin of the SoC. Refer to generic fixed rate clock bindings 36*c66ec88fSEmmanuel Vadotdocumentation[1] for more information how to specify these clocks. 37*c66ec88fSEmmanuel Vadot 38*c66ec88fSEmmanuel Vadot[1] Documentation/devicetree/bindings/clock/fixed-clock.yaml 39*c66ec88fSEmmanuel Vadot 40*c66ec88fSEmmanuel VadotExample: Clock controller node: 41*c66ec88fSEmmanuel Vadot 42*c66ec88fSEmmanuel Vadot clock: clock-controller@7e00f000 { 43*c66ec88fSEmmanuel Vadot compatible = "samsung,s5pv210-clock"; 44*c66ec88fSEmmanuel Vadot reg = <0x7e00f000 0x1000>; 45*c66ec88fSEmmanuel Vadot #clock-cells = <1>; 46*c66ec88fSEmmanuel Vadot }; 47*c66ec88fSEmmanuel Vadot 48*c66ec88fSEmmanuel VadotExample: Required external clocks: 49*c66ec88fSEmmanuel Vadot 50*c66ec88fSEmmanuel Vadot xxti: clock-xxti { 51*c66ec88fSEmmanuel Vadot compatible = "fixed-clock"; 52*c66ec88fSEmmanuel Vadot clock-output-names = "xxti"; 53*c66ec88fSEmmanuel Vadot clock-frequency = <24000000>; 54*c66ec88fSEmmanuel Vadot #clock-cells = <0>; 55*c66ec88fSEmmanuel Vadot }; 56*c66ec88fSEmmanuel Vadot 57*c66ec88fSEmmanuel Vadot xusbxti: clock-xusbxti { 58*c66ec88fSEmmanuel Vadot compatible = "fixed-clock"; 59*c66ec88fSEmmanuel Vadot clock-output-names = "xusbxti"; 60*c66ec88fSEmmanuel Vadot clock-frequency = <24000000>; 61*c66ec88fSEmmanuel Vadot #clock-cells = <0>; 62*c66ec88fSEmmanuel Vadot }; 63*c66ec88fSEmmanuel Vadot 64*c66ec88fSEmmanuel VadotExample: UART controller node that consumes the clock generated by the clock 65*c66ec88fSEmmanuel Vadot controller (refer to the standard clock bindings for information about 66*c66ec88fSEmmanuel Vadot "clocks" and "clock-names" properties): 67*c66ec88fSEmmanuel Vadot 68*c66ec88fSEmmanuel Vadot uart0: serial@e2900000 { 69*c66ec88fSEmmanuel Vadot compatible = "samsung,s5pv210-uart"; 70*c66ec88fSEmmanuel Vadot reg = <0xe2900000 0x400>; 71*c66ec88fSEmmanuel Vadot interrupt-parent = <&vic1>; 72*c66ec88fSEmmanuel Vadot interrupts = <10>; 73*c66ec88fSEmmanuel Vadot clock-names = "uart", "clk_uart_baud0", 74*c66ec88fSEmmanuel Vadot "clk_uart_baud1"; 75*c66ec88fSEmmanuel Vadot clocks = <&clocks UART0>, <&clocks UART0>, 76*c66ec88fSEmmanuel Vadot <&clocks SCLK_UART0>; 77*c66ec88fSEmmanuel Vadot }; 78