1*4882a593SmuzhiyunDevice Tree Clock bindings for arch-rockchip 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunThis binding uses the common clock binding[1]. 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun[1] Documentation/devicetree/bindings/clock/clock-bindings.txt 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun== Gate clocks == 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunThese bindings are deprecated! 10*4882a593SmuzhiyunPlease use the soc specific CRU bindings instead. 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunThe gate registers form a continuos block which makes the dt node 13*4882a593Smuzhiyunstructure a matter of taste, as either all gates can be put into 14*4882a593Smuzhiyunone gate clock spanning all registers or they can be divided into 15*4882a593Smuzhiyunthe 10 individual gates containing 16 clocks each. 16*4882a593SmuzhiyunThe code supports both approaches. 17*4882a593Smuzhiyun 18*4882a593SmuzhiyunRequired properties: 19*4882a593Smuzhiyun- compatible : "rockchip,rk2928-gate-clk" 20*4882a593Smuzhiyun- reg : shall be the control register address(es) for the clock. 21*4882a593Smuzhiyun- #clock-cells : from common clock binding; shall be set to 1 22*4882a593Smuzhiyun- clock-output-names : the corresponding gate names that the clock controls 23*4882a593Smuzhiyun- clocks : should contain the parent clock for each individual gate, 24*4882a593Smuzhiyun therefore the number of clocks elements should match the number of 25*4882a593Smuzhiyun clock-output-names 26*4882a593Smuzhiyun 27*4882a593SmuzhiyunExample using multiple gate clocks: 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun clk_gates0: gate-clk@200000d0 { 30*4882a593Smuzhiyun compatible = "rockchip,rk2928-gate-clk"; 31*4882a593Smuzhiyun reg = <0x200000d0 0x4>; 32*4882a593Smuzhiyun clocks = <&dummy>, <&dummy>, 33*4882a593Smuzhiyun <&dummy>, <&dummy>, 34*4882a593Smuzhiyun <&dummy>, <&dummy>, 35*4882a593Smuzhiyun <&dummy>, <&dummy>, 36*4882a593Smuzhiyun <&dummy>, <&dummy>, 37*4882a593Smuzhiyun <&dummy>, <&dummy>, 38*4882a593Smuzhiyun <&dummy>, <&dummy>, 39*4882a593Smuzhiyun <&dummy>, <&dummy>; 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun clock-output-names = 42*4882a593Smuzhiyun "gate_core_periph", "gate_cpu_gpll", 43*4882a593Smuzhiyun "gate_ddrphy", "gate_aclk_cpu", 44*4882a593Smuzhiyun "gate_hclk_cpu", "gate_pclk_cpu", 45*4882a593Smuzhiyun "gate_atclk_cpu", "gate_i2s0", 46*4882a593Smuzhiyun "gate_i2s0_frac", "gate_i2s1", 47*4882a593Smuzhiyun "gate_i2s1_frac", "gate_i2s2", 48*4882a593Smuzhiyun "gate_i2s2_frac", "gate_spdif", 49*4882a593Smuzhiyun "gate_spdif_frac", "gate_testclk"; 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun #clock-cells = <1>; 52*4882a593Smuzhiyun }; 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun clk_gates1: gate-clk@200000d4 { 55*4882a593Smuzhiyun compatible = "rockchip,rk2928-gate-clk"; 56*4882a593Smuzhiyun reg = <0x200000d4 0x4>; 57*4882a593Smuzhiyun clocks = <&xin24m>, <&xin24m>, 58*4882a593Smuzhiyun <&xin24m>, <&dummy>, 59*4882a593Smuzhiyun <&dummy>, <&xin24m>, 60*4882a593Smuzhiyun <&xin24m>, <&dummy>, 61*4882a593Smuzhiyun <&xin24m>, <&dummy>, 62*4882a593Smuzhiyun <&xin24m>, <&dummy>, 63*4882a593Smuzhiyun <&xin24m>, <&dummy>, 64*4882a593Smuzhiyun <&xin24m>, <&dummy>; 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun clock-output-names = 67*4882a593Smuzhiyun "gate_timer0", "gate_timer1", 68*4882a593Smuzhiyun "gate_timer2", "gate_jtag", 69*4882a593Smuzhiyun "gate_aclk_lcdc1_src", "gate_otgphy0", 70*4882a593Smuzhiyun "gate_otgphy1", "gate_ddr_gpll", 71*4882a593Smuzhiyun "gate_uart0", "gate_frac_uart0", 72*4882a593Smuzhiyun "gate_uart1", "gate_frac_uart1", 73*4882a593Smuzhiyun "gate_uart2", "gate_frac_uart2", 74*4882a593Smuzhiyun "gate_uart3", "gate_frac_uart3"; 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun #clock-cells = <1>; 77*4882a593Smuzhiyun }; 78