162306a36Sopenharmony_ciSpreadtrum SC9860 Clock Binding 262306a36Sopenharmony_ci------------------------ 362306a36Sopenharmony_ci 462306a36Sopenharmony_ciRequired properties: 562306a36Sopenharmony_ci- compatible: should contain the following compatible strings: 662306a36Sopenharmony_ci - "sprd,sc9860-pmu-gate" 762306a36Sopenharmony_ci - "sprd,sc9860-pll" 862306a36Sopenharmony_ci - "sprd,sc9860-ap-clk" 962306a36Sopenharmony_ci - "sprd,sc9860-aon-prediv" 1062306a36Sopenharmony_ci - "sprd,sc9860-apahb-gate" 1162306a36Sopenharmony_ci - "sprd,sc9860-aon-gate" 1262306a36Sopenharmony_ci - "sprd,sc9860-aonsecure-clk" 1362306a36Sopenharmony_ci - "sprd,sc9860-agcp-gate" 1462306a36Sopenharmony_ci - "sprd,sc9860-gpu-clk" 1562306a36Sopenharmony_ci - "sprd,sc9860-vsp-clk" 1662306a36Sopenharmony_ci - "sprd,sc9860-vsp-gate" 1762306a36Sopenharmony_ci - "sprd,sc9860-cam-clk" 1862306a36Sopenharmony_ci - "sprd,sc9860-cam-gate" 1962306a36Sopenharmony_ci - "sprd,sc9860-disp-clk" 2062306a36Sopenharmony_ci - "sprd,sc9860-disp-gate" 2162306a36Sopenharmony_ci - "sprd,sc9860-apapb-gate" 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci- #clock-cells: must be 1 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci- clocks : Should be the input parent clock(s) phandle for the clock, this 2662306a36Sopenharmony_ci property here just simply shows which clock group the clocks' 2762306a36Sopenharmony_ci parents are in, since each clk node would represent many clocks 2862306a36Sopenharmony_ci which are defined in the driver. The detailed dependency 2962306a36Sopenharmony_ci relationship (i.e. how many parents and which are the parents) 3062306a36Sopenharmony_ci are implemented in driver code. 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ciOptional properties: 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci- reg: Contain the registers base address and length. It must be configured 3562306a36Sopenharmony_ci only if no 'sprd,syscon' under the node. 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci- sprd,syscon: phandle to the syscon which is in the same address area with 3862306a36Sopenharmony_ci the clock, and so we can get regmap for the clocks from the 3962306a36Sopenharmony_ci syscon device. 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ciExample: 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci pmu_gate: pmu-gate { 4462306a36Sopenharmony_ci compatible = "sprd,sc9860-pmu-gate"; 4562306a36Sopenharmony_ci sprd,syscon = <&pmu_regs>; 4662306a36Sopenharmony_ci clocks = <&ext_26m>; 4762306a36Sopenharmony_ci #clock-cells = <1>; 4862306a36Sopenharmony_ci }; 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci pll: pll { 5162306a36Sopenharmony_ci compatible = "sprd,sc9860-pll"; 5262306a36Sopenharmony_ci sprd,syscon = <&ana_regs>; 5362306a36Sopenharmony_ci clocks = <&pmu_gate 0>; 5462306a36Sopenharmony_ci #clock-cells = <1>; 5562306a36Sopenharmony_ci }; 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci ap_clk: clock-controller@20000000 { 5862306a36Sopenharmony_ci compatible = "sprd,sc9860-ap-clk"; 5962306a36Sopenharmony_ci reg = <0 0x20000000 0 0x400>; 6062306a36Sopenharmony_ci clocks = <&ext_26m>, <&pll 0>, 6162306a36Sopenharmony_ci <&pmu_gate 0>; 6262306a36Sopenharmony_ci #clock-cells = <1>; 6362306a36Sopenharmony_ci }; 64