Commit 5492a110 authored by Stefan Peter's avatar Stefan Peter Committed by Jason Cooper

ARM: kirkwood: Add support for the MPL CEC4

Signed-off-by: default avatarStefan Peter <s.peter@mpl.ch>
Signed-off-by: default avatarJason Cooper <jason@lakedaemon.net>
parent afcad884
...@@ -40,6 +40,7 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ ...@@ -40,6 +40,7 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \
kirkwood-km_kirkwood.dtb \ kirkwood-km_kirkwood.dtb \
kirkwood-lschlv2.dtb \ kirkwood-lschlv2.dtb \
kirkwood-lsxhl.dtb \ kirkwood-lsxhl.dtb \
kirkwood-mplcec4.dtb \
kirkwood-ns2.dtb \ kirkwood-ns2.dtb \
kirkwood-ns2lite.dtb \ kirkwood-ns2lite.dtb \
kirkwood-ns2max.dtb \ kirkwood-ns2max.dtb \
......
/dts-v1/;
/include/ "kirkwood.dtsi"
/ {
model = "MPL CEC4";
compatible = "mpl,cec4-10", "mpl,cec4", "marvell,kirkwood-88f6281", "marvell,kirkwood";
memory {
device_type = "memory";
reg = <0x00000000 0x20000000>;
};
chosen {
bootargs = "console=ttyS0,115200n8 earlyprintk";
};
ocp@f1000000 {
i2c@11000 {
status = "okay";
rtc@51 {
compatible = "nxp,pcf8563";
reg = <0x51>;
};
eeprom@57 {
compatible = "atmel,24c02";
reg = <0x57>;
};
};
serial@12000 {
clock-frequency = <200000000>;
status = "ok";
};
nand@3000000 {
status = "okay";
partition@0 {
label = "uboot";
reg = <0x0000000 0x100000>;
};
partition@100000 {
label = "env";
reg = <0x100000 0x80000>;
};
partition@180000 {
label = "fdt";
reg = <0x180000 0x80000>;
};
partition@200000 {
label = "kernel";
reg = <0x200000 0x400000>;
};
partition@600000 {
label = "rootfs";
reg = <0x600000 0x1fa00000>;
};
};
rtc@10300 {
status = "disabled";
};
sata@80000 {
nr-ports = <2>;
status = "okay";
};
};
gpio-leds {
compatible = "gpio-leds";
health {
label = "status:green:health";
gpios = <&gpio0 7 1>;
};
user1o {
label = "user1:orange";
gpios = <&gpio1 8 1>;
default-state = "on";
};
user1g {
label = "user1:green";
gpios = <&gpio1 9 1>;
default-state = "on";
};
user0o {
label = "user0:orange";
gpios = <&gpio1 12 1>;
default-state = "on";
};
user0g {
label = "user0:green";
gpios = <&gpio1 13 1>;
default-state = "on";
};
misc {
label = "status:orange:misc";
gpios = <&gpio1 14 1>;
default-state = "on";
};
};
};
...@@ -33,6 +33,7 @@ CONFIG_MACH_NETSPACE_MAX_V2_DT=y ...@@ -33,6 +33,7 @@ CONFIG_MACH_NETSPACE_MAX_V2_DT=y
CONFIG_MACH_NETSPACE_LITE_V2_DT=y CONFIG_MACH_NETSPACE_LITE_V2_DT=y
CONFIG_MACH_NETSPACE_MINI_V2_DT=y CONFIG_MACH_NETSPACE_MINI_V2_DT=y
CONFIG_MACH_TOPKICK_DT=y CONFIG_MACH_TOPKICK_DT=y
CONFIG_MACH_MPLCEC4_DT=y
CONFIG_MACH_TS219=y CONFIG_MACH_TS219=y
CONFIG_MACH_TS41X=y CONFIG_MACH_TS41X=y
CONFIG_MACH_DOCKSTAR=y CONFIG_MACH_DOCKSTAR=y
......
...@@ -137,6 +137,13 @@ config MACH_INETSPACE_V2_DT ...@@ -137,6 +137,13 @@ config MACH_INETSPACE_V2_DT
Say 'Y' here if you want your kernel to support the LaCie Say 'Y' here if you want your kernel to support the LaCie
Internet Space v2 NAS, using Flattened Device Tree. Internet Space v2 NAS, using Flattened Device Tree.
config MACH_MPLCEC4_DT
bool "MPL CEC4 (Flattened Device Tree)"
select ARCH_KIRKWOOD_DT
help
Say 'Y' here if you want your kernel to support the
MPL CEC4 (Flattened Device Tree).
config MACH_NETSPACE_V2_DT config MACH_NETSPACE_V2_DT
bool "LaCie Network Space v2 NAS (Flattened Device Tree)" bool "LaCie Network Space v2 NAS (Flattened Device Tree)"
select ARCH_KIRKWOOD_DT select ARCH_KIRKWOOD_DT
......
...@@ -32,6 +32,7 @@ obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o ...@@ -32,6 +32,7 @@ obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o
obj-$(CONFIG_MACH_IOMEGA_IX2_200_DT) += board-iomega_ix2_200.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_KM_KIRKWOOD_DT) += board-km_kirkwood.o
obj-$(CONFIG_MACH_INETSPACE_V2_DT) += board-ns2.o obj-$(CONFIG_MACH_INETSPACE_V2_DT) += board-ns2.o
obj-$(CONFIG_MACH_MPLCEC4_DT) += board-mplcec4.o
obj-$(CONFIG_MACH_NETSPACE_V2_DT) += board-ns2.o obj-$(CONFIG_MACH_NETSPACE_V2_DT) += board-ns2.o
obj-$(CONFIG_MACH_NETSPACE_MAX_V2_DT) += board-ns2.o obj-$(CONFIG_MACH_NETSPACE_MAX_V2_DT) += board-ns2.o
obj-$(CONFIG_MACH_NETSPACE_LITE_V2_DT) += board-ns2.o obj-$(CONFIG_MACH_NETSPACE_LITE_V2_DT) += board-ns2.o
......
...@@ -103,6 +103,9 @@ static void __init kirkwood_dt_init(void) ...@@ -103,6 +103,9 @@ static void __init kirkwood_dt_init(void)
of_machine_is_compatible("lacie,netspace_mini_v2")) of_machine_is_compatible("lacie,netspace_mini_v2"))
ns2_init(); ns2_init();
if (of_machine_is_compatible("mpl,cec4"))
mplcec4_init();
if (of_machine_is_compatible("usi,topkick")) if (of_machine_is_compatible("usi,topkick"))
usi_topkick_init(); usi_topkick_init();
...@@ -130,6 +133,7 @@ static const char *kirkwood_dt_board_compat[] = { ...@@ -130,6 +133,7 @@ static const char *kirkwood_dt_board_compat[] = {
"lacie,netspace_v2", "lacie,netspace_v2",
"lacie,netspace_lite_v2", "lacie,netspace_lite_v2",
"lacie,netspace_mini_v2", "lacie,netspace_mini_v2",
"mpl,cec4",
"usi,topkick", "usi,topkick",
"zyxel,nsa310", "zyxel,nsa310",
NULL NULL
......
/*
* Copyright (C) 2012 MPL AG, Switzerland
* Stefan Peter <s.peter@mpl.ch>
*
* arch/arm/mach-kirkwood/board-mplcec4.c
*
* 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/platform_data/mmc-mvsdio.h>
#include "common.h"
#include "mpp.h"
static struct mv643xx_eth_platform_data mplcec4_ge00_data = {
.phy_addr = MV643XX_ETH_PHY_ADDR(1),
};
static struct mv643xx_eth_platform_data mplcec4_ge01_data = {
.phy_addr = MV643XX_ETH_PHY_ADDR(2),
};
static unsigned int mplcec4_mpp_config[] __initdata = {
MPP0_NF_IO2,
MPP1_NF_IO3,
MPP2_NF_IO4,
MPP3_NF_IO5,
MPP4_NF_IO6,
MPP5_NF_IO7,
MPP6_SYSRST_OUTn,
MPP7_GPO, /* Status LED Green High Active */
MPP10_UART0_TXD,
MPP11_UART0_RXD,
MPP12_SD_CLK,
MPP13_SD_CMD, /* Alt UART1_TXD */
MPP14_SD_D0, /* Alt UART1_RXD */
MPP15_SD_D1,
MPP16_SD_D2,
MPP17_SD_D3,
MPP18_NF_IO0,
MPP19_NF_IO1,
MPP28_GPIO, /* Input SYS_POR_DET (active High) */
MPP29_GPIO, /* Input SYS_RTC_INT (active High) */
MPP34_SATA1_ACTn,
MPP35_SATA0_ACTn,
MPP40_GPIO, /* LED User1 orange */
MPP41_GPIO, /* LED User1 green */
MPP44_GPIO, /* LED User0 orange */
MPP45_GPIO, /* LED User0 green */
MPP46_GPIO, /* Status LED Yellow High Active */
MPP47_GPIO, /* SD_CD# (in/IRQ)*/
0
};
static struct mvsdio_platform_data mplcec4_mvsdio_data = {
.gpio_card_detect = 47, /* MPP47 used as SD card detect */
};
void __init mplcec4_init(void)
{
/*
* Basic setup. Needs to be called early.
*/
kirkwood_mpp_conf(mplcec4_mpp_config);
kirkwood_ehci_init();
kirkwood_ge00_init(&mplcec4_ge00_data);
kirkwood_ge01_init(&mplcec4_ge01_data);
kirkwood_sdio_init(&mplcec4_mvsdio_data);
kirkwood_pcie_init(KW_PCIE0);
}
...@@ -112,6 +112,12 @@ void km_kirkwood_init(void); ...@@ -112,6 +112,12 @@ void km_kirkwood_init(void);
static inline void km_kirkwood_init(void) {}; static inline void km_kirkwood_init(void) {};
#endif #endif
#ifdef CONFIG_MACH_MPLCEC4_DT
void mplcec4_init(void);
#else
static inline void mplcec4_init(void) {};
#endif
#if defined(CONFIG_MACH_INETSPACE_V2_DT) || \ #if defined(CONFIG_MACH_INETSPACE_V2_DT) || \
defined(CONFIG_MACH_NETSPACE_V2_DT) || \ defined(CONFIG_MACH_NETSPACE_V2_DT) || \
defined(CONFIG_MACH_NETSPACE_MAX_V2_DT) || \ defined(CONFIG_MACH_NETSPACE_MAX_V2_DT) || \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment