ARM: kirkwood: Add support for the MPL CEC4

Signed-off-by: Stefan Peter <s.peter@mpl.ch>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
This commit is contained in:
Stefan Peter 2012-11-18 16:46:16 +01:00 коммит произвёл Jason Cooper
Родитель afcad88425
Коммит 5492a1108b
8 изменённых файлов: 219 добавлений и 0 удалений

Просмотреть файл

@ -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 \

Просмотреть файл

@ -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";
};
};
};

Просмотреть файл

@ -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
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
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)
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[] = {
"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

Просмотреть файл

@ -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);
}

Просмотреть файл

@ -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) || \