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