ARM: Kirkwood: new board USI Topkick
Subsystems (4)
PATCH 1/1 ARM: Kirkwood: new board USI Topkick
This is a new kirkwood box made by Universal Scientific Industrial, Inc. The product description is here:
http://www.usish.com/english/products_topkick1281p2.php
It is very similar to the dreamplug and other plug devices, with the exception that it has room for a 2.5" SATA HDD internally.
--- arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/kirkwood-topkick.dts | 85 +++++++++++++++++++++++++++ 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-usi_topkick.c | 93 ++++++++++++++++++++++++++++++ arch/arm/mach-kirkwood/common.h | 6 ++ 7 files changed, 198 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/kirkwood-topkick.dts create mode 100644 arch/arm/mach-kirkwood/board-usi_topkick.c
arch/arm/boot/dts/Makefile +2 -1
@@ -38,7 +38,8 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ kirkwood-lschlv2.dtb \ kirkwood-lsxhl.dtb \ kirkwood-ts219-6281.dtb \ - kirkwood-ts219-6282.dtb + kirkwood-ts219-6282.dtb \ + kirkwood-topkick.dtb dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.dtb \ msm8960-cdp.dtb dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \
arch/arm/boot/dts/kirkwood-topkick.dts new file +85 -0
85 lines not on this page · raw message
arch/arm/mach-kirkwood/Kconfig +7 -0
@@ -130,6 +130,13 @@ config MACH_KM_KIRKWOOD_DT Say 'Y' here if you want your kernel to support the Keymile Kirkwood Reference Desgin, using Flattened Device Tree. +config MACH_TOPKICK_DT + bool "USI Topkick (Flattened Device Tree)" + select ARCH_KIRKWOOD_DT + help + Say 'Y' here if you want your kernel to support the + USI Topkick, using Flattened Device Tree + config MACH_TS219 bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS" help
arch/arm/mach-kirkwood/Makefile +1 -0
@@ -31,3 +31,4 @@ obj-$(CONFIG_MACH_GOFLEXNET_DT) += board-goflexnet.o obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o obj-$(CONFIG_MACH_IOMEGA_IX2_200_DT) += board-iomega_ix2_200.o obj-$(CONFIG_MACH_KM_KIRKWOOD_DT) += board-km_kirkwood.o +obj-$(CONFIG_MACH_TOPKICK_DT) += board-usi_topkick.o
arch/arm/mach-kirkwood/board-dt.c +4 -0
@@ -96,6 +96,9 @@ static void __init kirkwood_dt_init(void)if (of_machine_is_compatible ("keymile,km_kirkwood" ))km_kirkwood_init (); +if (of_machine_is_compatible ("usi,topkick" )) +usi_topkick_init (); +of_platform_populate (NULL , kirkwood_dt_match_table, kirkwood_auxdata_lookup,NULL ); }
@@ -112,6 +115,7 @@ static const char *kirkwood_dt_board_compat[] = {"buffalo,lsxl" ,"iom,ix2-200" ,"keymile,km_kirkwood" , +"usi,topkick" , NULL };
arch/arm/mach-kirkwood/board-usi_topkick.c new file +93 -0
93 lines not on this page · raw message
arch/arm/mach-kirkwood/common.h +6 -0
@@ -112,6 +112,12 @@ void km_kirkwood_init(void);static inline void km_kirkwood_init (void ) {};#endif +#ifdef CONFIG_MACH_TOPKICK_DT +void usi_topkick_init (void ); +#else +static inline void usi_topkick_init (void ) {}; +#endif +/* early init functions not converted to fdt yet */ char *kirkwood_id (void );void kirkwood_l2_init (void );
Signature · 1 line
1.7.12.4
PATCH 1/1 ARM: Kirkwood: new board USI Topkick
arch/arm/boot/dts/kirkwood-topkick.dts line 7
Quoted 9 lines
+++
b/arch/arm/boot/dts/kirkwood-topkick.dtsarch/arm/boot/dts/kirkwood-topkick.dts new file +7
-0@@ -0,0 +1,85 @@ +/dts-v1/; + +/include/ "kirkwood.dtsi" + +/ { + model = "Univeral Scientific Industrial Co. Topkick-1281P2"; + compatible = "usi,topkick-1281P2", "usi,topkick", "marvell,kirkwood-88f6282", "marvell,kirkwood";
Hi Jason
Nice to see the correct Kirkwood variant in DT. This is going to be an issue for pinctrl sometime soon.
arch/arm/boot/dts/kirkwood-topkick.dts line 55
Quoted 4 lines
arch/arm/boot/dts/kirkwood-topkick.dts new file +4
-0+ + sata at 80000 { + status = "okay"; + nr-ports = <2>;
Could nr-ports be 1? It saves a little bit of memory. There only seems to be one SATA interface available, no external SATA port. However, if the one used is the second SATA, then 2 is required.
Quoted 31 lines
arch/arm/mach-kirkwood/board-usi_topkick.c new file +25
-0@@ -0,0 +1,93 @@ +/* +* Copyright 2012 (C), Jason Cooper <[email protected]> +* +* arch/arm/mach-kirkwood/board-dreamplug.c +* +* Marvell DreamPlug 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/platform_device.h> +#include <linux/ata_platform.h> +#include <linux/mv643xx_eth.h> +#include <linux/of.h> +#include <linux/of_address.h> +#include <linux/of_fdt.h> +#include <linux/of_irq.h> +#include <linux/of_platform.h> +#include <linux/gpio.h> +#include <linux/mtd/physmap.h>
arch/arm/mach-kirkwood/board-usi_topkick.c line 35
Quoted 10 lines
arch/arm/mach-kirkwood/board-usi_topkick.c new file +10
-0+#include <linux/spi/flash.h> +#include <linux/spi/spi.h> +#include <asm/mach-types.h> +#include <asm/mach/arch.h> +#include <asm/mach/map.h> +#include <mach/kirkwood.h> +#include <mach/bridge-regs.h> +#include <linux/platform_data/mmc-mvsdio.h> +#include "common.h" +#include "mpp.h"
A lot of these header files are not needed. Please could you remove the unused ones.
Quoted 31 lines
arch/arm/mach-kirkwood/board-usi_topkick.c new file +31
-0+ +static struct mv643xx_eth_platform_data topkick_ge00_data = { + .phy_addr =MV643XX_ETH_PHY_ADDR (0 ), +}; + +/* +* GPIO LED layout +* +* /-SYS_LED(2) +* | +* | /-DISK_LED +* | | +* | | /-WLAN_LED(2) +* | | | +* [SW] [*] [*] [*] +*/ + +/* +* Switch positions +* +* /-SW_LEFT +* | +* | /-SW_IDLE +* | | +* | | /-SW_RIGHT +* | | | +* PS [L] [I] [R] LEDS +*/ + +static unsigned int topkick_mpp_config[]__initdata = { +MPP21_GPIO ,/* DISK_LED (low active) - yellow */
arch/arm/mach-kirkwood/board-usi_topkick.c line 76
Quoted 10 lines
arch/arm/mach-kirkwood/board-usi_topkick.c new file +10
-0+MPP36_GPIO ,/* SATA0 power enable (high active) */ +MPP37_GPIO ,/* SYS_LED2 (low active) - red */ +MPP38_GPIO ,/* SYS_LED (low active) - blue */ +MPP39_GPIO ,/* WLAN_LED (low active) - green */ +MPP43_GPIO ,/* SW_LEFT (low active) */ +MPP44_GPIO ,/* SW_RIGHT (low active) */ +MPP45_GPIO ,/* SW_IDLE (low active) */ +MPP46_GPIO ,/* SW_LEFT (low active) */ +MPP48_GPIO ,/* WLAN_LED2 (low active) - yellow */ +0
This assumes the boot loader is configuring all the other pins as needed. It would be safer to explicitly configure the SATA pins, Ethernet pins etc. However, maybe that should wait until we have pinctrl, which makes it a lot easier.
arch/arm/mach-kirkwood/board-usi_topkick.c line 89
Quoted 13 lines
arch/arm/mach-kirkwood/board-usi_topkick.c new file +13
-0+}; + +#define TOPKICK_SATA0_PWR_ENABLE 36 + +void __init usi_topkick_init (void ) +{ +/* +* Basic setup. Needs to be called early. +*/ +kirkwood_mpp_conf (topkick_mpp_config); + +/* SATA0 power enable */ +gpio_set_value (TOPKICK_SATA0_PWR_ENABLE ,1 );
It would be nice to be able to do that in DT. Does such a binding already exist? Its something we need quite often in kirkwood, and i guess other machines architectures as well.
arch/arm/mach-kirkwood/board-usi_topkick.c line 93
Quoted 4 lines
arch/arm/mach-kirkwood/board-usi_topkick.c new file +4
-0+ +kirkwood_ehci_init (); +kirkwood_ge00_init (&topkick_ge00_data); +}
How is the wifi device instantiated? Is it a PCIe device so it auto-probed? Or is some explicit instantiation required, say if its an SPI device?
It would be good to add this board to kirkwood_defconfig as well.
Andrew
PATCH 1/1 ARM: Kirkwood: new board USI Topkick
Quoted 15 lines · Andrew Lunn
arch/arm/boot/dts/kirkwood-topkick.dts line 7
Quoted 9 lines
+++
b/arch/arm/boot/dts/kirkwood-topkick.dtsarch/arm/boot/dts/kirkwood-topkick.dts new file +7
-0@@ -0,0 +1,85 @@ +/dts-v1/; + +/include/ "kirkwood.dtsi" + +/ { + model = "Univeral Scientific Industrial Co. Topkick-1281P2"; + compatible = "usi,topkick-1281P2", "usi,topkick", "marvell,kirkwood-88f6282", "marvell,kirkwood";Hi Jason
Nice to see the correct Kirkwood variant in DT. This is going to be an issue for pinctrl sometime soon.
Quoted 8 lines
arch/arm/boot/dts/kirkwood-topkick.dts line 55
Quoted 4 lines
arch/arm/boot/dts/kirkwood-topkick.dts new file +4
-0+ + sata at 80000 { + status = "okay"; + nr-ports = <2>;Could nr-ports be 1? It saves a little bit of memory. There only seems to be one SATA interface available, no external SATA port. However, if the one used is the second SATA, then 2 is required.
Yes, I caught this right after <send>, and mentioned it on irc for v2. It was part of my, "did they wire it up to sata1, instead?" effort. Sebastian was a huge help getting sata and the leds working.
Quoted 37 lines
Quoted 37 lines
arch/arm/mach-kirkwood/board-usi_topkick.c new file +30
-0@@ -0,0 +1,93 @@ +/* +* Copyright 2012 (C), Jason Cooper <[email protected]> +* +* arch/arm/mach-kirkwood/board-dreamplug.c +* +* Marvell DreamPlug 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/platform_device.h> +#include <linux/ata_platform.h> +#include <linux/mv643xx_eth.h> +#include <linux/of.h> +#include <linux/of_address.h> +#include <linux/of_fdt.h> +#include <linux/of_irq.h> +#include <linux/of_platform.h> +#include <linux/gpio.h> +#include <linux/mtd/physmap.h> +#include <linux/spi/flash.h> +#include <linux/spi/spi.h> +#include <asm/mach-types.h> +#include <asm/mach/arch.h> +#include <asm/mach/map.h>
Quoted 8 lines
arch/arm/mach-kirkwood/board-usi_topkick.c line 35
Quoted 5 lines
arch/arm/mach-kirkwood/board-usi_topkick.c new file +5
-0+#include <mach/kirkwood.h> +#include <mach/bridge-regs.h> +#include <linux/platform_data/mmc-mvsdio.h> +#include "common.h" +#include "mpp.h" A lot of these header files are not needed. Please could you remove the unused ones.
Sure, and I'll go back and double check dreamplug. ;-)
Quoted 39 lines
Quoted 39 lines
arch/arm/mach-kirkwood/board-usi_topkick.c new file +38
-0+ +static struct mv643xx_eth_platform_data topkick_ge00_data = { + .phy_addr =MV643XX_ETH_PHY_ADDR (0 ), +}; + +/* +* GPIO LED layout +* +* /-SYS_LED(2) +* | +* | /-DISK_LED +* | | +* | | /-WLAN_LED(2) +* | | | +* [SW] [*] [*] [*] +*/ + +/* +* Switch positions +* +* /-SW_LEFT +* | +* | /-SW_IDLE +* | | +* | | /-SW_RIGHT +* | | | +* PS [L] [I] [R] LEDS +*/ + +static unsigned int topkick_mpp_config[]__initdata = { +MPP21_GPIO ,/* DISK_LED (low active) - yellow */ +MPP36_GPIO ,/* SATA0 power enable (high active) */ +MPP37_GPIO ,/* SYS_LED2 (low active) - red */ +MPP38_GPIO ,/* SYS_LED (low active) - blue */ +MPP39_GPIO ,/* WLAN_LED (low active) - green */ +MPP43_GPIO ,/* SW_LEFT (low active) */ +MPP44_GPIO ,/* SW_RIGHT (low active) */ +MPP45_GPIO ,/* SW_IDLE (low active) */
Quoted 8 lines
arch/arm/mach-kirkwood/board-usi_topkick.c line 76
Quoted 3 lines
arch/arm/mach-kirkwood/board-usi_topkick.c new file +3
-0+MPP46_GPIO ,/* SW_LEFT (low active) */ +MPP48_GPIO ,/* WLAN_LED2 (low active) - yellow */ +0 This assumes the boot loader is configuring all the other pins as needed. It would be safer to explicitly configure the SATA pins, Ethernet pins etc. However, maybe that should wait until we have pinctrl, which makes it a lot easier.
I agree.
Quoted 10 lines
Quoted 10 lines
arch/arm/mach-kirkwood/board-usi_topkick.c new file +9
-0+}; + +#define TOPKICK_SATA0_PWR_ENABLE 36 + +void __init usi_topkick_init (void ) +{ +/* +* Basic setup. Needs to be called early. +*/
Quoted 8 lines
arch/arm/mach-kirkwood/board-usi_topkick.c line 89
Quoted 4 lines
arch/arm/mach-kirkwood/board-usi_topkick.c new file +4
-0+kirkwood_mpp_conf (topkick_mpp_config); + +/* SATA0 power enable */ +gpio_set_value (TOPKICK_SATA0_PWR_ENABLE ,1 );It would be nice to be able to do that in DT. Does such a binding already exist? Its something we need quite often in kirkwood, and i guess other machines architectures as well.
I was thinking about that and how to handle it once we are down to board-dt.c. At the very least, we can expose the pin in sysfs and have an initrd enable it for booting from HDD.
The ideal solution would be something similar to gpio-leds, where you can set default-state = "on". This may already exist for gpios, I haven't looked yet.
Quoted 9 lines
arch/arm/mach-kirkwood/board-usi_topkick.c line 93
Quoted 5 lines
arch/arm/mach-kirkwood/board-usi_topkick.c new file +4
-0+ +kirkwood_ehci_init (); +kirkwood_ge00_init (&topkick_ge00_data); +}How is the wifi device instantiated? Is it a PCIe device so it auto-probed? Or is some explicit instantiation required, say if its an SPI device?
I dunno, I don't usually enable wifi on my dreamplug, so I admit I forgot to look.
Quoted 2 lines
It would be good to add this board to
kirkwood_defconfigas well.
Yes, already planned for v2.
Thanks for the review.
Jason.
PATCH v2 1/1 ARM: Kirkwood: new board USI Topkick
In reply to Jason CooperThis is a new kirkwood box made by Universal Scientific Industrial, Inc. The product description is here:
http://www.usish.com/english/products_topkick1281p2.php
It is very similar to the dreamplug and other plug devices, with the exception that it has room for a 2.5" SATA HDD internally.
---
Changes since V1:
- changes nr-ports to 1 for sata0
- included board in defconfig
- trimmed #includes
- added mvsdio init call
arch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/kirkwood-topkick.dts | 85 ++++++++++++++++++++++++++++++ arch/arm/configs/kirkwood_defconfig | 1 + 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-usi_topkick.c | 83 +++++++++++++++++++++++++++++ arch/arm/mach-kirkwood/common.h | 6 +++ 8 files changed, 189 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/kirkwood-topkick.dts create mode 100644 arch/arm/mach-kirkwood/board-usi_topkick.c
arch/arm/boot/dts/Makefile +2 -1
@@ -38,7 +38,8 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ kirkwood-lschlv2.dtb \ kirkwood-lsxhl.dtb \ kirkwood-ts219-6281.dtb \ - kirkwood-ts219-6282.dtb + kirkwood-ts219-6282.dtb \ + kirkwood-topkick.dtb dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.dtb \ msm8960-cdp.dtb dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \
arch/arm/boot/dts/kirkwood-topkick.dts new file +85 -0
85 lines not on this page · raw message
arch/arm/configs/kirkwood_defconfig +1 -0
@@ -27,6 +27,7 @@ CONFIG_MACH_GOFLEXNET_DT=y CONFIG_MACH_LSXL_DT=y CONFIG_MACH_IOMEGA_IX2_200_DT=y CONFIG_MACH_KM_KIRKWOOD_DT=y +CONFIG_MACH_TOPKICK_DT=y CONFIG_MACH_TS219=y CONFIG_MACH_TS41X=y CONFIG_MACH_DOCKSTAR=y
arch/arm/mach-kirkwood/Kconfig +7 -0
@@ -130,6 +130,13 @@ config MACH_KM_KIRKWOOD_DT Say 'Y' here if you want your kernel to support the Keymile Kirkwood Reference Desgin, using Flattened Device Tree. +config MACH_TOPKICK_DT + bool "USI Topkick (Flattened Device Tree)" + select ARCH_KIRKWOOD_DT + help + Say 'Y' here if you want your kernel to support the + USI Topkick, using Flattened Device Tree + config MACH_TS219 bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS" help
arch/arm/mach-kirkwood/Makefile +1 -0
@@ -31,3 +31,4 @@ obj-$(CONFIG_MACH_GOFLEXNET_DT) += board-goflexnet.o obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o obj-$(CONFIG_MACH_IOMEGA_IX2_200_DT) += board-iomega_ix2_200.o obj-$(CONFIG_MACH_KM_KIRKWOOD_DT) += board-km_kirkwood.o +obj-$(CONFIG_MACH_TOPKICK_DT) += board-usi_topkick.o
arch/arm/mach-kirkwood/board-dt.c +4 -0
@@ -96,6 +96,9 @@ static void __init kirkwood_dt_init(void)if (of_machine_is_compatible ("keymile,km_kirkwood" ))km_kirkwood_init (); +if (of_machine_is_compatible ("usi,topkick" )) +usi_topkick_init (); +of_platform_populate (NULL , kirkwood_dt_match_table, kirkwood_auxdata_lookup,NULL ); }
@@ -112,6 +115,7 @@ static const char *kirkwood_dt_board_compat[] = {"buffalo,lsxl" ,"iom,ix2-200" ,"keymile,km_kirkwood" , +"usi,topkick" , NULL };
arch/arm/mach-kirkwood/board-usi_topkick.c new file +83 -0
83 lines not on this page · raw message
arch/arm/mach-kirkwood/common.h +6 -0
@@ -112,6 +112,12 @@ void km_kirkwood_init(void);static inline void km_kirkwood_init (void ) {};#endif +#ifdef CONFIG_MACH_TOPKICK_DT +void usi_topkick_init (void ); +#else +static inline void usi_topkick_init (void ) {}; +#endif +/* early init functions not converted to fdt yet */ char *kirkwood_id (void );void kirkwood_l2_init (void );
Signature · 1 line
1.7.12.4
PATCH v2 1/1 ARM: Kirkwood: new board USI Topkick
Quoted 33 lines · Jason Cooper
This is a new kirkwood box made by Universal Scientific Industrial, Inc. The product description is here:
http://www.usish.com/english/products_topkick1281p2.php
It is very similar to the dreamplug and other plug devices, with the exception that it has room for a 2.5" SATA HDD internally.
Signed-off-by Jason Cooper <[email protected]>---
Changes since V1:
- changes nr-ports to 1 for sata0
- included board in defconfig
- trimmed #includes
- added mvsdio init callarch/arm/boot/dts/Makefile | 3 +- arch/arm/boot/dts/kirkwood-topkick.dts | 85 ++++++++++++++++++++++++++++++ arch/arm/configs/kirkwood_defconfig | 1 + 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-usi_topkick.c | 83 +++++++++++++++++++++++++++++ arch/arm/mach-kirkwood/common.h | 6 +++ 8 files changed, 189 insertions(+), 1 deletion(-) create mode 100644 arch/arm/boot/dts/kirkwood-topkick.dts create mode 100644 arch/arm/mach-kirkwood/board-usi_topkick.carch/arm/boot/dts/Makefile +0
-0
arch/arm/boot/dts/Makefile dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ · line 42
Quoted 6 lines
arch/arm/boot/dts/Makefile +2
-1@@ -38,7 +38,8 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ kirkwood-lschlv2.dtb \ kirkwood-lsxhl.dtb \ kirkwood-ts219-6281.dtb \ - kirkwood-ts219-6282.dtb + kirkwood-ts219-6282.dtb \ + kirkwood-topkick.dtb
Hi Jason
These are sorted in alphabetic order. So topkick should be before ts219. Keeping them sorted reduced merge conflicts.
Quoted 161 lines
arch/arm/boot/dts/Makefile +0
-0dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.dtb \ msm8960-cdp.dtb dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \arch/arm/boot/dts/kirkwood-topkick.dts new file +85
-0@@ -0,0 +1,85 @@ +/dts-v1/; + +/include/ "kirkwood.dtsi" + +/ { + model = "Univeral Scientific Industrial Co. Topkick-1281P2"; + compatible = "usi,topkick-1281P2", "usi,topkick", "marvell,kirkwood-88f6282", "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x10000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8 earlyprintk"; + }; + + ocp at f1000000 { + serial at 12000 { + clock-frequency = <200000000>; + status = "ok"; + }; + + nand at 3000000 { + status = "okay"; + + partition at 0 { + label = "u-boot"; + reg = <0x0000000 0x180000>; + }; + + partition at 180000 { + label = "u-boot env"; + reg = <0x0180000 0x20000>; + }; + + partition at 200000 { + label = "uImage"; + reg = <0x0200000 0x600000>; + }; + + partition at 800000 { + label = "uInitrd"; + reg = <0x0800000 0x1000000>; + }; + + partition at 1800000 { + label = "rootfs"; + reg = <0x1800000 0xe800000>; + }; + }; + + sata at 80000 { + status = "okay"; + nr-ports = <1>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + disk { + label = "topkick:yellow:disk"; + gpios = <&gpio0 21 1>; + linux,default-trigger = "ide-disk"; + }; + system2 { + label = "topkick:red:system"; + gpios = <&gpio1 5 1>; + }; + system { + label = "topkick:blue:system"; + gpios = <&gpio1 6 1>; + default-state = "on"; + }; + wifi { + label = "topkick:green:wifi"; + gpios = <&gpio1 7 1>; + }; + wifi2 { + label = "topkick:yellow:wifi"; + gpios = <&gpio1 16 1>; + }; + }; +};arch/arm/configs/kirkwood_defconfig +1
-0@@ -27,6 +27,7 @@ CONFIG_MACH_GOFLEXNET_DT=y CONFIG_MACH_LSXL_DT=y CONFIG_MACH_IOMEGA_IX2_200_DT=y CONFIG_MACH_KM_KIRKWOOD_DT=y +CONFIG_MACH_TOPKICK_DT=y CONFIG_MACH_TS219=y CONFIG_MACH_TS41X=y CONFIG_MACH_DOCKSTAR=yarch/arm/mach-kirkwood/Kconfig +7
-0@@ -130,6 +130,13 @@ config MACH_KM_KIRKWOOD_DT Say 'Y' here if you want your kernel to support the Keymile Kirkwood Reference Desgin, using Flattened Device Tree. +config MACH_TOPKICK_DT + bool "USI Topkick (Flattened Device Tree)" + select ARCH_KIRKWOOD_DT + help + Say 'Y' here if you want your kernel to support the + USI Topkick, using Flattened Device Tree + config MACH_TS219 bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS" helparch/arm/mach-kirkwood/Makefile +1
-0@@ -31,3 +31,4 @@ obj-$(CONFIG_MACH_GOFLEXNET_DT) += board-goflexnet.o obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o obj-$(CONFIG_MACH_IOMEGA_IX2_200_DT) += board-iomega_ix2_200.o obj-$(CONFIG_MACH_KM_KIRKWOOD_DT) += board-km_kirkwood.o +obj-$(CONFIG_MACH_TOPKICK_DT) += board-usi_topkick.oarch/arm/mach-kirkwood/board-dt.c +4
-0@@ -96,6 +96,9 @@ static void __init kirkwood_dt_init(void)if (of_machine_is_compatible ("keymile,km_kirkwood" ))km_kirkwood_init (); +if (of_machine_is_compatible ("usi,topkick" )) +usi_topkick_init (); +of_platform_populate (NULL , kirkwood_dt_match_table, kirkwood_auxdata_lookup,NULL ); }@@ -112,6 +115,7 @@ static const char *kirkwood_dt_board_compat[] = {"buffalo,lsxl" ,"iom,ix2-200" ,"keymile,km_kirkwood" , +"usi,topkick" , NULL };arch/arm/mach-kirkwood/board-usi_topkick.c new file +0
-0
arch/arm/mach-kirkwood/board-usi_topkick.c line 4
Quoted 4 lines
arch/arm/mach-kirkwood/board-usi_topkick.c new file +4
-0@@ -0,0 +1,83 @@ +/* +* Copyright 2012 (C), Jason Cooper <[email protected]> +* +* arch/arm/mach-kirkwood/board-dreamplug.c
board-usi_topkick.c
arch/arm/mach-kirkwood/board-usi_topkick.c line 7
Quoted 3 lines
arch/arm/mach-kirkwood/board-usi_topkick.c new file +3
-0+* +* Marvell DreamPlug Reference Board Init for drivers not converted to +* flattened device tree yet.
Comment needs updating...
Quoted 11 lines
arch/arm/mach-kirkwood/board-usi_topkick.c new file +11
-0+* +* 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>
arch/arm/mach-kirkwood/board-usi_topkick.c line 28
Quoted 10 lines
arch/arm/mach-kirkwood/board-usi_topkick.c new file +10
-0+#include "common.h" +#include "mpp.h" + +static struct mv643xx_eth_platform_data topkick_ge00_data = { + .phy_addr =MV643XX_ETH_PHY_ADDR (0 ), +}; + +static struct mvsdio_platform_data topkick_mvsdio_data = { +/* unfortunately the CD signal has not been connected */ +};
Is this just cut/paste, or has it been verified that CD is not connected?
Andrew
PATCH v2 1/1 ARM: Kirkwood: new board USI Topkick
Quoted 7 lines · Andrew Lunn
arch/arm/mach-kirkwood/board-usi_topkick.c line 28
Quoted 3 lines · Jason Cooper
arch/arm/mach-kirkwood/board-usi_topkick.c new file +3
-0+static struct mvsdio_platform_data topkick_mvsdio_data = { +/* unfortunately the CD signal has not been connected */ +};Is this just cut/paste, or has it been verified that CD is not connected?
Both. ;-) There is no card slot on the topkick. I'll have to go back and test the dreamplug.
thx,
Jason.
PATCH v3 1/1 ARM: Kirkwood: new board USI Topkick
In reply to Jason CooperThis is a new kirkwood box made by Universal Scientific Industrial, Inc. The product description is here:
http://www.usish.com/english/products_topkick1281p2.php
It is very similar to the dreamplug and other plug devices, with the exception that it has room for a 2.5" SATA HDD internally.
---
Changes since V2:
- corrected comments missed during copy/paste
- sorted topkick dtb Makefile entry alphabetically
Changes since V1:
- changes nr-ports to 1 for sata0
- included board in defconfig
- trimmed #includes
- added mvsdio init call
arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/kirkwood-topkick.dts | 85 ++++++++++++++++++++++++++++++ arch/arm/configs/kirkwood_defconfig | 1 + 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-usi_topkick.c | 82 ++++++++++++++++++++++++++++ arch/arm/mach-kirkwood/common.h | 6 +++ 8 files changed, 187 insertions(+) create mode 100644 arch/arm/boot/dts/kirkwood-topkick.dts create mode 100644 arch/arm/mach-kirkwood/board-usi_topkick.c
arch/arm/boot/dts/Makefile +1 -0
@@ -37,6 +37,7 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ kirkwood-km_kirkwood.dtb \ kirkwood-lschlv2.dtb \ kirkwood-lsxhl.dtb \ + kirkwood-topkick.dtb \ kirkwood-ts219-6281.dtb \ kirkwood-ts219-6282.dtb dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.dtb \
arch/arm/boot/dts/kirkwood-topkick.dts new file +85 -0
85 lines not on this page · raw message
arch/arm/configs/kirkwood_defconfig +1 -0
@@ -27,6 +27,7 @@ CONFIG_MACH_GOFLEXNET_DT=y CONFIG_MACH_LSXL_DT=y CONFIG_MACH_IOMEGA_IX2_200_DT=y CONFIG_MACH_KM_KIRKWOOD_DT=y +CONFIG_MACH_TOPKICK_DT=y CONFIG_MACH_TS219=y CONFIG_MACH_TS41X=y CONFIG_MACH_DOCKSTAR=y
arch/arm/mach-kirkwood/Kconfig +7 -0
@@ -130,6 +130,13 @@ config MACH_KM_KIRKWOOD_DT Say 'Y' here if you want your kernel to support the Keymile Kirkwood Reference Desgin, using Flattened Device Tree. +config MACH_TOPKICK_DT + bool "USI Topkick (Flattened Device Tree)" + select ARCH_KIRKWOOD_DT + help + Say 'Y' here if you want your kernel to support the + USI Topkick, using Flattened Device Tree + config MACH_TS219 bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS" help
arch/arm/mach-kirkwood/Makefile +1 -0
@@ -31,3 +31,4 @@ obj-$(CONFIG_MACH_GOFLEXNET_DT) += board-goflexnet.o obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o obj-$(CONFIG_MACH_IOMEGA_IX2_200_DT) += board-iomega_ix2_200.o obj-$(CONFIG_MACH_KM_KIRKWOOD_DT) += board-km_kirkwood.o +obj-$(CONFIG_MACH_TOPKICK_DT) += board-usi_topkick.o
arch/arm/mach-kirkwood/board-dt.c +4 -0
@@ -96,6 +96,9 @@ static void __init kirkwood_dt_init(void)if (of_machine_is_compatible ("keymile,km_kirkwood" ))km_kirkwood_init (); +if (of_machine_is_compatible ("usi,topkick" )) +usi_topkick_init (); +of_platform_populate (NULL , kirkwood_dt_match_table, kirkwood_auxdata_lookup,NULL ); }
@@ -112,6 +115,7 @@ static const char *kirkwood_dt_board_compat[] = {"buffalo,lsxl" ,"iom,ix2-200" ,"keymile,km_kirkwood" , +"usi,topkick" , NULL };
arch/arm/mach-kirkwood/board-usi_topkick.c new file +82 -0
82 lines not on this page · raw message
arch/arm/mach-kirkwood/common.h +6 -0
@@ -112,6 +112,12 @@ void km_kirkwood_init(void);static inline void km_kirkwood_init (void ) {};#endif +#ifdef CONFIG_MACH_TOPKICK_DT +void usi_topkick_init (void ); +#else +static inline void usi_topkick_init (void ) {}; +#endif +/* early init functions not converted to fdt yet */ char *kirkwood_id (void );void kirkwood_l2_init (void );
Signature · 1 line
1.7.12.4
PATCH v3 1/1 ARM: Kirkwood: new board USI Topkick
Quoted 304 lines · Jason Cooper
This is a new kirkwood box made by Universal Scientific Industrial, Inc. The product description is here:
http://www.usish.com/english/products_topkick1281p2.php
It is very similar to the dreamplug and other plug devices, with the exception that it has room for a 2.5" SATA HDD internally.
Signed-off-by Jason Cooper <[email protected]>---
Changes since V2:
- corrected comments missed during copy/paste
- sorted topkick dtbMakefileentry alphabeticallyChanges since V1:
- changes nr-ports to 1 for sata0
- included board in defconfig
- trimmed #includes
- added mvsdio init callarch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/kirkwood-topkick.dts | 85 ++++++++++++++++++++++++++++++ arch/arm/configs/kirkwood_defconfig | 1 + 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-usi_topkick.c | 82 ++++++++++++++++++++++++++++ arch/arm/mach-kirkwood/common.h | 6 +++ 8 files changed, 187 insertions(+) create mode 100644 arch/arm/boot/dts/kirkwood-topkick.dts create mode 100644 arch/arm/mach-kirkwood/board-usi_topkick.carch/arm/boot/dts/Makefile +1
-0@@ -37,6 +37,7 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ kirkwood-km_kirkwood.dtb \ kirkwood-lschlv2.dtb \ kirkwood-lsxhl.dtb \ + kirkwood-topkick.dtb \ kirkwood-ts219-6281.dtb \ kirkwood-ts219-6282.dtb dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.dtb \arch/arm/boot/dts/kirkwood-topkick.dts new file +85
-0@@ -0,0 +1,85 @@ +/dts-v1/; + +/include/ "kirkwood.dtsi" + +/ { + model = "Univeral Scientific Industrial Co. Topkick-1281P2"; + compatible = "usi,topkick-1281P2", "usi,topkick", "marvell,kirkwood-88f6282", "marvell,kirkwood"; + + memory { + device_type = "memory"; + reg = <0x00000000 0x10000000>; + }; + + chosen { + bootargs = "console=ttyS0,115200n8 earlyprintk"; + }; + + ocp at f1000000 { + serial at 12000 { + clock-frequency = <200000000>; + status = "ok"; + }; + + nand at 3000000 { + status = "okay"; + + partition at 0 { + label = "u-boot"; + reg = <0x0000000 0x180000>; + }; + + partition at 180000 { + label = "u-boot env"; + reg = <0x0180000 0x20000>; + }; + + partition at 200000 { + label = "uImage"; + reg = <0x0200000 0x600000>; + }; + + partition at 800000 { + label = "uInitrd"; + reg = <0x0800000 0x1000000>; + }; + + partition at 1800000 { + label = "rootfs"; + reg = <0x1800000 0xe800000>; + }; + }; + + sata at 80000 { + status = "okay"; + nr-ports = <1>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + disk { + label = "topkick:yellow:disk"; + gpios = <&gpio0 21 1>; + linux,default-trigger = "ide-disk"; + }; + system2 { + label = "topkick:red:system"; + gpios = <&gpio1 5 1>; + }; + system { + label = "topkick:blue:system"; + gpios = <&gpio1 6 1>; + default-state = "on"; + }; + wifi { + label = "topkick:green:wifi"; + gpios = <&gpio1 7 1>; + }; + wifi2 { + label = "topkick:yellow:wifi"; + gpios = <&gpio1 16 1>; + }; + }; +};arch/arm/configs/kirkwood_defconfig +1
-0@@ -27,6 +27,7 @@ CONFIG_MACH_GOFLEXNET_DT=y CONFIG_MACH_LSXL_DT=y CONFIG_MACH_IOMEGA_IX2_200_DT=y CONFIG_MACH_KM_KIRKWOOD_DT=y +CONFIG_MACH_TOPKICK_DT=y CONFIG_MACH_TS219=y CONFIG_MACH_TS41X=y CONFIG_MACH_DOCKSTAR=yarch/arm/mach-kirkwood/Kconfig +7
-0@@ -130,6 +130,13 @@ config MACH_KM_KIRKWOOD_DT Say 'Y' here if you want your kernel to support the Keymile Kirkwood Reference Desgin, using Flattened Device Tree. +config MACH_TOPKICK_DT + bool "USI Topkick (Flattened Device Tree)" + select ARCH_KIRKWOOD_DT + help + Say 'Y' here if you want your kernel to support the + USI Topkick, using Flattened Device Tree + config MACH_TS219 bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS" helparch/arm/mach-kirkwood/Makefile +1
-0@@ -31,3 +31,4 @@ obj-$(CONFIG_MACH_GOFLEXNET_DT) += board-goflexnet.o obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o obj-$(CONFIG_MACH_IOMEGA_IX2_200_DT) += board-iomega_ix2_200.o obj-$(CONFIG_MACH_KM_KIRKWOOD_DT) += board-km_kirkwood.o +obj-$(CONFIG_MACH_TOPKICK_DT) += board-usi_topkick.oarch/arm/mach-kirkwood/board-dt.c +4
-0@@ -96,6 +96,9 @@ static void __init kirkwood_dt_init(void)if (of_machine_is_compatible ("keymile,km_kirkwood" ))km_kirkwood_init (); +if (of_machine_is_compatible ("usi,topkick" )) +usi_topkick_init (); +of_platform_populate (NULL , kirkwood_dt_match_table, kirkwood_auxdata_lookup,NULL ); }@@ -112,6 +115,7 @@ static const char *kirkwood_dt_board_compat[] = {"buffalo,lsxl" ,"iom,ix2-200" ,"keymile,km_kirkwood" , +"usi,topkick" , NULL };arch/arm/mach-kirkwood/board-usi_topkick.c new file +82
-0@@ -0,0 +1,82 @@ +/* +* Copyright 2012 (C), Jason Cooper <[email protected]> +* +* arch/arm/mach-kirkwood/board-usi_topkick.c +* +* USI Topkick 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" +#include "mpp.h" + +static struct mv643xx_eth_platform_data topkick_ge00_data = { + .phy_addr =MV643XX_ETH_PHY_ADDR (0 ), +}; + +static struct mvsdio_platform_data topkick_mvsdio_data = { +/* unfortunately the CD signal has not been connected */ +}; + +/* +* GPIO LED layout +* +* /-SYS_LED(2) +* | +* | /-DISK_LED +* | | +* | | /-WLAN_LED(2) +* | | | +* [SW] [*] [*] [*] +*/ + +/* +* Switch positions +* +* /-SW_LEFT +* | +* | /-SW_IDLE +* | | +* | | /-SW_RIGHT +* | | | +* PS [L] [I] [R] LEDS +*/ + +static unsigned int topkick_mpp_config[]__initdata = { +MPP21_GPIO ,/* DISK_LED (low active) - yellow */ +MPP36_GPIO ,/* SATA0 power enable (high active) */ +MPP37_GPIO ,/* SYS_LED2 (low active) - red */ +MPP38_GPIO ,/* SYS_LED (low active) - blue */ +MPP39_GPIO ,/* WLAN_LED (low active) - green */ +MPP43_GPIO ,/* SW_LEFT (low active) */ +MPP44_GPIO ,/* SW_RIGHT (low active) */ +MPP45_GPIO ,/* SW_IDLE (low active) */ +MPP46_GPIO ,/* SW_LEFT (low active) */ +MPP48_GPIO ,/* WLAN_LED2 (low active) - yellow */ +0 +}; + +#define TOPKICK_SATA0_PWR_ENABLE 36 + +void __init usi_topkick_init (void ) +{ +/* +* Basic setup. Needs to be called early. +*/ +kirkwood_mpp_conf (topkick_mpp_config); + +/* SATA0 power enable */ +gpio_set_value (TOPKICK_SATA0_PWR_ENABLE ,1 ); + +kirkwood_ehci_init (); +kirkwood_ge00_init (&topkick_ge00_data); +kirkwood_sdio_init (&topkick_mvsdio_data); +}arch/arm/mach-kirkwood/common.h +6
-0@@ -112,6 +112,12 @@ void km_kirkwood_init(void);static inline void km_kirkwood_init (void ) {};#endif +#ifdef CONFIG_MACH_TOPKICK_DT +void usi_topkick_init (void ); +#else +static inline void usi_topkick_init (void ) {}; +#endif +/* early init functions not converted to fdt yet */ char *kirkwood_id (void );void kirkwood_l2_init (void );Signature · 1 line
1.7.12.4
Hi Jason
Looks good now.
It would be nice if somebody could add a
Tested-by:
since a few of us have this hardware, thanks to donations from Marvell.
How do you want to handle USB conversion to DT, and hopefully soon pinctrl?
Andrew
PATCH v3 1/1 ARM: Kirkwood: new board USI Topkick
Quoted 5 lines · Andrew Lunn
Quoted 2 lines · Jason Cooper
This is a new kirkwood box made by Universal Scientific Industrial, Inc. The product description is here:
It would be nice if somebody could add a
As I still have no rootfs on neither NAND, nor SATA the Tested-by is up to where kernel wants it's rootfs. But both NAND and SATA get detected correctly.
Sebastian