162306a36Sopenharmony_ci* Amlogic Meson8, Meson8b and Meson8m2 Clock and Reset Unit 262306a36Sopenharmony_ci 362306a36Sopenharmony_ciThe Amlogic Meson8 / Meson8b / Meson8m2 clock controller generates and 462306a36Sopenharmony_cisupplies clock to various controllers within the SoC. 562306a36Sopenharmony_ci 662306a36Sopenharmony_ciRequired Properties: 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci- compatible: must be one of: 962306a36Sopenharmony_ci - "amlogic,meson8-clkc" for Meson8 (S802) SoCs 1062306a36Sopenharmony_ci - "amlogic,meson8b-clkc" for Meson8 (S805) SoCs 1162306a36Sopenharmony_ci - "amlogic,meson8m2-clkc" for Meson8m2 (S812) SoCs 1262306a36Sopenharmony_ci- #clock-cells: should be 1. 1362306a36Sopenharmony_ci- #reset-cells: should be 1. 1462306a36Sopenharmony_ci- clocks: list of clock phandles, one for each entry in clock-names 1562306a36Sopenharmony_ci- clock-names: should contain the following: 1662306a36Sopenharmony_ci * "xtal": the 24MHz system oscillator 1762306a36Sopenharmony_ci * "ddr_pll": the DDR PLL clock 1862306a36Sopenharmony_ci * "clk_32k": (if present) the 32kHz clock signal from GPIOAO_6 (CLK_32K_IN) 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ciParent node should have the following properties : 2162306a36Sopenharmony_ci- compatible: "amlogic,meson-hhi-sysctrl", "simple-mfd", "syscon" 2262306a36Sopenharmony_ci- reg: base address and size of the HHI system control register space. 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciEach clock is assigned an identifier and client nodes can use this identifier 2562306a36Sopenharmony_cito specify the clock which they consume. All available clocks are defined as 2662306a36Sopenharmony_cipreprocessor macros in the dt-bindings/clock/meson8b-clkc.h header and can be 2762306a36Sopenharmony_ciused in device tree sources. 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ciSimilarly a preprocessor macro for each reset line is defined in 3062306a36Sopenharmony_cidt-bindings/reset/amlogic,meson8b-clkc-reset.h (which can be used from the 3162306a36Sopenharmony_cidevice tree sources). 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ciExample: Clock controller node: 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci clkc: clock-controller { 3762306a36Sopenharmony_ci compatible = "amlogic,meson8b-clkc"; 3862306a36Sopenharmony_ci #clock-cells = <1>; 3962306a36Sopenharmony_ci #reset-cells = <1>; 4062306a36Sopenharmony_ci }; 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ciExample: UART controller node that consumes the clock generated by the clock 4462306a36Sopenharmony_ci controller: 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci uart_AO: serial@c81004c0 { 4762306a36Sopenharmony_ci compatible = "amlogic,meson-uart"; 4862306a36Sopenharmony_ci reg = <0xc81004c0 0x14>; 4962306a36Sopenharmony_ci interrupts = <0 90 1>; 5062306a36Sopenharmony_ci clocks = <&clkc CLKID_CLK81>; 5162306a36Sopenharmony_ci }; 52