[PATCH 1/2] ARM: kirkwood: add support for OpenBlocks A7 platform
Jason Cooper
jason at lakedaemon.net
Wed Oct 30 15:57:25 EDT 2013
On Wed, Oct 30, 2013 at 05:55:09PM +0100, Thomas Petazzoni wrote:
> The OpenBlocks A7 board is designed and sold by PlatHome, and based on
> a Kirkwood 6283 Marvell SoC. It is quite similar to the OpenBlocks A6
> already supported in the kernel, with the following main differences:
>
> - The A6 uses a RTC on I2C, while the A7 uses the internal SoC RTC.
>
> - The A6 has one Ethernet port, while the A7 has two Ethernet ports
>
> - The A6 has only one USB port, while the A7 integrates a USB hub,
> which provides two front-side USB port, and an internal USB port as
> well.
>
> - The A6 has 512 MB of RAM, while the A7 has 1 GB of RAM.
>
> - Slightly different GPIOs for some functions.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> ---
> arch/arm/boot/dts/Makefile | 3 +-
> arch/arm/boot/dts/kirkwood-openblocks_a7.dts | 223 +++++++++++++++++++++++++++
> 2 files changed, 225 insertions(+), 1 deletion(-)
> create mode 100644 arch/arm/boot/dts/kirkwood-openblocks_a7.dts
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 802720e..64783bb 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -101,7 +101,8 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-cloudbox.dtb \
> kirkwood-topkick.dtb \
> kirkwood-ts219-6281.dtb \
> kirkwood-ts219-6282.dtb \
> - kirkwood-openblocks_a6.dtb
> + kirkwood-openblocks_a6.dtb \
> + kirkwood-openblocks_a7.dtb
> dtb-$(CONFIG_ARCH_MARCO) += marco-evb.dtb
> dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.dtb \
> msm8960-cdp.dtb
> diff --git a/arch/arm/boot/dts/kirkwood-openblocks_a7.dts b/arch/arm/boot/dts/kirkwood-openblocks_a7.dts
> new file mode 100644
> index 0000000..1864972
> --- /dev/null
> +++ b/arch/arm/boot/dts/kirkwood-openblocks_a7.dts
> @@ -0,0 +1,223 @@
> +/*
> + * Device Tree file for OpenBlocks A7 board
> + *
> + * Copyright (C) 2013 Free Electrons
> + *
> + * Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> + *
> + * 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.
> + */
> +
> +/dts-v1/;
> +
> +#include "kirkwood.dtsi"
> +#include "kirkwood-6282.dtsi"
> +
> +/ {
> + model = "Plat'Home OpenBlocksA7";
> + compatible = "plathome,openblocks-a7", "marvell,kirkwood-88f6283", "marvell,kirkwood";
> +
> + memory {
> + device_type = "memory";
> + reg = <0x00000000 0x40000000>; /* 1 GB */
> + };
> +
> + chosen {
> + bootargs = "console=ttyS0,115200n8 earlyprintk";
> + };
> +
> + ocp at f1000000 {
> + serial at 12000 {
> + status = "ok";
> + pinctrl-0 = <&pmx_uart0>;
> + pinctrl-names = "default";
> + };
> +
> + serial at 12100 {
> + status = "ok";
> + pinctrl-0 = <&pmx_uart1>;
> + pinctrl-names = "default";
> + };
> +
> + nand at 3000000 {
> + chip-delay = <25>;
> + status = "okay";
> + pinctrl-0 = <&pmx_nand>;
> + pinctrl-names = "default";
> +
> + partition at 0 {
> + label = "uboot";
> + reg = <0x0 0x1c0000>;
> + };
> +
> + partition at 90000 {
> + label = "env";
> + reg = <0x1c0000 0x2c0000>;
> + };
Hmm, something doesn't look right here. Cut-n-paste problem? Did you
run 'make dtbs' against this? I get address size errors when I do.
At any rate, I've fixed it up (new version, incorporating my fix and
Andrew's requested change, below) and added it to mvebu/dt, and
for-next.
let me know if it's ok with you and I'll push it tomorrow.
thx,
Jason.
----->8------------------------------------
commit 8b96b90abbf6645e0a5e4ac68515f68d405a069b
Author: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Date: Wed Oct 30 17:55:09 2013 +0100
ARM: kirkwood: add support for OpenBlocks A7 platform
The OpenBlocks A7 board is designed and sold by PlatHome, and based on
a Kirkwood 6283 Marvell SoC. It is quite similar to the OpenBlocks A6
already supported in the kernel, with the following main differences:
- The A6 uses a RTC on I2C, while the A7 uses the internal SoC RTC.
- The A6 has one Ethernet port, while the A7 has two Ethernet ports
- The A6 has only one USB port, while the A7 integrates a USB hub,
which provides two front-side USB port, and an internal USB port as
well.
- The A6 has 512 MB of RAM, while the A7 has 1 GB of RAM.
- Slightly different GPIOs for some functions.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Acked-by: Andrew Lunn <andrew at lunn.ch>
Acked-by: Gregory CLEMENT <gregory.clement at free-electrons.com>
Signed-off-by: Jason Cooper <jason at lakedaemon.net>
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 5b832744a0bb..f2b1c33efbfc 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -95,12 +95,13 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-cloudbox.dtb \
kirkwood-ns2mini.dtb \
kirkwood-nsa310.dtb \
kirkwood-nsa310a.dtb \
+ kirkwood-openblocks_a6.dtb \
+ kirkwood-openblocks_a7.dtb \
kirkwood-sheevaplug.dtb \
kirkwood-sheevaplug-esata.dtb \
kirkwood-topkick.dtb \
kirkwood-ts219-6281.dtb \
- kirkwood-ts219-6282.dtb \
- kirkwood-openblocks_a6.dtb
+ kirkwood-ts219-6282.dtb
dtb-$(CONFIG_ARCH_MARCO) += marco-evb.dtb
dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.dtb \
msm8960-cdp.dtb
diff --git a/arch/arm/boot/dts/kirkwood-openblocks_a7.dts b/arch/arm/boot/dts/kirkwood-openblocks_a7.dts
new file mode 100644
index 000000000000..851fb2a60f20
--- /dev/null
+++ b/arch/arm/boot/dts/kirkwood-openblocks_a7.dts
@@ -0,0 +1,223 @@
+/*
+ * Device Tree file for OpenBlocks A7 board
+ *
+ * Copyright (C) 2013 Free Electrons
+ *
+ * Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
+ *
+ * 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.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6282.dtsi"
+
+/ {
+ model = "Plat'Home OpenBlocksA7";
+ compatible = "plathome,openblocks-a7", "marvell,kirkwood-88f6283", "marvell,kirkwood";
+
+ memory {
+ device_type = "memory";
+ reg = <0x00000000 0x40000000>; /* 1 GB */
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,115200n8 earlyprintk";
+ };
+
+ ocp at f1000000 {
+ serial at 12000 {
+ status = "ok";
+ pinctrl-0 = <&pmx_uart0>;
+ pinctrl-names = "default";
+ };
+
+ serial at 12100 {
+ status = "ok";
+ pinctrl-0 = <&pmx_uart1>;
+ pinctrl-names = "default";
+ };
+
+ sata at 80000 {
+ nr-ports = <1>;
+ status = "okay";
+ };
+
+ i2c at 11100 {
+ status = "okay";
+ pinctrl-0 = <&pmx_twsi1>;
+ pinctrl-names = "default";
+
+ s24c02: s24c02 at 50 {
+ compatible = "24c02";
+ reg = <0x50>;
+ };
+ };
+
+ pinctrl: pinctrl at 10000 {
+ pinctrl-0 = <&pmx_dip_switches &pmx_gpio_header>;
+ pinctrl-names = "default";
+
+ pmx_uart0: pmx-uart0 {
+ marvell,pins = "mpp10", "mpp11", "mpp15",
+ "mpp16";
+ marvell,function = "uart0";
+ };
+
+ pmx_uart1: pmx-uart1 {
+ marvell,pins = "mpp13", "mpp14", "mpp8",
+ "mpp9";
+ marvell,function = "uart1";
+ };
+
+ pmx_sysrst: pmx-sysrst {
+ marvell,pins = "mpp6";
+ marvell,function = "sysrst";
+ };
+
+ pmx_dip_switches: pmx-dip-switches {
+ marvell,pins = "mpp44", "mpp45", "mpp46", "mpp47";
+ marvell,function = "gpio";
+ };
+
+ /*
+ * Accessible on connector J202. The MPP
+ * listed below are pin 1-7, pin 8 is unused,
+ * pin 9 is external reset input and pin 10 is
+ * ground.
+ */
+ pmx_gpio_header: pmx-gpio-header {
+ marvell,pins = "mpp17", "mpp7", "mpp29", "mpp28",
+ "mpp35", "mpp34", "mpp40";
+ marvell,function = "gpio";
+ };
+
+ pmx_gpio_init: pmx-init {
+ marvell,pins = "mpp38";
+ marvell,function = "gpio";
+ };
+
+ pmx_usb_oc: pmx-usb-oc {
+ marvell,pins = "mpp39";
+ marvell,function = "gpio";
+ };
+
+ pmx_leds: pmx-leds {
+ marvell,pins = "mpp41", "mpp42", "mpp43";
+ marvell,function = "gpio";
+ };
+
+ pmx_ge1: pmx-ge1 {
+ marvell,pins = "mpp20", "mpp21", "mpp22", "mpp23",
+ "mpp24", "mpp25", "mpp26", "mpp27",
+ "mpp30", "mpp31", "mpp32", "mpp33";
+ marvell,function = "ge1";
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ pinctrl-0 = <&pmx_leds>;
+ pinctrl-names = "default";
+
+ led-red {
+ label = "obsa7:red:stat";
+ gpios = <&gpio1 9 1>;
+ };
+
+ led-green {
+ label = "obsa7:green:stat";
+ gpios = <&gpio1 10 1>;
+ };
+
+ led-yellow {
+ label = "obsa7:yellow:stat";
+ gpios = <&gpio1 11 1>;
+ };
+ };
+
+ gpio_keys {
+ compatible = "gpio-keys";
+ pinctrl-0 = <&pmx_gpio_init>;
+ pinctrl-names = "default";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ button at 1 {
+ label = "Init Button";
+ linux,code = <116>;
+ gpios = <&gpio1 6 0>;
+ };
+ };
+};
+
+&nand {
+ chip-delay = <25>;
+ status = "okay";
+ pinctrl-0 = <&pmx_nand>;
+ pinctrl-names = "default";
+
+ partition at 0 {
+ label = "uboot";
+ reg = <0x0 0x1c0000>;
+ };
+
+ partition at 1c0000 {
+ label = "env";
+ reg = <0x1c0000 0x2c0000>;
+ };
+
+ partition at 480000 {
+ label = "test";
+ reg = <0x480000 0x160000>;
+ };
+
+ partition at 5e0000 {
+ label = "conf";
+ reg = <0x5e0000 0x540000>;
+ };
+
+ partition at b20000 {
+ label = "linux";
+ reg = <0xb20000 0x3d40000>;
+ };
+
+ partition at 4860000 {
+ label = "user";
+ reg = <0x4860000 0xb7a0000>;
+ };
+};
+
+&mdio {
+ status = "okay";
+
+ ethphy0: ethernet-phy at 0 {
+ device_type = "ethernet-phy";
+ reg = <0>;
+ };
+
+ ethphy1: ethernet-phy at 1 {
+ device_type = "ethernet-phy";
+ reg = <1>;
+ };
+};
+
+ð0 {
+ status = "okay";
+ ethernet0-port at 0 {
+ phy-handle = <ðphy0>;
+ };
+};
+
+ð1 {
+ status = "okay";
+ pinctrl-0 = <&pmx_ge1>;
+ pinctrl-names = "default";
+ ethernet1-port at 0 {
+ phy-handle = <ðphy1>;
+ };
+};
More information about the linux-arm-kernel
mailing list