From 3a75fb910e5af60f53029439955e7c0caed63e3e Mon Sep 17 00:00:00 2001 From: Thorsten Behrens Date: Fri, 13 Nov 2009 01:36:28 +0100 Subject: [PATCH] Proper init for openrd client board * setup MPP pins according to board schematic - otherwise working eth1 is pure luck * init pci-e * init i2c --- arch/arm/mach-kirkwood/openrd_client-setup.c | 65 +++++++++++++++++++++++++- 1 files changed, 63 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-kirkwood/openrd_client-setup.c b/arch/arm/mach-kirkwood/openrd_client-setup.c index a55a1bc..258fcca 100644 --- a/arch/arm/mach-kirkwood/openrd_client-setup.c +++ b/arch/arm/mach-kirkwood/openrd_client-setup.c @@ -55,8 +55,57 @@ static struct mvsdio_platform_data openrd_client_mvsdio_data = { }; static unsigned int openrd_client_mpp_config[] __initdata = { - MPP29_GPIO, - 0 + MPP0_NF_IO2, + MPP1_NF_IO3, + MPP2_NF_IO4, + MPP3_NF_IO5, + MPP4_NF_IO6, + MPP5_NF_IO7, + MPP6_SYSRST_OUTn, + MPP7_GPO, + MPP8_TW_SDA, + MPP9_TW_SCK, + 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, + MPP20_GE1_0, + MPP21_GE1_1, + MPP22_GE1_2, + MPP23_GE1_3, + MPP24_GE1_4, + MPP25_GE1_5, + MPP26_GE1_6, + MPP27_GE1_7, + MPP28_GPIO, /* RS232 */ + MPP29_GPIO, /* SD CD */ + MPP30_GE1_10, + MPP31_GE1_11, + MPP32_GE1_12, + MPP33_GE1_13, + MPP34_GPIO, /* UART1 / SD selector */ + MPP35_TDM_CH0_TX_QL, + MPP36_TDM_SPI_CS1, + MPP37_TDM_CH2_TX_QL, + MPP38_TDM_CH2_RX_QL, + MPP39_AUDIO_I2SBCLK, + MPP40_AUDIO_I2SDO, + MPP41_AUDIO_I2SLRC, + MPP42_AUDIO_I2SMCLK, + MPP43_AUDIO_I2SDI, + MPP44_TDM_CODEC_RSTn, + MPP45_TDM_PCLK, + MPP46_TDM_FS, + MPP47_TDM_DRX, + MPP48_TDM_DTX, + MPP49_TDM_CH0_RX_QL, + 0 }; static void __init openrd_client_init(void) @@ -78,8 +127,20 @@ static void __init openrd_client_init(void) kirkwood_sata_init(&openrd_client_sata_data); kirkwood_sdio_init(&openrd_client_mvsdio_data); + + kirkwood_i2c_init(); } +static int __init openrd_client_pci_init(void) +{ + if (machine_is_openrd_client()) + kirkwood_pcie_init(); + + return 0; + } +subsys_initcall(openrd_client_pci_init); + + MACHINE_START(OPENRD_CLIENT, "Marvell OpenRD Client Board") /* Maintainer: Dhaval Vasa */ .phys_io = KIRKWOOD_REGS_PHYS_BASE, -- 1.5.6