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