Thread (1 message) 1 message, 1 author, 2014-07-03

Re: [PATCH 2/4] dts: add devicetree bindings for pxa27x clocks

From: Mike Turquette <hidden>
Date: 2014-07-03 22:03:28
Also in: linux-arm-kernel

Quoting Haojian Zhuang (2014-07-02 23:14:33)
On Mon, Jun 30, 2014 at 2:32 AM, Robert Jarzmik [off-list ref] wrote:
quoted
Add the clock tree description for the PXA27x based boards.

Signed-off-by: Robert Jarzmik <redacted>
---
 arch/arm/boot/dts/pxa27x.dtsi            | 134 ++++++++++++++++++++++++++++++-
 include/dt-bindings/clock/pxa2xx-clock.h |  45 +++++++++++
 2 files changed, 178 insertions(+), 1 deletion(-)
 create mode 100644 include/dt-bindings/clock/pxa2xx-clock.h
diff --git a/arch/arm/boot/dts/pxa27x.dtsi b/arch/arm/boot/dts/pxa27x.dtsi
index a705469..badaa71 100644
--- a/arch/arm/boot/dts/pxa27x.dtsi
+++ b/arch/arm/boot/dts/pxa27x.dtsi
@@ -1,5 +1,6 @@
 /* The pxa3xx skeleton simply augments the 2xx version */
-/include/ "pxa2xx.dtsi"
+#include "pxa2xx.dtsi"
+#include "dt-bindings/clock/pxa2xx-clock.h"

 / {
        model = "Marvell PXA27x familiy SoC";
@@ -35,4 +36,135 @@
                        #pwm-cells = <1>;
                };
        };
+
+       clocks {
+              /*
+               * The muxing of external clocks/internal dividers for osc* clock
+               * sources has been hidden under the carpet by now.
+               */
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               osc13mhz:osc13mhz {
+                       compatible = "fixed-clock";
+                        #clock-cells = <0>;
+                       clock-frequency = <13000000>;
+               };
+
+               osc32_768khz:osc32_768khz {
+                       compatible = "fixed-clock";
+                        #clock-cells = <0>;
+                       clock-frequency = <32768>;
+               };
+
+               pll_312mhz:pll_312mhz {
+                       compatible = "fixed-factor-clock";
+                        #clock-cells = <0>;
+                       clocks = <&osc13mhz>;
+                       clock-div = <1>;
+                       clock-mult = <24>;
+               };
+
+               clk_48mhz:clk_48mhz {
+                       compatible = "fixed-factor-clock";
+                        #clock-cells = <0>;
+                       clocks = <&pll_312mhz>;
+                       clock-div = <13>;
+                       clock-mult = <2>;
+               };
+
+               clk_32_842mhz:clk_32_842mhz {
+                       compatible = "fixed-factor-clock";
+                        #clock-cells = <0>;
+                       clocks = <&pll_312mhz>;
+                       clock-div = <19>;
+                       clock-mult = <2>;
+               };
+
+               clk_19_5mhz:clk_19_5mhz {
+                       compatible = "fixed-factor-clock";
+                        #clock-cells = <0>;
+                       clocks = <&pll_312mhz>;
+                       clock-div = <32>;
+                       clock-mult = <2>;
+               };
+
+               clk_14_857mhz:clk_14_857mhz {
+                       compatible = "fixed-factor-clock";
+                        #clock-cells = <0>;
+                       clocks = <&pll_312mhz>;
+                       clock-div = <42>;
+                       clock-mult = <2>;
+               };
+
+               clk_14_682mhz:clk_14_682mhz {
+                       compatible = "fixed-factor-clock";
+                        #clock-cells = <0>;
+                       clocks = <&pll_312mhz>;
+                       clock-div = <51>;
+                       clock-mult = <2>;
+               };
+
+               clk_13mhz:clk_13mhz {
+                       compatible = "fixed-factor-clock";
+                        #clock-cells = <0>;
+                       clocks = <&osc13mhz>;
+                       clock-div = <1>;
+                       clock-mult = <1>;
+               };
+
+               clk_dummy:clk_dummy {
+                       compatible = "fixed-clock";
+                        #clock-cells = <0>;
+                       clock-frequency = <0>;
+               };
+
+               clk_ostimer:clk_ostimer {
+                       compatible = "fixed-factor-clock";
+                        #clock-cells = <0>;
+                       clocks = <&osc13mhz>;
+                       clock-div = <4>;
+                       clock-mult = <1>;
+               };
+
+               pxa27x_sysclks:pxa27x_sysclks {
+                       compatible = "marvell,pxa270-core-clocks";
+                       #clock-cells = <1>;
+                       clocks = <&osc13mhz>;
+                       clock-output-names = "run mode", "half-turbo mode",
+                               "turbo mode", "cpu core", "system bus", "memory", "lcd";
+               };
+
+               pxa2xx_clks: pxa2xx_clks@41300004 {
+                       compatible = "marvell,pxa-clocks";
+                       reg = <0x41300004 0x4>;
+                       clocks =
+                               <&clk_13mhz>, <&clk_13mhz>, <&clk_dummy>, <&clk_13mhz>,
+                               <&clk_13mhz>, <&clk_14_857mhz>, <&clk_14_857mhz>, <&clk_14_857mhz>,
+                               <&clk_14_682mhz>, <&clk_ostimer>, <&clk_48mhz>, <&clk_48mhz>,
+                               <&clk_19_5mhz>, <&clk_48mhz>, <&clk_32_842mhz>, <&clk_13mhz>,
+                               <&pxa27x_sysclks 6>, <&clk_48mhz>, <&clk_48mhz>, <&osc32_768khz>,
+                               <&clk_dummy>, <&clk_19_5mhz>, <&pxa27x_sysclks 4>, <&clk_13mhz>,
+                               <&pxa27x_sysclks 6>, <&clk_dummy>;
+                       #clock-cells = <1>;
+                       clock-output-names =
+                               "pwm 0,2", "pwm 1,3", "ac97", "ssp2",
+                               "ssp3,hwuart", "stuart", "ffuart", "btuart",
+                               "i2s", "nssp,ostimer", "usb host,assp", "usb udc",
+                               "mmc", "ficp", "i2c", "pwri2c",
+                               "lcd", "msl", "usim", "keypad",
+                                "im", "memstk", "memc", "ssp1",
+                                "camera", "ac97conf";
+                       clock-indices = <
+                               CKEN_PWM0 CKEN_PWM1 CKEN_AC97 CKEN_SSP2
+                               CKEN_SSP3 CKEN_STUART CKEN_FFUART CKEN_BTUART
+                               CKEN_I2S CKEN_OSTIMER CKEN_USBHOST CKEN_USB
+                               CKEN_MMC CKEN_FICP CKEN_I2C CKEN_PWRI2C
+                               CKEN_LCD CKEN_MSL CKEN_USIM CKEN_KEYPAD
+                               CKEN_IM CKEN_MEMSTK 65 CKEN_SSP1
+                               CKEN_CAMERA CKEN_AC97CONF >;
+               };
+       };
+
 };
Maybe defining these clocks in pxa27x clock driver is better.
Agreed. After a long time trying to figure out the best DT binding for
clocks it seems that defining the per-clock data in DTS is not the best
way. The qcom msm and samsung exynos clock bindings and DTS data are
good examples.

Regards,
Mike
Regards
Haojian
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help