1 Device Tree Clock bindings for APM X-Gene 1 Device Tree Clock bindings for APM X-Gene 2 2 3 This binding uses the common clock binding[1]. 3 This binding uses the common clock binding[1]. 4 4 5 [1] Documentation/devicetree/bindings/clock/cl 5 [1] Documentation/devicetree/bindings/clock/clock-bindings.txt 6 6 7 Required properties: 7 Required properties: 8 - compatible : shall be one of the following: 8 - compatible : shall be one of the following: 9 "apm,xgene-socpll-clock" - for a X-Gen 9 "apm,xgene-socpll-clock" - for a X-Gene SoC PLL clock 10 "apm,xgene-pcppll-clock" - for a X-Gen 10 "apm,xgene-pcppll-clock" - for a X-Gene PCP PLL clock 11 "apm,xgene-pmd-clock" - for a X-Gene P 11 "apm,xgene-pmd-clock" - for a X-Gene PMD clock 12 "apm,xgene-device-clock" - for a X-Gen 12 "apm,xgene-device-clock" - for a X-Gene device clock 13 "apm,xgene-socpll-v2-clock" - for a X- 13 "apm,xgene-socpll-v2-clock" - for a X-Gene SoC PLL v2 clock 14 "apm,xgene-pcppll-v2-clock" - for a X- 14 "apm,xgene-pcppll-v2-clock" - for a X-Gene PCP PLL v2 clock 15 15 16 Required properties for SoC or PCP PLL clocks: 16 Required properties for SoC or PCP PLL clocks: 17 - reg : shall be the physical PLL register add 17 - reg : shall be the physical PLL register address for the pll clock. 18 - clocks : shall be the input parent clock pha 18 - clocks : shall be the input parent clock phandle for the clock. This should 19 be the reference clock. 19 be the reference clock. 20 - #clock-cells : shall be set to 1. 20 - #clock-cells : shall be set to 1. 21 - clock-output-names : shall be the name of th 21 - clock-output-names : shall be the name of the PLL referenced by derive 22 clock. 22 clock. 23 Optional properties for PLL clocks: 23 Optional properties for PLL clocks: 24 - clock-names : shall be the name of the PLL. 24 - clock-names : shall be the name of the PLL. If missing, use the device name. 25 25 26 Required properties for PMD clocks: 26 Required properties for PMD clocks: 27 - reg : shall be the physical register address 27 - reg : shall be the physical register address for the pmd clock. 28 - clocks : shall be the input parent clock pha 28 - clocks : shall be the input parent clock phandle for the clock. 29 - #clock-cells : shall be set to 1. 29 - #clock-cells : shall be set to 1. 30 - clock-output-names : shall be the name of th 30 - clock-output-names : shall be the name of the clock referenced by derive 31 clock. 31 clock. 32 Optional properties for PLL clocks: 32 Optional properties for PLL clocks: 33 - clock-names : shall be the name of the clock 33 - clock-names : shall be the name of the clock. If missing, use the device name. 34 34 35 Required properties for device clocks: 35 Required properties for device clocks: 36 - reg : shall be a list of address and length 36 - reg : shall be a list of address and length pairs describing the CSR 37 reset and/or the divider. Either may 37 reset and/or the divider. Either may be omitted, but at least 38 one must be present. 38 one must be present. 39 - reg-names : shall be a string list describi 39 - reg-names : shall be a string list describing the reg resource. This 40 may include "csr-reg" and/or "d 40 may include "csr-reg" and/or "div-reg". If this property 41 is not present, the reg propert 41 is not present, the reg property is assumed to describe 42 only "csr-reg". 42 only "csr-reg". 43 - clocks : shall be the input parent clock pha 43 - clocks : shall be the input parent clock phandle for the clock. 44 - #clock-cells : shall be set to 1. 44 - #clock-cells : shall be set to 1. 45 - clock-output-names : shall be the name of th 45 - clock-output-names : shall be the name of the device referenced. 46 Optional properties for device clocks: 46 Optional properties for device clocks: 47 - clock-names : shall be the name of the devic 47 - clock-names : shall be the name of the device clock. If missing, use the 48 device name. 48 device name. 49 - csr-offset : Offset to the CSR reset registe 49 - csr-offset : Offset to the CSR reset register from the reset address base. 50 Default is 0. 50 Default is 0. 51 - csr-mask : CSR reset mask bit. Default is 0x 51 - csr-mask : CSR reset mask bit. Default is 0xF. 52 - enable-offset : Offset to the enable registe 52 - enable-offset : Offset to the enable register from the reset address base. 53 Default is 0x8. 53 Default is 0x8. 54 - enable-mask : CSR enable mask bit. Default i 54 - enable-mask : CSR enable mask bit. Default is 0xF. 55 - divider-offset : Offset to the divider CSR r 55 - divider-offset : Offset to the divider CSR register from the divider base. 56 Default is 0x0. 56 Default is 0x0. 57 - divider-width : Width of the divider registe 57 - divider-width : Width of the divider register. Default is 0. 58 - divider-shift : Bit shift of the divider reg 58 - divider-shift : Bit shift of the divider register. Default is 0. 59 59 60 For example: 60 For example: 61 61 62 pcppll: pcppll@17000100 { 62 pcppll: pcppll@17000100 { 63 compatible = "apm,xgene-pcppll 63 compatible = "apm,xgene-pcppll-clock"; 64 #clock-cells = <1>; 64 #clock-cells = <1>; 65 clocks = <&refclk 0>; 65 clocks = <&refclk 0>; 66 clock-names = "pcppll"; 66 clock-names = "pcppll"; 67 reg = <0x0 0x17000100 0x0 0x10 67 reg = <0x0 0x17000100 0x0 0x1000>; 68 clock-output-names = "pcppll"; 68 clock-output-names = "pcppll"; 69 type = <0>; 69 type = <0>; 70 }; 70 }; 71 71 72 pmd0clk: pmd0clk@7e200200 { 72 pmd0clk: pmd0clk@7e200200 { 73 compatible = "apm,xgene-pmd-cl 73 compatible = "apm,xgene-pmd-clock"; 74 #clock-cells = <1>; 74 #clock-cells = <1>; 75 clocks = <&pmdpll 0>; 75 clocks = <&pmdpll 0>; 76 reg = <0x0 0x7e200200 0x0 0x10 76 reg = <0x0 0x7e200200 0x0 0x10>; 77 clock-output-names = "pmd0clk" 77 clock-output-names = "pmd0clk"; 78 }; 78 }; 79 79 80 socpll: socpll@17000120 { 80 socpll: socpll@17000120 { 81 compatible = "apm,xgene-socpll 81 compatible = "apm,xgene-socpll-clock"; 82 #clock-cells = <1>; 82 #clock-cells = <1>; 83 clocks = <&refclk 0>; 83 clocks = <&refclk 0>; 84 clock-names = "socpll"; 84 clock-names = "socpll"; 85 reg = <0x0 0x17000120 0x0 0x10 85 reg = <0x0 0x17000120 0x0 0x1000>; 86 clock-output-names = "socpll"; 86 clock-output-names = "socpll"; 87 type = <1>; 87 type = <1>; 88 }; 88 }; 89 89 90 qmlclk: qmlclk { 90 qmlclk: qmlclk { 91 compatible = "apm,xgene-device 91 compatible = "apm,xgene-device-clock"; 92 #clock-cells = <1>; 92 #clock-cells = <1>; 93 clocks = <&socplldiv2 0>; 93 clocks = <&socplldiv2 0>; 94 clock-names = "qmlclk"; 94 clock-names = "qmlclk"; 95 reg = <0x0 0x1703C000 0x0 0x10 95 reg = <0x0 0x1703C000 0x0 0x1000>; 96 reg-name = "csr-reg"; 96 reg-name = "csr-reg"; 97 clock-output-names = "qmlclk"; 97 clock-output-names = "qmlclk"; 98 }; 98 }; 99 99 100 ethclk: ethclk { 100 ethclk: ethclk { 101 compatible = "apm,xgene-device 101 compatible = "apm,xgene-device-clock"; 102 #clock-cells = <1>; 102 #clock-cells = <1>; 103 clocks = <&socplldiv2 0>; 103 clocks = <&socplldiv2 0>; 104 clock-names = "ethclk"; 104 clock-names = "ethclk"; 105 reg = <0x0 0x17000000 0x0 0x10 105 reg = <0x0 0x17000000 0x0 0x1000>; 106 reg-names = "div-reg"; 106 reg-names = "div-reg"; 107 divider-offset = <0x238>; 107 divider-offset = <0x238>; 108 divider-width = <0x9>; 108 divider-width = <0x9>; 109 divider-shift = <0x0>; 109 divider-shift = <0x0>; 110 clock-output-names = "ethclk"; 110 clock-output-names = "ethclk"; 111 }; 111 }; 112 112 113 apbclk: apbclk { 113 apbclk: apbclk { 114 compatible = "apm,xgene-device 114 compatible = "apm,xgene-device-clock"; 115 #clock-cells = <1>; 115 #clock-cells = <1>; 116 clocks = <&ahbclk 0>; 116 clocks = <&ahbclk 0>; 117 clock-names = "apbclk"; 117 clock-names = "apbclk"; 118 reg = <0x0 0x1F2AC000 0x0 0x10 118 reg = <0x0 0x1F2AC000 0x0 0x1000 119 0x0 0x1F2AC000 0x0 0x1 119 0x0 0x1F2AC000 0x0 0x1000>; 120 reg-names = "csr-reg", "div-re 120 reg-names = "csr-reg", "div-reg"; 121 csr-offset = <0x0>; 121 csr-offset = <0x0>; 122 csr-mask = <0x200>; 122 csr-mask = <0x200>; 123 enable-offset = <0x8>; 123 enable-offset = <0x8>; 124 enable-mask = <0x200>; 124 enable-mask = <0x200>; 125 divider-offset = <0x10>; 125 divider-offset = <0x10>; 126 divider-width = <0x2>; 126 divider-width = <0x2>; 127 divider-shift = <0x0>; 127 divider-shift = <0x0>; 128 flags = <0x8>; 128 flags = <0x8>; 129 clock-output-names = "apbclk"; 129 clock-output-names = "apbclk"; 130 }; 130 }; 131 131
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.