123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- 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-device-clock" - for a X-Gene device 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 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>;
- };
- 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";
- };
|