1*c66ec88fSEmmanuel Vadot* Amlogic GXBB Clock and Reset Unit 2*c66ec88fSEmmanuel Vadot 3*c66ec88fSEmmanuel VadotThe Amlogic GXBB clock controller generates and supplies clock to various 4*c66ec88fSEmmanuel Vadotcontrollers within the SoC. 5*c66ec88fSEmmanuel Vadot 6*c66ec88fSEmmanuel VadotRequired Properties: 7*c66ec88fSEmmanuel Vadot 8*c66ec88fSEmmanuel Vadot- compatible: should be: 9*c66ec88fSEmmanuel Vadot "amlogic,gxbb-clkc" for GXBB SoC, 10*c66ec88fSEmmanuel Vadot "amlogic,gxl-clkc" for GXL and GXM SoC, 11*c66ec88fSEmmanuel Vadot "amlogic,axg-clkc" for AXG SoC. 12*c66ec88fSEmmanuel Vadot "amlogic,g12a-clkc" for G12A SoC. 13*c66ec88fSEmmanuel Vadot "amlogic,g12b-clkc" for G12B SoC. 14*c66ec88fSEmmanuel Vadot "amlogic,sm1-clkc" for SM1 SoC. 15*c66ec88fSEmmanuel Vadot- clocks : list of clock phandle, one for each entry clock-names. 16*c66ec88fSEmmanuel Vadot- clock-names : should contain the following: 17*c66ec88fSEmmanuel Vadot * "xtal": the platform xtal 18*c66ec88fSEmmanuel Vadot 19*c66ec88fSEmmanuel Vadot- #clock-cells: should be 1. 20*c66ec88fSEmmanuel Vadot 21*c66ec88fSEmmanuel VadotEach clock is assigned an identifier and client nodes can use this identifier 22*c66ec88fSEmmanuel Vadotto specify the clock which they consume. All available clocks are defined as 23*c66ec88fSEmmanuel Vadotpreprocessor macros in the dt-bindings/clock/gxbb-clkc.h header and can be 24*c66ec88fSEmmanuel Vadotused in device tree sources. 25*c66ec88fSEmmanuel Vadot 26*c66ec88fSEmmanuel VadotParent node should have the following properties : 27*c66ec88fSEmmanuel Vadot- compatible: "syscon", "simple-mfd, and "amlogic,meson-gx-hhi-sysctrl" or 28*c66ec88fSEmmanuel Vadot "amlogic,meson-axg-hhi-sysctrl" 29*c66ec88fSEmmanuel Vadot- reg: base address and size of the HHI system control register space. 30*c66ec88fSEmmanuel Vadot 31*c66ec88fSEmmanuel VadotExample: Clock controller node: 32*c66ec88fSEmmanuel Vadot 33*c66ec88fSEmmanuel Vadotsysctrl: system-controller@0 { 34*c66ec88fSEmmanuel Vadot compatible = "amlogic,meson-gx-hhi-sysctrl", "syscon", "simple-mfd"; 35*c66ec88fSEmmanuel Vadot reg = <0 0 0 0x400>; 36*c66ec88fSEmmanuel Vadot 37*c66ec88fSEmmanuel Vadot clkc: clock-controller { 38*c66ec88fSEmmanuel Vadot #clock-cells = <1>; 39*c66ec88fSEmmanuel Vadot compatible = "amlogic,gxbb-clkc"; 40*c66ec88fSEmmanuel Vadot clocks = <&xtal>; 41*c66ec88fSEmmanuel Vadot clock-names = "xtal"; 42*c66ec88fSEmmanuel Vadot }; 43*c66ec88fSEmmanuel Vadot}; 44*c66ec88fSEmmanuel Vadot 45*c66ec88fSEmmanuel VadotExample: UART controller node that consumes the clock generated by the clock 46*c66ec88fSEmmanuel Vadot controller: 47*c66ec88fSEmmanuel Vadot 48*c66ec88fSEmmanuel Vadot uart_AO: serial@c81004c0 { 49*c66ec88fSEmmanuel Vadot compatible = "amlogic,meson-uart"; 50*c66ec88fSEmmanuel Vadot reg = <0xc81004c0 0x14>; 51*c66ec88fSEmmanuel Vadot interrupts = <0 90 1>; 52*c66ec88fSEmmanuel Vadot clocks = <&clkc CLKID_CLK81>; 53*c66ec88fSEmmanuel Vadot }; 54