ARM: kirkwood: convert Guruplug to use the device tree
Subsystems (4)
PATCH 1/1 ARM: kirkwood: convert Guruplug to use the device tree
Add a device tree entry for the Guruplug board. This port was based both on the work done on the dreamplug and the dockstar.
It builds, boots and works on my Guruplug Server plus.
--- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/kirkwood-guruplug.dts | 94 +++++++++++++++++++++++++++++++++ arch/arm/mach-kirkwood/Kconfig | 7 +++ arch/arm/mach-kirkwood/Makefile | 1 + arch/arm/mach-kirkwood/board-dt.c | 4 ++ arch/arm/mach-kirkwood/board-guruplug.c | 39 ++++++++++++++ arch/arm/mach-kirkwood/common.h | 5 ++ 7 files changed, 151 insertions(+) create mode 100644 arch/arm/boot/dts/kirkwood-guruplug.dts create mode 100644 arch/arm/mach-kirkwood/board-guruplug.c
arch/arm/boot/dts/Makefile +1 -0
@@ -40,6 +40,7 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ kirkwood-dockstar.dtb \ kirkwood-dreamplug.dtb \ kirkwood-goflexnet.dtb \ + kirkwood-guruplug.dtb \ kirkwood-ib62x0.dtb \ kirkwood-iconnect.dtb \ kirkwood-iomega_ix2_200.dtb \
arch/arm/boot/dts/kirkwood-guruplug.dts new file +94 -0
94 lines not on this page · raw message
arch/arm/mach-kirkwood/Kconfig +7 -0
@@ -58,6 +58,13 @@ config ARCH_KIRKWOOD_DT Say 'Y' here if you want your kernel to support the Marvell Kirkwood using flattened device tree. +config MACH_GURUPLUG_DT + bool "Marvell GuruPlug Reference Board (Flattened Device Tree)" + select ARCH_KIRKWOOD_DT + help + Say 'Y' here if you want your kernel to support the + Marvell GuruPlug Reference Board (Flattened Device Tree). + config MACH_DREAMPLUG_DT bool "Marvell DreamPlug (Flattened Device Tree)" select ARCH_KIRKWOOD_DT
arch/arm/mach-kirkwood/Makefile +1 -0
@@ -22,6 +22,7 @@ obj-$(CONFIG_MACH_T5325) += t5325-setup.o obj-$(CONFIG_CPU_IDLE) += cpuidle.o obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o obj-$(CONFIG_MACH_DREAMPLUG_DT) += board-dreamplug.o +obj-$(CONFIG_MACH_GURUPLUG_DT) += board-guruplug.o obj-$(CONFIG_MACH_ICONNECT_DT) += board-iconnect.o obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += board-dnskw.o obj-$(CONFIG_MACH_IB62X0_DT) += board-ib62x0.o
arch/arm/mach-kirkwood/board-dt.c +4 -0
@@ -101,6 +101,9 @@ static void __init kirkwood_dt_init(void)if (of_machine_is_compatible ("globalscale,dreamplug" ))dreamplug_init (); +if (of_machine_is_compatible ("globalscale,guruplug" )) +guruplug_dt_init (); +if (of_machine_is_compatible ("dlink,dns-kirkwood" ))dnskw_init ();
@@ -152,6 +155,7 @@ static void __init kirkwood_dt_init(void)static const char *const kirkwood_dt_board_compat[] = {"globalscale,dreamplug" , +"globalscale,guruplug" ,"dlink,dns-320" ,"dlink,dns-325" ,"iom,iconnect" ,
arch/arm/mach-kirkwood/board-guruplug.c new file +39 -0
@@ -0,0 +1,39 @@ +/* +* arch/arm/mach-kirkwood/board-guruplug.c +* +* Marvell Guruplug Reference Board Init for drivers not converted to +* flattened device tree yet. +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#include <linux/kernel.h> +#include <linux/init.h> +#include <linux/mv643xx_eth.h> +#include <linux/gpio.h> +#include <linux/platform_data/mmc-mvsdio.h> +#include "common.h" + +static struct mv643xx_eth_platform_data guruplug_ge00_data = { + .phy_addr =MV643XX_ETH_PHY_ADDR (0 ), +}; + +static struct mv643xx_eth_platform_data guruplug_ge01_data = { + .phy_addr =MV643XX_ETH_PHY_ADDR (1 ), +}; + +static struct mvsdio_platform_data guruplug_mvsdio_data = { +/* unfortunately the CD signal has not been connected */ +}; + +void __init guruplug_dt_init (void ) +{ +/* +* Basic setup. Needs to be called early. +*/ +kirkwood_ge00_init (&guruplug_ge00_data); +kirkwood_ge01_init (&guruplug_ge01_data); +kirkwood_sdio_init (&guruplug_mvsdio_data); +}
arch/arm/mach-kirkwood/common.h +5 -0
@@ -59,6 +59,11 @@ void dreamplug_init(void);#else static inline void dreamplug_init (void ) {};#endif +#ifdef CONFIG_MACH_GURUPLUG_DT +void guruplug_dt_init (void ); +#else +static inline void guruplug_dt_init (void ) {}; +#endif #ifdef CONFIG_MACH_TS219_DT void qnap_dt_ts219_init (void );#else
Signature · 1 line
1.7.12.2.21.g234cd45.dirty
PATCH 1/1 ARM: kirkwood: convert Guruplug to use the device tree
Willy,
Great first DT patch! A few comments below.
Quoted 4 lines · Willy Tarreau
Add a device tree entry for the Guruplug board. This port was based both on the work done on the dreamplug and the dockstar.
It builds, boots and works on my Guruplug Server plus.
iirc, the Guruplug Server Plus has an esata port. Since this is the hardware you have, lets make this patch specific to it. So, the Subject line should refer to "Guruplug Server Plus", and
Quoted 5 lines
Signed-off-by Willy Tarreau <[email protected]>--- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/kirkwood-guruplug.dts | 94 +++++++++++++++++++++++++++++++++
Let's make the above kirkwood-guruplug-server-plus.dts
Quoted 4 lines
arch/arm/mach-kirkwood/Kconfig | 7 +++ arch/arm/mach-kirkwood/Makefile | 1 + arch/arm/mach-kirkwood/board-dt.c | 4 ++ arch/arm/mach-kirkwood/board-guruplug.c | 39 ++++++++++++++
I'm not worried about this because it's going away shortly.
Quoted 10 lines
arch/arm/mach-kirkwood/common.h | 5 ++ 7 files changed, 151 insertions(+) create mode 100644 arch/arm/boot/dts/kirkwood-guruplug.dts create mode 100644 arch/arm/mach-kirkwood/board-guruplug.carch/arm/boot/dts/Makefile +0
-0
arch/arm/boot/dts/Makefile dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ · line 43
Quoted 4 lines
arch/arm/boot/dts/Makefile +1
-0@@ -40,6 +40,7 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ kirkwood-dockstar.dtb \ kirkwood-dreamplug.dtb \ kirkwood-goflexnet.dtb \ + kirkwood-guruplug.dtb \
same change here.
Quoted 9 lines
arch/arm/boot/dts/Makefile +0
-0kirkwood-ib62x0.dtb \ kirkwood-iconnect.dtb \ kirkwood-iomega_ix2_200.dtb \arch/arm/boot/dts/kirkwood-guruplug.dts new file +0
-0
arch/arm/boot/dts/kirkwood-guruplug.dts line 7
Quoted 7 lines
arch/arm/boot/dts/kirkwood-guruplug.dts new file +7
-0@@ -0,0 +1,94 @@ +/dts-v1/; + +/include/ "kirkwood.dtsi" +/include/ "kirkwood-6281.dtsi" + +/ { + model = "Globalscale Technologies Guruplug";
"... Guruplug Server Plus"
arch/arm/boot/dts/kirkwood-guruplug.dts line 8
Quoted 1 line
arch/arm/boot/dts/kirkwood-guruplug.dts new file +1
-0+ compatible = "globalscale,guruplug", "marvell,kirkwood-88f6281", "marvell,kirkwood";
... = "globalscale,guruplug-server-plug", "globalscale,guruplug", "marvell..."
Quoted 91 lines
arch/arm/boot/dts/kirkwood-guruplug.dts new file +86
-0+ + memory { + device_type = "memory"; + reg = <0x00000000 0x20000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8 earlyprintk"; + }; + + ocp at f1000000 { + pinctrl: pinctrl at 10000 { + + pinctrl-0 = < &pmx_led_health_r &pmx_led_health_g + &pmx_led_wmode_r &pmx_led_wmode_g >; + pinctrl-names = "default"; + + pmx_led_health_r: pmx-led-health-r { + marvell,pins = "mpp46"; + marvell,function = "gpio"; + }; + pmx_led_health_g: pmx-led-health-g { + marvell,pins = "mpp47"; + marvell,function = "gpio"; + }; + pmx_led_wmode_r: pmx-led-wmode-r { + marvell,pins = "mpp48"; + marvell,function = "gpio"; + }; + pmx_led_wmode_g: pmx-led-wmode-g { + marvell,pins = "mpp49"; + marvell,function = "gpio"; + }; + }; + serial at 12000 { + clock-frequency = <200000000>; + status = "ok"; + }; + + nand at 3000000 { + status = "okay"; + + partition at 0 { + label = "u-boot"; + reg = <0x00000000 0x00100000>; + read-only; + }; + + partition at 100000 { + label = "uImage"; + reg = <0x00100000 0x00400000>; + }; + + partition at 500000 { + label = "data"; + reg = <0x00500000 0x1fb00000>; + }; + }; + + sata at 80000 { + status = "okay"; + nr-ports = <1>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + health-r { + label = "guruplug:red:health"; + gpios = <&gpio1 14 1>; + }; + health-g { + label = "guruplug:green:health"; + gpios = <&gpio1 15 1>; + }; + wmode-r { + label = "guruplug:red:wmode"; + gpios = <&gpio1 16 1>; + }; + wmode-g { + label = "guruplug:green:wmode"; + gpios = <&gpio1 17 1>; + }; + }; +};arch/arm/mach-kirkwood/Kconfig +0
-0
arch/arm/mach-kirkwood/Kconfig config ARCH_KIRKWOOD_DT · line 61
Quoted 4 lines
arch/arm/mach-kirkwood/Kconfig +1
-0@@ -58,6 +58,13 @@ config ARCH_KIRKWOOD_DT Say 'Y' here if you want your kernel to support the Marvell Kirkwood using flattened device tree. +config MACH_GURUPLUG_DT
don't worry about here, these are getting collapsed into ARCH_KIRKWOOD_DT during the same merge window.
thx,
Jason.
btw - none of the below needs to change, since it is generic between the Guruplug and Guruplug Server Plus.
Quoted 107 lines
arch/arm/mach-kirkwood/Kconfig +6
-0+ bool "Marvell GuruPlug Reference Board (Flattened Device Tree)" + select ARCH_KIRKWOOD_DT + help + Say 'Y' here if you want your kernel to support the + Marvell GuruPlug Reference Board (Flattened Device Tree). + config MACH_DREAMPLUG_DT bool "Marvell DreamPlug (Flattened Device Tree)" select ARCH_KIRKWOOD_DTarch/arm/mach-kirkwood/Makefile +1
-0@@ -22,6 +22,7 @@ obj-$(CONFIG_MACH_T5325) += t5325-setup.o obj-$(CONFIG_CPU_IDLE) += cpuidle.o obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o obj-$(CONFIG_MACH_DREAMPLUG_DT) += board-dreamplug.o +obj-$(CONFIG_MACH_GURUPLUG_DT) += board-guruplug.o obj-$(CONFIG_MACH_ICONNECT_DT) += board-iconnect.o obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += board-dnskw.o obj-$(CONFIG_MACH_IB62X0_DT) += board-ib62x0.oarch/arm/mach-kirkwood/board-dt.c +4
-0@@ -101,6 +101,9 @@ static void __init kirkwood_dt_init(void)if (of_machine_is_compatible ("globalscale,dreamplug" ))dreamplug_init (); +if (of_machine_is_compatible ("globalscale,guruplug" )) +guruplug_dt_init (); +if (of_machine_is_compatible ("dlink,dns-kirkwood" ))dnskw_init ();@@ -152,6 +155,7 @@ static void __init kirkwood_dt_init(void)static const char *const kirkwood_dt_board_compat[] = {"globalscale,dreamplug" , +"globalscale,guruplug" ,"dlink,dns-320" ,"dlink,dns-325" ,"iom,iconnect" ,arch/arm/mach-kirkwood/board-guruplug.c new file +39
-0@@ -0,0 +1,39 @@ +/* +* arch/arm/mach-kirkwood/board-guruplug.c +* +* Marvell Guruplug Reference Board Init for drivers not converted to +* flattened device tree yet. +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#include <linux/kernel.h> +#include <linux/init.h> +#include <linux/mv643xx_eth.h> +#include <linux/gpio.h> +#include <linux/platform_data/mmc-mvsdio.h> +#include "common.h" + +static struct mv643xx_eth_platform_data guruplug_ge00_data = { + .phy_addr =MV643XX_ETH_PHY_ADDR (0 ), +}; + +static struct mv643xx_eth_platform_data guruplug_ge01_data = { + .phy_addr =MV643XX_ETH_PHY_ADDR (1 ), +}; + +static struct mvsdio_platform_data guruplug_mvsdio_data = { +/* unfortunately the CD signal has not been connected */ +}; + +void __init guruplug_dt_init (void ) +{ +/* +* Basic setup. Needs to be called early. +*/ +kirkwood_ge00_init (&guruplug_ge00_data); +kirkwood_ge01_init (&guruplug_ge01_data); +kirkwood_sdio_init (&guruplug_mvsdio_data); +}arch/arm/mach-kirkwood/common.h +5
-0@@ -59,6 +59,11 @@ void dreamplug_init(void);#else static inline void dreamplug_init (void ) {};#endif +#ifdef CONFIG_MACH_GURUPLUG_DT +void guruplug_dt_init (void ); +#else +static inline void guruplug_dt_init (void ) {}; +#endif #ifdef CONFIG_MACH_TS219_DT void qnap_dt_ts219_init (void );#else Signature · 1 line
1.7.12.2.21.g234cd45.dirty
PATCH 1/1 ARM: kirkwood: convert Guruplug to use the device tree
Hi Jason,
Quoted 5 lines · Jason Cooper
Willy,
Great first DT patch! A few comments below.
On Sun, Dec 02, 2012 at 04:51:24PM +0100, Willy Tarreau wrote:
Quoted 8 lines
Quoted 4 lines
Add a device tree entry for the Guruplug board. This port was based both on the work done on the dreamplug and the dockstar.
It builds, boots and works on my Guruplug Server plus.
iirc, the Guruplug Server Plus has an esata port. Since this is the hardware you have, lets make this patch specific to it. So, the Subject line should refer to "Guruplug Server Plus", and
(...)
Thank you for your review and clear comments, I'll update the patch accordingly.
Since there are already pending changes for the merge window, I'll rather resend it after the merge window when the changes are already done, what do you think ?
Best regards,
Willy
PATCH 1/1 ARM: kirkwood: convert Guruplug to use the device tree
Quoted 17 lines · Willy Tarreau
Hi Jason,
Quoted 5 lines · Jason Cooper
Willy,
Great first DT patch! A few comments below.
On Sun, Dec 02, 2012 at 04:51:24PM +0100, Willy Tarreau wrote:
Quoted 8 lines
Quoted 4 lines
Add a device tree entry for the Guruplug board. This port was based both on the work done on the dreamplug and the dockstar.
It builds, boots and works on my Guruplug Server plus.
iirc, the Guruplug Server Plus has an esata port. Since this is the hardware you have, lets make this patch specific to it. So, the Subject line should refer to "Guruplug Server Plus", and
Quoted 8 lines
(...)
Thank you for your review and clear comments, I'll update the patch accordingly.
Since there are already pending changes for the merge window, I'll rather resend it after the merge window when the changes are already done, what do you think ?
Doesn't matter in this case, I'll handle any conflicts. Please resend when ready. You can just base off of v3.7-rc7, or v3.8 if it drops.
btw - did you upgrade u-boot for DT? You should just have to add CONFIG_OF_LIBFDT to include/configs/guruplug.h. Then,
bootm <kern addr> <initrd addr> <dtb addr>
Without an initrd,
bootm <kern addr> - <dtb addr>
hth,
Jason.
PATCH 1/1 ARM: kirkwood: convert Guruplug to use the device tree
Quoted 23 lines · Jason Cooper
Quoted 22 lines · Willy Tarreau
Hi Jason,
Quoted 5 lines · Jason Cooper
Willy,
Great first DT patch! A few comments below.
On Sun, Dec 02, 2012 at 04:51:24PM +0100, Willy Tarreau wrote:
Quoted 8 lines
Quoted 4 lines
Add a device tree entry for the Guruplug board. This port was based both on the work done on the dreamplug and the dockstar.
It builds, boots and works on my Guruplug Server plus.
iirc, the Guruplug Server Plus has an esata port. Since this is the hardware you have, lets make this patch specific to it. So, the Subject line should refer to "Guruplug Server Plus", and
(...)
Thank you for your review and clear comments, I'll update the patch accordingly.
Quoted 6 lines
Quoted 3 lines
Since there are already pending changes for the merge window, I'll rather resend it after the merge window when the changes are already done, what do you think ?
Doesn't matter in this case, I'll handle any conflicts. Please resend when ready. You can just base off of v3.7-rc7, or v3.8 if it drops.
OK will do.
Quoted 1 line
btw - did you upgrade u-boot for DT?
I remember I upgraded it recently because of the incompatibility with kernels >= 3.2 causing random hangs at boot, but I don't know if it supports DT.
Quoted 8 lines
You should just have to add
CONFIG_OF_LIBFDTtoinclude/configs/guruplug.h. Then,bootm <kern addr> <initrd addr> <dtb addr>
Without an initrd,
bootm <kern addr> - <dtb addr>
Interesting, I'll have to check (I've put it back into my bag right now).
Thanks!
Willy
PATCH 1/1 ARM: kirkwood: convert Guruplug to use the device tree
Quoted 1 line · Willy Tarreau
On Sun, Dec 02, 2012 at 06:41:10PM -0500, Jason Cooper wrote:
...
Quoted 9 lines
Quoted 1 line
btw - did you upgrade u-boot for DT?
I remember I upgraded it recently because of the incompatibility with kernels >= 3.2 causing random hangs at boot, but I don't know if it supports DT.
Quoted 3 lines
You should just have to add
CONFIG_OF_LIBFDTtoinclude/configs/guruplug.h. Then,
Quoted 8 lines
Quoted 5 lines
bootm <kern addr> <initrd addr> <dtb addr>
Without an initrd,
bootm <kern addr> - <dtb addr>
Interesting, I'll have to check (I've put it back into my bag right now).
v2012.10 does not have it enabled for the guruplug.
hth,
Jason.
PATCH v2 1/1 ARM: kirkwood: convert Guruplug Server Plus to use the device tree
In reply to Jason CooperHi Jason,
Quoted 7 lines · Jason Cooper
Quoted 3 lines · Willy Tarreau
Since there are already pending changes for the merge window, I'll rather resend it after the merge window when the changes are already done, what do you think ?
Doesn't matter in this case, I'll handle any conflicts. Please resend when ready. You can just base off of v3.7-rc7, or v3.8 if it drops.
OK, I've updated it according to your comments and ensured it still works on my GPSP.
I have based the patch on the ARM tree because it includes some dtsi files that are needed by this patch. Please find it attached.
Best regards,
Willy
-------------- next part --------------
Quoted 1 line
From
075e116c6cb513af0e0b9d9167ddd47e1b084bcaMon Sep 17 00:00:00 2001
From: Willy Tarreau <[email protected]>
Date: Sun, 9 Dec 2012 19:21:09 +0100
Subject: ARM: kirkwood: convert Guruplug Server Plus to device tree
Add a device tree entry for the Guruplug Server Plus board. This port was based both on the work done on the dreamplug and the dockstar.
It builds, boots and works on my Guruplug Server Plus.
--- arch/arm/boot/dts/Makefile | 1 + .../arm/boot/dts/kirkwood-guruplug-server-plus.dts | 94 ++++++++++++++++++++++ arch/arm/mach-kirkwood/Kconfig | 7 ++ arch/arm/mach-kirkwood/Makefile | 1 + arch/arm/mach-kirkwood/board-dt.c | 4 + arch/arm/mach-kirkwood/board-guruplug.c | 39 +++++++++ arch/arm/mach-kirkwood/common.h | 5 ++ 7 files changed, 151 insertions(+) create mode 100644 arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts create mode 100644 arch/arm/mach-kirkwood/board-guruplug.c
arch/arm/boot/dts/Makefile +1 -0
@@ -40,6 +40,7 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ kirkwood-dockstar.dtb \ kirkwood-dreamplug.dtb \ kirkwood-goflexnet.dtb \ + kirkwood-guruplug-server-plus.dtb \ kirkwood-ib62x0.dtb \ kirkwood-iconnect.dtb \ kirkwood-iomega_ix2_200.dtb \
arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts new file +94 -0
94 lines not on this page · raw message
arch/arm/mach-kirkwood/Kconfig +7 -0
@@ -58,6 +58,13 @@ config ARCH_KIRKWOOD_DT Say 'Y' here if you want your kernel to support the Marvell Kirkwood using flattened device tree. +config MACH_GURUPLUG_DT + bool "Marvell GuruPlug Reference Board (Flattened Device Tree)" + select ARCH_KIRKWOOD_DT + help + Say 'Y' here if you want your kernel to support the + Marvell GuruPlug Reference Board (Flattened Device Tree). + config MACH_DREAMPLUG_DT bool "Marvell DreamPlug (Flattened Device Tree)" select ARCH_KIRKWOOD_DT
arch/arm/mach-kirkwood/Makefile +1 -0
@@ -22,6 +22,7 @@ obj-$(CONFIG_MACH_T5325) += t5325-setup.o obj-$(CONFIG_CPU_IDLE) += cpuidle.o obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o obj-$(CONFIG_MACH_DREAMPLUG_DT) += board-dreamplug.o +obj-$(CONFIG_MACH_GURUPLUG_DT) += board-guruplug.o obj-$(CONFIG_MACH_ICONNECT_DT) += board-iconnect.o obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += board-dnskw.o obj-$(CONFIG_MACH_IB62X0_DT) += board-ib62x0.o
arch/arm/mach-kirkwood/board-dt.c +4 -0
@@ -101,6 +101,9 @@ static void __init kirkwood_dt_init(void)if (of_machine_is_compatible ("globalscale,dreamplug" ))dreamplug_init (); +if (of_machine_is_compatible ("globalscale,guruplug" )) +guruplug_dt_init (); +if (of_machine_is_compatible ("dlink,dns-kirkwood" ))dnskw_init ();
@@ -152,6 +155,7 @@ static void __init kirkwood_dt_init(void)static const char *const kirkwood_dt_board_compat[] = {"globalscale,dreamplug" , +"globalscale,guruplug" ,"dlink,dns-320" ,"dlink,dns-325" ,"iom,iconnect" ,
arch/arm/mach-kirkwood/board-guruplug.c new file +39 -0
@@ -0,0 +1,39 @@ +/* +* arch/arm/mach-kirkwood/board-guruplug.c +* +* Marvell Guruplug Reference Board Init for drivers not converted to +* flattened device tree yet. +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#include <linux/kernel.h> +#include <linux/init.h> +#include <linux/mv643xx_eth.h> +#include <linux/gpio.h> +#include <linux/platform_data/mmc-mvsdio.h> +#include "common.h" + +static struct mv643xx_eth_platform_data guruplug_ge00_data = { + .phy_addr =MV643XX_ETH_PHY_ADDR (0 ), +}; + +static struct mv643xx_eth_platform_data guruplug_ge01_data = { + .phy_addr =MV643XX_ETH_PHY_ADDR (1 ), +}; + +static struct mvsdio_platform_data guruplug_mvsdio_data = { +/* unfortunately the CD signal has not been connected */ +}; + +void __init guruplug_dt_init (void ) +{ +/* +* Basic setup. Needs to be called early. +*/ +kirkwood_ge00_init (&guruplug_ge00_data); +kirkwood_ge01_init (&guruplug_ge01_data); +kirkwood_sdio_init (&guruplug_mvsdio_data); +}
arch/arm/mach-kirkwood/common.h +5 -0
@@ -59,6 +59,11 @@ void dreamplug_init(void);#else static inline void dreamplug_init (void ) {};#endif +#ifdef CONFIG_MACH_GURUPLUG_DT +void guruplug_dt_init (void ); +#else +static inline void guruplug_dt_init (void ) {}; +#endif #ifdef CONFIG_MACH_TS219_DT void qnap_dt_ts219_init (void );#else
Signature · 1 line
1.7.12.2.21.g234cd45.dirty
PATCH v2 1/1 ARM: kirkwood: convert Guruplug Server Plus to use the device tree
Quoted 62 lines · Willy Tarreau
Hi Jason,
Quoted 7 lines · Jason Cooper
Quoted 3 lines · Willy Tarreau
Since there are already pending changes for the merge window, I'll rather resend it after the merge window when the changes are already done, what do you think ?
Doesn't matter in this case, I'll handle any conflicts. Please resend when ready. You can just base off of v3.7-rc7, or v3.8 if it drops.
OK, I've updated it according to your comments and ensured it still works on my GPSP.
I have based the patch on the ARM tree because it includes some dtsi files that are needed by this patch. Please find it attached.
Best regards,
WillyFrom
075e116c6cb513af0e0b9d9167ddd47e1b084bcaMon Sep 17 00:00:00 2001
From: Willy Tarreau <[email protected]>
Date: Sun, 9 Dec 2012 19:21:09 +0100
Subject: ARM: kirkwood: convert Guruplug Server Plus to device treeAdd a device tree entry for the Guruplug Server Plus board. This port was based both on the work done on the dreamplug and the dockstar.
It builds, boots and works on my Guruplug Server Plus.
Signed-off-by Willy Tarreau <[email protected]>--- arch/arm/boot/dts/Makefile | 1 + .../arm/boot/dts/kirkwood-guruplug-server-plus.dts | 94 ++++++++++++++++++++++ arch/arm/mach-kirkwood/Kconfig | 7 ++ arch/arm/mach-kirkwood/Makefile | 1 + arch/arm/mach-kirkwood/board-dt.c | 4 + arch/arm/mach-kirkwood/board-guruplug.c | 39 +++++++++ arch/arm/mach-kirkwood/common.h | 5 ++ 7 files changed, 151 insertions(+) create mode 100644 arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts create mode 100644 arch/arm/mach-kirkwood/board-guruplug.carch/arm/boot/dts/Makefile +1
-0@@ -40,6 +40,7 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ kirkwood-dockstar.dtb \ kirkwood-dreamplug.dtb \ kirkwood-goflexnet.dtb \ + kirkwood-guruplug-server-plus.dtb \ kirkwood-ib62x0.dtb \ kirkwood-iconnect.dtb \ kirkwood-iomega_ix2_200.dtb \arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts new file +0
-0
arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts line 8
Quoted 8 lines
arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts new file +8
-0@@ -0,0 +1,94 @@ +/dts-v1/; + +/include/ "kirkwood.dtsi" +/include/ "kirkwood-6281.dtsi" + +/ { + model = "Globalscale Technologies Guruplug Server Plus"; + compatible = "globalscale,guruplug-server-plug", "globalscale,guruplug", "marvell,kirkwood-88f6281", "marvell,kirkwood";
One small typo, should be "...server-plus". If there are no other comments over the next few days, I'll tweak it when I pull it in.
thx,
Jason.
Quoted 207 lines
arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts new file +86
-0+ + memory { + device_type = "memory"; + reg = <0x00000000 0x20000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8 earlyprintk"; + }; + + ocp at f1000000 { + pinctrl: pinctrl at 10000 { + + pinctrl-0 = < &pmx_led_health_r &pmx_led_health_g + &pmx_led_wmode_r &pmx_led_wmode_g >; + pinctrl-names = "default"; + + pmx_led_health_r: pmx-led-health-r { + marvell,pins = "mpp46"; + marvell,function = "gpio"; + }; + pmx_led_health_g: pmx-led-health-g { + marvell,pins = "mpp47"; + marvell,function = "gpio"; + }; + pmx_led_wmode_r: pmx-led-wmode-r { + marvell,pins = "mpp48"; + marvell,function = "gpio"; + }; + pmx_led_wmode_g: pmx-led-wmode-g { + marvell,pins = "mpp49"; + marvell,function = "gpio"; + }; + }; + serial at 12000 { + clock-frequency = <200000000>; + status = "ok"; + }; + + nand at 3000000 { + status = "okay"; + + partition at 0 { + label = "u-boot"; + reg = <0x00000000 0x00100000>; + read-only; + }; + + partition at 100000 { + label = "uImage"; + reg = <0x00100000 0x00400000>; + }; + + partition at 500000 { + label = "data"; + reg = <0x00500000 0x1fb00000>; + }; + }; + + sata at 80000 { + status = "okay"; + nr-ports = <1>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + health-r { + label = "guruplug:red:health"; + gpios = <&gpio1 14 1>; + }; + health-g { + label = "guruplug:green:health"; + gpios = <&gpio1 15 1>; + }; + wmode-r { + label = "guruplug:red:wmode"; + gpios = <&gpio1 16 1>; + }; + wmode-g { + label = "guruplug:green:wmode"; + gpios = <&gpio1 17 1>; + }; + }; +};arch/arm/mach-kirkwood/Kconfig +7
-0@@ -58,6 +58,13 @@ config ARCH_KIRKWOOD_DT Say 'Y' here if you want your kernel to support the Marvell Kirkwood using flattened device tree. +config MACH_GURUPLUG_DT + bool "Marvell GuruPlug Reference Board (Flattened Device Tree)" + select ARCH_KIRKWOOD_DT + help + Say 'Y' here if you want your kernel to support the + Marvell GuruPlug Reference Board (Flattened Device Tree). + config MACH_DREAMPLUG_DT bool "Marvell DreamPlug (Flattened Device Tree)" select ARCH_KIRKWOOD_DTarch/arm/mach-kirkwood/Makefile +1
-0@@ -22,6 +22,7 @@ obj-$(CONFIG_MACH_T5325) += t5325-setup.o obj-$(CONFIG_CPU_IDLE) += cpuidle.o obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o obj-$(CONFIG_MACH_DREAMPLUG_DT) += board-dreamplug.o +obj-$(CONFIG_MACH_GURUPLUG_DT) += board-guruplug.o obj-$(CONFIG_MACH_ICONNECT_DT) += board-iconnect.o obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += board-dnskw.o obj-$(CONFIG_MACH_IB62X0_DT) += board-ib62x0.oarch/arm/mach-kirkwood/board-dt.c +4
-0@@ -101,6 +101,9 @@ static void __init kirkwood_dt_init(void)if (of_machine_is_compatible ("globalscale,dreamplug" ))dreamplug_init (); +if (of_machine_is_compatible ("globalscale,guruplug" )) +guruplug_dt_init (); +if (of_machine_is_compatible ("dlink,dns-kirkwood" ))dnskw_init ();@@ -152,6 +155,7 @@ static void __init kirkwood_dt_init(void)static const char *const kirkwood_dt_board_compat[] = {"globalscale,dreamplug" , +"globalscale,guruplug" ,"dlink,dns-320" ,"dlink,dns-325" ,"iom,iconnect" ,arch/arm/mach-kirkwood/board-guruplug.c new file +39
-0@@ -0,0 +1,39 @@ +/* +* arch/arm/mach-kirkwood/board-guruplug.c +* +* Marvell Guruplug Reference Board Init for drivers not converted to +* flattened device tree yet. +* +* This file is licensed under the terms of the GNU General Public +* License version 2. This program is licensed "as is" without any +* warranty of any kind, whether express or implied. +*/ + +#include <linux/kernel.h> +#include <linux/init.h> +#include <linux/mv643xx_eth.h> +#include <linux/gpio.h> +#include <linux/platform_data/mmc-mvsdio.h> +#include "common.h" + +static struct mv643xx_eth_platform_data guruplug_ge00_data = { + .phy_addr =MV643XX_ETH_PHY_ADDR (0 ), +}; + +static struct mv643xx_eth_platform_data guruplug_ge01_data = { + .phy_addr =MV643XX_ETH_PHY_ADDR (1 ), +}; + +static struct mvsdio_platform_data guruplug_mvsdio_data = { +/* unfortunately the CD signal has not been connected */ +}; + +void __init guruplug_dt_init (void ) +{ +/* +* Basic setup. Needs to be called early. +*/ +kirkwood_ge00_init (&guruplug_ge00_data); +kirkwood_ge01_init (&guruplug_ge01_data); +kirkwood_sdio_init (&guruplug_mvsdio_data); +}arch/arm/mach-kirkwood/common.h +5
-0@@ -59,6 +59,11 @@ void dreamplug_init(void);#else static inline void dreamplug_init (void ) {};#endif +#ifdef CONFIG_MACH_GURUPLUG_DT +void guruplug_dt_init (void ); +#else +static inline void guruplug_dt_init (void ) {}; +#endif #ifdef CONFIG_MACH_TS219_DT void qnap_dt_ts219_init (void );#else Signature · 7 lines
1.7.12.2.21.g234cd45.dirty _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel at lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
PATCH v2 1/1 ARM: kirkwood: convert Guruplug Server Plus to use the device tree
Quoted 5 lines · Jason Cooper
arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts line 8
Quoted 2 lines
arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts new file +2
-0+ model = "Globalscale Technologies Guruplug Server Plus"; + compatible = "globalscale,guruplug-server-plug", "globalscale,guruplug", "marvell,kirkwood-88f6281", "marvell,kirkwood";One small typo, should be "...server-plus". If there are no other comments over the next few days, I'll tweak it when I pull it in.
I'm amazed, because you did exactly the same one in your initial review last week and I noticed it back then. Then I did this one without copy- pasting yours! It seems like our brain is too much attracted by those similarly looking letters. Sorry for this one.
Thanks,
Willy
PATCH v2 1/1 ARM: kirkwood: convert Guruplug Server Plus to use the device tree
Quoted 11 lines · Willy Tarreau
Quoted 5 lines · Jason Cooper
arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts line 8
Quoted 2 lines
arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts new file +2
-0+ model = "Globalscale Technologies Guruplug Server Plus"; + compatible = "globalscale,guruplug-server-plug", "globalscale,guruplug", "marvell,kirkwood-88f6281", "marvell,kirkwood";One small typo, should be "...server-plus". If there are no other comments over the next few days, I'll tweak it when I pull it in.
I'm amazed, because you did exactly the same one in your initial review last week and I noticed it back then. Then I did this one without copy- pasting yours! It seems like our brain is too much attracted by those similarly looking letters. Sorry for this one.
It's probably more of a pattern-completion mechanism in the brain. We type/think p-l-u-g more often than p-l-u-s. So, when you are on auto-pilot doing a simple change, the brain prefers 'g' over 's' to complete p-l-u... Or, we're both just dumb. ;-)
I'm pretty sure there's a PhD candidate neurobiologist lurking on the list who just found their thesis topic...
thx,
Jason.
Jason Cooper
AppliedPATCH v2 1/1 ARM: kirkwood: convert Guruplug Server Plus to use the device tree
In reply to Willy TarreauQuoted 32 lines · Willy Tarreau
Hi Jason,
Quoted 7 lines · Jason Cooper
Quoted 3 lines · Willy Tarreau
Since there are already pending changes for the merge window, I'll rather resend it after the merge window when the changes are already done, what do you think ?
Doesn't matter in this case, I'll handle any conflicts. Please resend when ready. You can just base off of v3.7-rc7, or v3.8 if it drops.
OK, I've updated it according to your comments and ensured it still works on my GPSP.
I have based the patch on the ARM tree because it includes some dtsi files that are needed by this patch. Please find it attached.
Best regards,
WillyFrom
075e116c6cb513af0e0b9d9167ddd47e1b084bcaMon Sep 17 00:00:00 2001
From: Willy Tarreau <[email protected]>
Date: Sun, 9 Dec 2012 19:21:09 +0100
Subject: ARM: kirkwood: convert Guruplug Server Plus to device treeAdd a device tree entry for the Guruplug Server Plus board. This port was based both on the work done on the dreamplug and the dockstar.
It builds, boots and works on my Guruplug Server Plus.
Signed-off-by Willy Tarreau <[email protected]>
Quoted 11 lines
--- arch/arm/boot/dts/Makefile | 1 + .../arm/boot/dts/kirkwood-guruplug-server-plus.dts | 94 ++++++++++++++++++++++ arch/arm/mach-kirkwood/Kconfig | 7 ++ arch/arm/mach-kirkwood/Makefile | 1 + arch/arm/mach-kirkwood/board-dt.c | 4 + arch/arm/mach-kirkwood/board-guruplug.c | 39 +++++++++ arch/arm/mach-kirkwood/common.h | 5 ++ 7 files changed, 151 insertions(+) create mode 100644 arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts create mode 100644 arch/arm/mach-kirkwood/board-guruplug.c
Applied to mvebu/boards.
thx,
Jason.
PATCH v2 1/1 ARM: kirkwood: convert Guruplug Server Plus to use the device tree
Hi Jason,
Quoted 24 lines · Jason Cooper
Quoted 11 lines · Willy Tarreau
From
075e116c6cb513af0e0b9d9167ddd47e1b084bcaMon Sep 17 00:00:00 2001
From: Willy Tarreau <[email protected]>
Date: Sun, 9 Dec 2012 19:21:09 +0100
Subject: ARM: kirkwood: convert Guruplug Server Plus to device treeAdd a device tree entry for the Guruplug Server Plus board. This port was based both on the work done on the dreamplug and the dockstar.
It builds, boots and works on my Guruplug Server Plus.
Signed-off-by Willy Tarreau <[email protected]>Quoted 11 lines
--- arch/arm/boot/dts/Makefile | 1 + .../arm/boot/dts/kirkwood-guruplug-server-plus.dts | 94 ++++++++++++++++++++++ arch/arm/mach-kirkwood/Kconfig | 7 ++ arch/arm/mach-kirkwood/Makefile | 1 + arch/arm/mach-kirkwood/board-dt.c | 4 + arch/arm/mach-kirkwood/board-guruplug.c | 39 +++++++++ arch/arm/mach-kirkwood/common.h | 5 ++ 7 files changed, 151 insertions(+) create mode 100644 arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts create mode 100644 arch/arm/mach-kirkwood/board-guruplug.c
Quoted 1 line
Applied to mvebu/boards.
I'm assuming you meant kirkwood instead of mvebu here, but thanks anyway !
Willy
PATCH v2 1/1 ARM: kirkwood: convert Guruplug Server Plus to use the device tree
Quoted 27 lines · Willy Tarreau
Hi Jason,
Quoted 24 lines · Jason Cooper
Quoted 22 lines · Willy Tarreau
From
075e116c6cb513af0e0b9d9167ddd47e1b084bcaMon Sep 17 00:00:00 2001
From: Willy Tarreau <[email protected]>
Date: Sun, 9 Dec 2012 19:21:09 +0100
Subject: ARM: kirkwood: convert Guruplug Server Plus to device treeAdd a device tree entry for the Guruplug Server Plus board. This port was based both on the work done on the dreamplug and the dockstar.
It builds, boots and works on my Guruplug Server Plus.
Signed-off-by Willy Tarreau <[email protected]>--- arch/arm/boot/dts/Makefile | 1 + .../arm/boot/dts/kirkwood-guruplug-server-plus.dts | 94 ++++++++++++++++++++++ arch/arm/mach-kirkwood/Kconfig | 7 ++ arch/arm/mach-kirkwood/Makefile | 1 + arch/arm/mach-kirkwood/board-dt.c | 4 + arch/arm/mach-kirkwood/board-guruplug.c | 39 +++++++++ arch/arm/mach-kirkwood/common.h | 5 ++ 7 files changed, 151 insertions(+) create mode 100644 arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts create mode 100644 arch/arm/mach-kirkwood/board-guruplug.c
Quoted 3 lines
Quoted 1 line
Applied to mvebu/boards.
I'm assuming you meant kirkwood instead of mvebu here, but thanks anyway !
mach-mvebu is where everything is being migrated to once the DT conversion is complete. We use the name internally to refer to any SoCs created by Marvell in the EBU division.
So, yes, it's kirkwood, but it falls under mvebu stuff. Just like dove and orion5x.
hth,
Jason.
PATCH v2 1/1 ARM: kirkwood: convert Guruplug Server Plus to use the device tree
Quoted 6 lines · Jason Cooper
mach-mvebu is where everything is being migrated to once the DT conversion is complete. We use the name internally to refer to any SoCs created by Marvell in the EBU division.
So, yes, it's kirkwood, but it falls under mvebu stuff. Just like dove and orion5x.
OK, that was not obvious to me, since till now for me mvebu was only the new armada370/XP boards. But that makes sense and it will certainly make code sharing easier !
Thanks for your explanation!
Willy