From f374d1e7ef988bc23387079255924c262f4e6768 Mon Sep 17 00:00:00 2001 From: Robert Jarzmik Date: Sat, 7 Feb 2015 13:26:09 +0100 Subject: [PATCH 1/5] ARM: dts: pxa: add pwri2c to pxa device-tree pxa27x variant has 2 I2C busses on the SoC : - the casual I2C - the power I2C, normally driving power regulators, and capable of receiving orders on core frequency modifications Add the missing pwri2c to pxa27x description. Signed-off-by: Robert Jarzmik --- arch/arm/boot/dts/pxa27x.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm/boot/dts/pxa27x.dtsi b/arch/arm/boot/dts/pxa27x.dtsi index 80fc5d7e9ef9..98b560e76314 100644 --- a/arch/arm/boot/dts/pxa27x.dtsi +++ b/arch/arm/boot/dts/pxa27x.dtsi @@ -35,6 +35,13 @@ pwm3: pwm@40c00010 { reg = <0x40c00010 0x10>; #pwm-cells = <1>; }; + + pwri2c: i2c@40f000180 { + compatible = "mrvl,pxa-i2c"; + reg = <0x40f00180 0x24>; + interrupts = <6>; + status = "disabled"; + }; }; clocks { From d96672e6207f09a25a9cc908400c1ac6f7a5190c Mon Sep 17 00:00:00 2001 From: Robert Jarzmik Date: Sat, 7 Feb 2015 13:13:24 +0100 Subject: [PATCH 2/5] ARM: dts: pxa: add clocks Add clocks to the IPs already described in the pxa device-tree files. There are more clocks in the clock tree than IPs described in the current pxa device-tree. This patch ensures that : - the current description is correct - the clocks are actually claimed, so that clock framework doesn't disable them automatically (unused clocks shutdown) Signed-off-by: Robert Jarzmik --- arch/arm/boot/dts/pxa27x.dtsi | 18 ++++++++++++++---- arch/arm/boot/dts/pxa2xx.dtsi | 7 ++++++- arch/arm/boot/dts/pxa3xx.dtsi | 21 ++++++++++++++++++++- 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/arch/arm/boot/dts/pxa27x.dtsi b/arch/arm/boot/dts/pxa27x.dtsi index 98b560e76314..96967183d1a5 100644 --- a/arch/arm/boot/dts/pxa27x.dtsi +++ b/arch/arm/boot/dts/pxa27x.dtsi @@ -1,6 +1,6 @@ /* The pxa3xx skeleton simply augments the 2xx version */ #include "pxa2xx.dtsi" -#include "dt-bindings/clock/pxa2xx-clock.h" +#include "dt-bindings/clock/pxa-clock.h" / { model = "Marvell PXA27x familiy SoC"; @@ -12,36 +12,47 @@ pxairq: interrupt-controller@40d00000 { marvell,intc-nr-irqs = <34>; }; + gpio: gpio@40e00000 { + compatible = "intel,pxa27x-gpio"; + clocks = <&clks CLK_NONE>; + }; + pwm0: pwm@40b00000 { compatible = "marvell,pxa270-pwm", "marvell,pxa250-pwm"; reg = <0x40b00000 0x10>; #pwm-cells = <1>; + clocks = <&clks CLK_PWM0>; }; pwm1: pwm@40b00010 { compatible = "marvell,pxa270-pwm", "marvell,pxa250-pwm"; reg = <0x40b00010 0x10>; #pwm-cells = <1>; + clocks = <&clks CLK_PWM1>; }; pwm2: pwm@40c00000 { compatible = "marvell,pxa270-pwm", "marvell,pxa250-pwm"; reg = <0x40c00000 0x10>; #pwm-cells = <1>; + clocks = <&clks CLK_PWM0>; }; pwm3: pwm@40c00010 { compatible = "marvell,pxa270-pwm", "marvell,pxa250-pwm"; reg = <0x40c00010 0x10>; #pwm-cells = <1>; + clocks = <&clks CLK_PWM1>; }; pwri2c: i2c@40f000180 { compatible = "mrvl,pxa-i2c"; reg = <0x40f00180 0x24>; interrupts = <6>; + clocks = <&clks CLK_PWRI2C>; status = "disabled"; }; + }; clocks { @@ -53,11 +64,10 @@ clocks { #size-cells = <1>; ranges; - pxa2xx_clks: pxa2xx_clks@41300004 { - compatible = "marvell,pxa-clocks"; + clks: pxa2xx_clks@41300004 { + compatible = "marvell,pxa270-clocks"; #clock-cells = <1>; status = "okay"; }; }; - }; diff --git a/arch/arm/boot/dts/pxa2xx.dtsi b/arch/arm/boot/dts/pxa2xx.dtsi index c08f84629aa9..71a0cd7388d1 100644 --- a/arch/arm/boot/dts/pxa2xx.dtsi +++ b/arch/arm/boot/dts/pxa2xx.dtsi @@ -6,7 +6,8 @@ * Licensed under GPLv2 or later. */ -/include/ "skeleton.dtsi" +#include "skeleton.dtsi" +#include "dt-bindings/clock/pxa-clock.h" / { model = "Marvell PXA2xx family SoC"; @@ -79,6 +80,7 @@ ffuart: uart@40100000 { compatible = "mrvl,pxa-uart"; reg = <0x40100000 0x30>; interrupts = <22>; + clocks = <&clks CLK_FFUART>; status = "disabled"; }; @@ -86,6 +88,7 @@ btuart: uart@40200000 { compatible = "mrvl,pxa-uart"; reg = <0x40200000 0x30>; interrupts = <21>; + clocks = <&clks CLK_BTUART>; status = "disabled"; }; @@ -93,6 +96,7 @@ stuart: uart@40700000 { compatible = "mrvl,pxa-uart"; reg = <0x40700000 0x30>; interrupts = <20>; + clocks = <&clks CLK_STUART>; status = "disabled"; }; @@ -107,6 +111,7 @@ pxai2c1: i2c@40301680 { compatible = "mrvl,pxa-i2c"; reg = <0x40301680 0x30>; interrupts = <18>; + clocks = <&clks CLK_I2C>; #address-cells = <0x1>; #size-cells = <0>; status = "disabled"; diff --git a/arch/arm/boot/dts/pxa3xx.dtsi b/arch/arm/boot/dts/pxa3xx.dtsi index 83bb0eff697b..c7066ebbdbcc 100644 --- a/arch/arm/boot/dts/pxa3xx.dtsi +++ b/arch/arm/boot/dts/pxa3xx.dtsi @@ -1,5 +1,5 @@ /* The pxa3xx skeleton simply augments the 2xx version */ -/include/ "pxa2xx.dtsi" +#include "pxa2xx.dtsi" / { model = "Marvell PXA3xx familiy SoC"; @@ -10,6 +10,7 @@ pwri2c: i2c@40f500c0 { compatible = "mrvl,pwri2c"; reg = <0x40f500c0 0x30>; interrupts = <6>; + clocks = <&clks CLK_PWRI2C>; #address-cells = <0x1>; #size-cells = <0>; status = "disabled"; @@ -19,6 +20,7 @@ nand0: nand@43100000 { compatible = "marvell,pxa3xx-nand"; reg = <0x43100000 90>; interrupts = <45>; + clocks = <&clks CLK_NAND>; #address-cells = <1>; #size-cells = <1>; status = "disabled"; @@ -32,6 +34,7 @@ pxairq: interrupt-controller@40d00000 { gpio: gpio@40e00000 { compatible = "intel,pxa3xx-gpio"; reg = <0x40e00000 0x10000>; + clocks = <&clks CLK_GPIO>; interrupt-names = "gpio0", "gpio1", "gpio_mux"; interrupts = <8 9 10>; gpio-controller; @@ -40,4 +43,20 @@ gpio: gpio@40e00000 { #interrupt-cells = <0x2>; }; }; + + 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; + + clks: pxa3xx_clks@41300004 { + compatible = "marvell,pxa300-clocks"; + #clock-cells = <1>; + status = "okay"; + }; + }; }; From 361818cd4b51bd23b2274456f6fc62b74596472e Mon Sep 17 00:00:00 2001 From: Robert Jarzmik Date: Sat, 7 Feb 2015 13:27:55 +0100 Subject: [PATCH 3/5] ARM: dts: pxa: add pxa27x-udc to pxa27x Each pxa27x has an embedded usb udc controller. Add it in the pxa27x device-tree description. Signed-off-by: Robert Jarzmik --- arch/arm/boot/dts/pxa27x.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm/boot/dts/pxa27x.dtsi b/arch/arm/boot/dts/pxa27x.dtsi index 96967183d1a5..7cc36ef0e350 100644 --- a/arch/arm/boot/dts/pxa27x.dtsi +++ b/arch/arm/boot/dts/pxa27x.dtsi @@ -53,6 +53,13 @@ pwri2c: i2c@40f000180 { status = "disabled"; }; + pxa27x_udc: udc@40600000 { + compatible = "marvell,pxa270-udc"; + reg = <0x40600000 0x10000>; + interrupts = <11>; + clocks = <&clks CLK_USB>; + status = "disabled"; + }; }; clocks { From 8dcba81724ae7aae922b01926478f536870524d2 Mon Sep 17 00:00:00 2001 From: Robert Jarzmik Date: Sat, 7 Feb 2015 13:19:38 +0100 Subject: [PATCH 4/5] ARM: dts: pxa: add pxa27x-keypad to pxa27x Each pxa27x has an embedded keypad controller. Add it in the pxa27x device-tree description. Signed-off-by: Robert Jarzmik --- arch/arm/boot/dts/pxa27x.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm/boot/dts/pxa27x.dtsi b/arch/arm/boot/dts/pxa27x.dtsi index 7cc36ef0e350..74f7df700013 100644 --- a/arch/arm/boot/dts/pxa27x.dtsi +++ b/arch/arm/boot/dts/pxa27x.dtsi @@ -60,6 +60,14 @@ pxa27x_udc: udc@40600000 { clocks = <&clks CLK_USB>; status = "disabled"; }; + + keypad: keypad@41500000 { + compatible = "marvell,pxa27x-keypad"; + reg = <0x41500000 0x4c>; + interrupts = <4>; + clocks = <&clks CLK_KEYPAD>; + status = "disabled"; + }; }; clocks { From 8dd3075c489ba19a8f2795199352334e52f34bed Mon Sep 17 00:00:00 2001 From: Robert Jarzmik Date: Sun, 12 Oct 2014 22:11:08 +0200 Subject: [PATCH 5/5] ARM: dts: pxa: add pxa-timer to pxa27x and pxa3xx Each pxa has an embedded OS Timers IP. The kernel cannot work without a valid clocksource, and this adds the OS Timers to the pxa device-tree description. Signed-off-by: Robert Jarzmik --- arch/arm/boot/dts/pxa27x.dtsi | 8 ++++++++ arch/arm/boot/dts/pxa3xx.dtsi | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/arch/arm/boot/dts/pxa27x.dtsi b/arch/arm/boot/dts/pxa27x.dtsi index 74f7df700013..90b99714ad80 100644 --- a/arch/arm/boot/dts/pxa27x.dtsi +++ b/arch/arm/boot/dts/pxa27x.dtsi @@ -85,4 +85,12 @@ clks: pxa2xx_clks@41300004 { status = "okay"; }; }; + + timer@40a00000 { + compatible = "marvell,pxa-timer"; + reg = <0x40a00000 0x20>; + interrupts = <26>; + clocks = <&clks CLK_OSTIMER>; + status = "okay"; + }; }; diff --git a/arch/arm/boot/dts/pxa3xx.dtsi b/arch/arm/boot/dts/pxa3xx.dtsi index c7066ebbdbcc..7ad0b1771098 100644 --- a/arch/arm/boot/dts/pxa3xx.dtsi +++ b/arch/arm/boot/dts/pxa3xx.dtsi @@ -59,4 +59,12 @@ clks: pxa3xx_clks@41300004 { status = "okay"; }; }; + + timer@40a00000 { + compatible = "marvell,pxa-timer"; + reg = <0x40a00000 0x20>; + interrupts = <26>; + clocks = <&clks CLK_OSTIMER>; + status = "okay"; + }; };