Skip to content

Commit

Permalink
ARM: kirkwood: Add support for the MPL CEC4
Browse files Browse the repository at this point in the history
Signed-off-by: Stefan Peter <s.peter@mpl.ch>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
  • Loading branch information
Stefan Peter authored and Jason Cooper committed Nov 21, 2012
1 parent afcad88 commit 5492a11
Show file tree
Hide file tree
Showing 8 changed files with 219 additions and 0 deletions.
1 change: 1 addition & 0 deletions arch/arm/boot/dts/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \
kirkwood-km_kirkwood.dtb \
kirkwood-lschlv2.dtb \
kirkwood-lsxhl.dtb \
kirkwood-mplcec4.dtb \
kirkwood-ns2.dtb \
kirkwood-ns2lite.dtb \
kirkwood-ns2max.dtb \
Expand Down
119 changes: 119 additions & 0 deletions arch/arm/boot/dts/kirkwood-mplcec4.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
/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";
};

};
};

1 change: 1 addition & 0 deletions arch/arm/configs/kirkwood_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ CONFIG_MACH_NETSPACE_MAX_V2_DT=y
CONFIG_MACH_NETSPACE_LITE_V2_DT=y
CONFIG_MACH_NETSPACE_MINI_V2_DT=y
CONFIG_MACH_TOPKICK_DT=y
CONFIG_MACH_MPLCEC4_DT=y
CONFIG_MACH_TS219=y
CONFIG_MACH_TS41X=y
CONFIG_MACH_DOCKSTAR=y
Expand Down
7 changes: 7 additions & 0 deletions arch/arm/mach-kirkwood/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,13 @@ config MACH_INETSPACE_V2_DT
Say 'Y' here if you want your kernel to support the LaCie
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
bool "LaCie Network Space v2 NAS (Flattened Device Tree)"
select ARCH_KIRKWOOD_DT
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-kirkwood/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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_KM_KIRKWOOD_DT) += board-km_kirkwood.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_MAX_V2_DT) += board-ns2.o
obj-$(CONFIG_MACH_NETSPACE_LITE_V2_DT) += board-ns2.o
Expand Down
4 changes: 4 additions & 0 deletions arch/arm/mach-kirkwood/board-dt.c
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,9 @@ static void __init kirkwood_dt_init(void)
of_machine_is_compatible("lacie,netspace_mini_v2"))
ns2_init();

if (of_machine_is_compatible("mpl,cec4"))
mplcec4_init();

if (of_machine_is_compatible("usi,topkick"))
usi_topkick_init();

Expand Down Expand Up @@ -130,6 +133,7 @@ static const char *kirkwood_dt_board_compat[] = {
"lacie,netspace_v2",
"lacie,netspace_lite_v2",
"lacie,netspace_mini_v2",
"mpl,cec4",
"usi,topkick",
"zyxel,nsa310",
NULL
Expand Down
80 changes: 80 additions & 0 deletions arch/arm/mach-kirkwood/board-mplcec4.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
/*
* 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);
}



6 changes: 6 additions & 0 deletions arch/arm/mach-kirkwood/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,12 @@ void km_kirkwood_init(void);
static inline void km_kirkwood_init(void) {};
#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) || \
defined(CONFIG_MACH_NETSPACE_V2_DT) || \
defined(CONFIG_MACH_NETSPACE_MAX_V2_DT) || \
Expand Down

0 comments on commit 5492a11

Please sign in to comment.