mirror of
https://github.com/armbian/linux.git
synced 2026-01-06 10:13:00 -08:00
Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm: (22 commits) ARM: 5865/1: nuc900 ethernet driver needs mii ARM: 5864/1: Implement arch_reset() in NUC900 ARM: 5863/1: fix bugs of clock source of NUC900 ARM: 5858/1: Remove unused vma_vm_flags macro from v7wbi_flush_user_tlb_range imx/mx3: depend on USB_ULPI for otg_ulpi_create ARM: MX3: make CPU revision number detection work on all boards mx25: pdk: add platform code for FEC support mx25: add support for FEC on i.MX25 mx25: s/NO_PAD_CTL/NO_PAD_CTRL/ mx31moboard: fix usbh device names mx3: add support for the mt9v022 camera sensor to pcm037 platform mx27: mxt_td60: Remove not used UART pins [ARM] pxa/poodle: fix incorrect 'gpio_card_detect' of MMC [ARM] pxa/zylonite: simplify reduntant gpio settings on mmc slot [ARM] pxa/ttc_dkb: remove duplicate macro definition [ARM] pxa/zeus: provide power-source information when APM is enabled [ARM] pxa/zeus: relax memory timings on Zeus ethernet ports [ARM] pxa/zeus: make internal zeus_get_pcb_info static [ARM] pxa/littleton: select CPU_PXA300 and CPU_PXA310 [ARM] pxa/littleton: add UART3 GPIO config ...
This commit is contained in:
@@ -24,8 +24,6 @@
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x)
|
||||
|
||||
static unsigned long ttc_dkb_pin_config[] __initdata = {
|
||||
/* UART2 */
|
||||
GPIO47_UART2_RXD,
|
||||
|
||||
@@ -58,21 +58,6 @@ static unsigned int mxt_td60_pins[] __initdata = {
|
||||
PE9_PF_UART3_RXD,
|
||||
PE10_PF_UART3_CTS,
|
||||
PE11_PF_UART3_RTS,
|
||||
/* UART3 */
|
||||
PB26_AF_UART4_RTS,
|
||||
PB28_AF_UART4_TXD,
|
||||
PB29_AF_UART4_CTS,
|
||||
PB31_AF_UART4_RXD,
|
||||
/* UART4 */
|
||||
PB18_AF_UART5_TXD,
|
||||
PB19_AF_UART5_RXD,
|
||||
PB20_AF_UART5_CTS,
|
||||
PB21_AF_UART5_RTS,
|
||||
/* UART5 */
|
||||
PB10_AF_UART6_TXD,
|
||||
PB12_AF_UART6_CTS,
|
||||
PB11_AF_UART6_RXD,
|
||||
PB13_AF_UART6_RTS,
|
||||
/* FEC */
|
||||
PD0_AIN_FEC_TXD0,
|
||||
PD1_AIN_FEC_TXD1,
|
||||
@@ -261,12 +246,6 @@ static struct imxuart_platform_data uart_pdata[] = {
|
||||
.flags = IMXUART_HAVE_RTSCTS,
|
||||
}, {
|
||||
.flags = IMXUART_HAVE_RTSCTS,
|
||||
}, {
|
||||
.flags = IMXUART_HAVE_RTSCTS,
|
||||
}, {
|
||||
.flags = IMXUART_HAVE_RTSCTS,
|
||||
}, {
|
||||
.flags = IMXUART_HAVE_RTSCTS,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -278,9 +257,6 @@ static void __init mxt_td60_board_init(void)
|
||||
mxc_register_device(&mxc_uart_device0, &uart_pdata[0]);
|
||||
mxc_register_device(&mxc_uart_device1, &uart_pdata[1]);
|
||||
mxc_register_device(&mxc_uart_device2, &uart_pdata[2]);
|
||||
mxc_register_device(&mxc_uart_device3, &uart_pdata[3]);
|
||||
mxc_register_device(&mxc_uart_device4, &uart_pdata[4]);
|
||||
mxc_register_device(&mxc_uart_device5, &uart_pdata[5]);
|
||||
mxc_register_device(&mxc_nand_device, &mxt_td60_nand_board_info);
|
||||
|
||||
i2c_register_board_info(0, mxt_td60_i2c_devices,
|
||||
|
||||
@@ -173,6 +173,7 @@ DEFINE_CLOCK(pwm4_clk, 0, CCM_CGCR2, 2, get_rate_ipg, NULL);
|
||||
DEFINE_CLOCK(kpp_clk, 0, CCM_CGCR1, 28, get_rate_ipg, NULL);
|
||||
DEFINE_CLOCK(tsc_clk, 0, CCM_CGCR2, 13, get_rate_ipg, NULL);
|
||||
DEFINE_CLOCK(i2c_clk, 0, CCM_CGCR0, 6, get_rate_i2c, NULL);
|
||||
DEFINE_CLOCK(fec_clk, 0, CCM_CGCR0, 23, get_rate_ipg, NULL);
|
||||
|
||||
#define _REGISTER_CLOCK(d, n, c) \
|
||||
{ \
|
||||
@@ -204,6 +205,7 @@ static struct clk_lookup lookups[] = {
|
||||
_REGISTER_CLOCK("imx-i2c.0", NULL, i2c_clk)
|
||||
_REGISTER_CLOCK("imx-i2c.1", NULL, i2c_clk)
|
||||
_REGISTER_CLOCK("imx-i2c.2", NULL, i2c_clk)
|
||||
_REGISTER_CLOCK("fec.0", NULL, fec_clk)
|
||||
};
|
||||
|
||||
int __init mx25_clocks_init(unsigned long fref)
|
||||
|
||||
@@ -419,3 +419,22 @@ int __init mxc_register_gpios(void)
|
||||
return mxc_gpio_init(imx_gpio_ports, ARRAY_SIZE(imx_gpio_ports));
|
||||
}
|
||||
|
||||
static struct resource mx25_fec_resources[] = {
|
||||
{
|
||||
.start = MX25_FEC_BASE_ADDR,
|
||||
.end = MX25_FEC_BASE_ADDR + 0xfff,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
{
|
||||
.start = MX25_INT_FEC,
|
||||
.end = MX25_INT_FEC,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
struct platform_device mx25_fec_device = {
|
||||
.name = "fec",
|
||||
.id = 0,
|
||||
.num_resources = ARRAY_SIZE(mx25_fec_resources),
|
||||
.resource = mx25_fec_resources,
|
||||
};
|
||||
|
||||
@@ -17,3 +17,4 @@ extern struct platform_device mxc_keypad_device;
|
||||
extern struct platform_device mxc_i2c_device0;
|
||||
extern struct platform_device mxc_i2c_device1;
|
||||
extern struct platform_device mxc_i2c_device2;
|
||||
extern struct platform_device mx25_fec_device;
|
||||
|
||||
@@ -18,10 +18,11 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/smsc911x.h>
|
||||
#include <linux/fec.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
@@ -35,16 +36,57 @@
|
||||
#include <mach/mx25.h>
|
||||
#include <mach/mxc_nand.h>
|
||||
#include "devices.h"
|
||||
#include <mach/iomux-v3.h>
|
||||
#include <mach/iomux.h>
|
||||
|
||||
static struct imxuart_platform_data uart_pdata = {
|
||||
.flags = IMXUART_HAVE_RTSCTS,
|
||||
};
|
||||
|
||||
static struct pad_desc mx25pdk_pads[] = {
|
||||
MX25_PAD_FEC_MDC__FEC_MDC,
|
||||
MX25_PAD_FEC_MDIO__FEC_MDIO,
|
||||
MX25_PAD_FEC_TDATA0__FEC_TDATA0,
|
||||
MX25_PAD_FEC_TDATA1__FEC_TDATA1,
|
||||
MX25_PAD_FEC_TX_EN__FEC_TX_EN,
|
||||
MX25_PAD_FEC_RDATA0__FEC_RDATA0,
|
||||
MX25_PAD_FEC_RDATA1__FEC_RDATA1,
|
||||
MX25_PAD_FEC_RX_DV__FEC_RX_DV,
|
||||
MX25_PAD_FEC_TX_CLK__FEC_TX_CLK,
|
||||
MX25_PAD_A17__GPIO_2_3, /* FEC_EN, GPIO 35 */
|
||||
MX25_PAD_D12__GPIO_4_8, /* FEC_RESET_B, GPIO 104 */
|
||||
};
|
||||
|
||||
static struct fec_platform_data mx25_fec_pdata = {
|
||||
.phy = PHY_INTERFACE_MODE_RMII,
|
||||
};
|
||||
|
||||
#define FEC_ENABLE_GPIO 35
|
||||
#define FEC_RESET_B_GPIO 104
|
||||
|
||||
static void __init mx25pdk_fec_reset(void)
|
||||
{
|
||||
gpio_request(FEC_ENABLE_GPIO, "FEC PHY enable");
|
||||
gpio_request(FEC_RESET_B_GPIO, "FEC PHY reset");
|
||||
|
||||
gpio_direction_output(FEC_ENABLE_GPIO, 0); /* drop PHY power */
|
||||
gpio_direction_output(FEC_RESET_B_GPIO, 0); /* assert reset */
|
||||
udelay(2);
|
||||
|
||||
/* turn on PHY power and lift reset */
|
||||
gpio_set_value(FEC_ENABLE_GPIO, 1);
|
||||
gpio_set_value(FEC_RESET_B_GPIO, 1);
|
||||
}
|
||||
|
||||
static void __init mx25pdk_init(void)
|
||||
{
|
||||
mxc_iomux_v3_setup_multiple_pads(mx25pdk_pads,
|
||||
ARRAY_SIZE(mx25pdk_pads));
|
||||
|
||||
mxc_register_device(&mxc_uart_device0, &uart_pdata);
|
||||
mxc_register_device(&mxc_usbh2, NULL);
|
||||
|
||||
mx25pdk_fec_reset();
|
||||
mxc_register_device(&mx25_fec_device, &mx25_fec_pdata);
|
||||
}
|
||||
|
||||
static void __init mx25pdk_timer_init(void)
|
||||
|
||||
@@ -49,6 +49,7 @@ config MACH_PCM037_EET
|
||||
config MACH_MX31LITE
|
||||
bool "Support MX31 LITEKIT (LogicPD)"
|
||||
select ARCH_MX31
|
||||
select MXC_ULPI if USB_ULPI
|
||||
help
|
||||
Include support for MX31 LITEKIT platform. This includes specific
|
||||
configurations for the board and its peripherals.
|
||||
@@ -63,7 +64,7 @@ config MACH_MX31_3DS
|
||||
config MACH_MX31MOBOARD
|
||||
bool "Support mx31moboard platforms (EPFL Mobots group)"
|
||||
select ARCH_MX31
|
||||
select MXC_ULPI
|
||||
select MXC_ULPI if USB_ULPI
|
||||
help
|
||||
Include support for mx31moboard platform. This includes specific
|
||||
configurations for the board and its peripherals.
|
||||
|
||||
@@ -65,6 +65,11 @@ static struct map_desc mxc_io_desc[] __initdata = {
|
||||
.pfn = __phys_to_pfn(AIPS2_BASE_ADDR),
|
||||
.length = AIPS2_SIZE,
|
||||
.type = MT_DEVICE_NONSHARED
|
||||
}, {
|
||||
.virtual = SPBA0_BASE_ADDR_VIRT,
|
||||
.pfn = __phys_to_pfn(SPBA0_BASE_ADDR),
|
||||
.length = SPBA0_SIZE,
|
||||
.type = MT_DEVICE_NONSHARED
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -494,11 +494,6 @@ static void mxc_init_i2c(void)
|
||||
*/
|
||||
static struct map_desc mx31ads_io_desc[] __initdata = {
|
||||
{
|
||||
.virtual = SPBA0_BASE_ADDR_VIRT,
|
||||
.pfn = __phys_to_pfn(SPBA0_BASE_ADDR),
|
||||
.length = SPBA0_SIZE,
|
||||
.type = MT_DEVICE_NONSHARED
|
||||
}, {
|
||||
.virtual = CS4_BASE_ADDR_VIRT,
|
||||
.pfn = __phys_to_pfn(CS4_BASE_ADDR),
|
||||
.length = CS4_SIZE / 2,
|
||||
|
||||
@@ -135,6 +135,7 @@ static struct spi_board_info mc13783_spi_dev __initdata = {
|
||||
* USB
|
||||
*/
|
||||
|
||||
#if defined(CONFIG_USB_ULPI)
|
||||
#define USB_PAD_CFG (PAD_CTL_DRV_MAX | PAD_CTL_SRE_FAST | PAD_CTL_HYS_CMOS | \
|
||||
PAD_CTL_ODE_CMOS | PAD_CTL_100K_PU)
|
||||
|
||||
@@ -180,6 +181,7 @@ static struct mxc_usbh_platform_data usbh2_pdata = {
|
||||
.portsc = MXC_EHCI_MODE_ULPI | MXC_EHCI_UTMI_8BIT,
|
||||
.flags = MXC_EHCI_POWER_PINS_ENABLED,
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
||||
* NOR flash
|
||||
@@ -212,11 +214,6 @@ static struct platform_device physmap_flash_device = {
|
||||
*/
|
||||
static struct map_desc mx31lite_io_desc[] __initdata = {
|
||||
{
|
||||
.virtual = SPBA0_BASE_ADDR_VIRT,
|
||||
.pfn = __phys_to_pfn(SPBA0_BASE_ADDR),
|
||||
.length = SPBA0_SIZE,
|
||||
.type = MT_DEVICE_NONSHARED
|
||||
}, {
|
||||
.virtual = CS4_BASE_ADDR_VIRT,
|
||||
.pfn = __phys_to_pfn(CS4_BASE_ADDR),
|
||||
.length = CS4_SIZE,
|
||||
@@ -261,11 +258,13 @@ static void __init mxc_board_init(void)
|
||||
mxc_register_device(&mxc_spi_device1, &spi1_pdata);
|
||||
spi_register_board_info(&mc13783_spi_dev, 1);
|
||||
|
||||
#if defined(CONFIG_USB_ULPI)
|
||||
/* USB */
|
||||
usbh2_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops,
|
||||
USB_OTG_DRV_VBUS | USB_OTG_DRV_VBUS_EXT);
|
||||
|
||||
mxc_register_device(&mxc_usbh2, &usbh2_pdata);
|
||||
#endif
|
||||
|
||||
/* SMSC9117 IRQ pin */
|
||||
ret = gpio_request(IOMUX_TO_GPIO(MX31_PIN_SFS6), "sms9117-irq");
|
||||
|
||||
@@ -179,7 +179,7 @@ static int __init devboard_usbh1_init(void)
|
||||
|
||||
usbh1_pdata.otg = otg;
|
||||
|
||||
return mxc_register_device(&mx31_usbh1, &usbh1_pdata);
|
||||
return mxc_register_device(&mxc_usbh1, &usbh1_pdata);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -294,7 +294,7 @@ static int __init marxbot_usbh1_init(void)
|
||||
|
||||
usbh1_pdata.otg = otg;
|
||||
|
||||
return mxc_register_device(&mx31_usbh1, &usbh1_pdata);
|
||||
return mxc_register_device(&mxc_usbh1, &usbh1_pdata);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -346,6 +346,8 @@ static struct fsl_usb2_platform_data usb_pdata = {
|
||||
.phy_mode = FSL_USB2_PHY_ULPI,
|
||||
};
|
||||
|
||||
#if defined(CONFIG_USB_ULPI)
|
||||
|
||||
#define USBH2_EN_B IOMUX_TO_GPIO(MX31_PIN_SCK6)
|
||||
|
||||
static int moboard_usbh2_hw_init(struct platform_device *pdev)
|
||||
@@ -392,8 +394,11 @@ static int __init moboard_usbh2_init(void)
|
||||
usbh2_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops,
|
||||
USB_OTG_DRV_VBUS | USB_OTG_DRV_VBUS_EXT);
|
||||
|
||||
return mxc_register_device(&mx31_usbh2, &usbh2_pdata);
|
||||
return mxc_register_device(&mxc_usbh2, &usbh2_pdata);
|
||||
}
|
||||
#else
|
||||
static inline int moboard_usbh2_init(void) { return 0; }
|
||||
#endif
|
||||
|
||||
|
||||
static struct gpio_led mx31moboard_leds[] = {
|
||||
|
||||
@@ -211,11 +211,6 @@ static int __init mx31pdk_init_expio(void)
|
||||
*/
|
||||
static struct map_desc mx31pdk_io_desc[] __initdata = {
|
||||
{
|
||||
.virtual = SPBA0_BASE_ADDR_VIRT,
|
||||
.pfn = __phys_to_pfn(SPBA0_BASE_ADDR),
|
||||
.length = SPBA0_SIZE,
|
||||
.type = MT_DEVICE_NONSHARED,
|
||||
}, {
|
||||
.virtual = CS5_BASE_ADDR_VIRT,
|
||||
.pfn = __phys_to_pfn(CS5_BASE_ADDR),
|
||||
.length = CS5_SIZE,
|
||||
|
||||
@@ -322,16 +322,25 @@ static int pcm037_camera_power(struct device *dev, int on)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct i2c_board_info pcm037_i2c_2_devices[] = {
|
||||
static struct i2c_board_info pcm037_i2c_camera[] = {
|
||||
{
|
||||
I2C_BOARD_INFO("mt9t031", 0x5d),
|
||||
}, {
|
||||
I2C_BOARD_INFO("mt9v022", 0x48),
|
||||
},
|
||||
};
|
||||
|
||||
static struct soc_camera_link iclink = {
|
||||
static struct soc_camera_link iclink_mt9v022 = {
|
||||
.bus_id = 0, /* Must match with the camera ID */
|
||||
.board_info = &pcm037_i2c_camera[1],
|
||||
.i2c_adapter_id = 2,
|
||||
.module_name = "mt9v022",
|
||||
};
|
||||
|
||||
static struct soc_camera_link iclink_mt9t031 = {
|
||||
.bus_id = 0, /* Must match with the camera ID */
|
||||
.power = pcm037_camera_power,
|
||||
.board_info = &pcm037_i2c_2_devices[0],
|
||||
.board_info = &pcm037_i2c_camera[0],
|
||||
.i2c_adapter_id = 2,
|
||||
.module_name = "mt9t031",
|
||||
};
|
||||
@@ -345,11 +354,19 @@ static struct i2c_board_info pcm037_i2c_devices[] = {
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device pcm037_camera = {
|
||||
static struct platform_device pcm037_mt9t031 = {
|
||||
.name = "soc-camera-pdrv",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = &iclink,
|
||||
.platform_data = &iclink_mt9t031,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device pcm037_mt9v022 = {
|
||||
.name = "soc-camera-pdrv",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &iclink_mt9v022,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -449,7 +466,8 @@ static int __init pcm037_camera_alloc_dma(const size_t buf_size)
|
||||
static struct platform_device *devices[] __initdata = {
|
||||
&pcm037_flash,
|
||||
&pcm037_sram_device,
|
||||
&pcm037_camera,
|
||||
&pcm037_mt9t031,
|
||||
&pcm037_mt9v022,
|
||||
};
|
||||
|
||||
static struct ipu_platform_data mx3_ipu_data = {
|
||||
@@ -599,7 +617,7 @@ static void __init mxc_board_init(void)
|
||||
if (!ret)
|
||||
gpio_direction_output(IOMUX_TO_GPIO(MX31_PIN_CSI_D5), 1);
|
||||
else
|
||||
iclink.power = NULL;
|
||||
iclink_mt9t031.power = NULL;
|
||||
|
||||
if (!pcm037_camera_alloc_dma(4 * 1024 * 1024))
|
||||
mxc_register_device(&mx3_camera, &camera_pdata);
|
||||
|
||||
@@ -37,6 +37,8 @@ config MACH_ZYLONITE320
|
||||
config MACH_LITTLETON
|
||||
bool "PXA3xx Form Factor Platform (aka Littleton)"
|
||||
select PXA3xx
|
||||
select CPU_PXA300
|
||||
select CPU_PXA310
|
||||
select PXA_SSP
|
||||
|
||||
config MACH_TAVOREVB
|
||||
|
||||
@@ -8,13 +8,6 @@
|
||||
/* the following variables are processor specific and initialized
|
||||
* by the corresponding zylonite_pxa3xx_init()
|
||||
*/
|
||||
struct platform_mmc_slot {
|
||||
int gpio_cd;
|
||||
int gpio_wp;
|
||||
};
|
||||
|
||||
extern struct platform_mmc_slot zylonite_mmc_slot[];
|
||||
|
||||
extern int gpio_eth_irq;
|
||||
extern int gpio_debug_led1;
|
||||
extern int gpio_debug_led2;
|
||||
|
||||
@@ -110,6 +110,12 @@ static mfp_cfg_t littleton_mfp_cfg[] __initdata = {
|
||||
GPIO7_MMC1_CLK,
|
||||
GPIO8_MMC1_CMD,
|
||||
GPIO15_GPIO, /* card detect */
|
||||
|
||||
/* UART3 */
|
||||
GPIO107_UART3_CTS,
|
||||
GPIO108_UART3_RTS,
|
||||
GPIO109_UART3_TXD,
|
||||
GPIO110_UART3_RXD,
|
||||
};
|
||||
|
||||
static struct resource smc91x_resources[] = {
|
||||
|
||||
@@ -293,7 +293,7 @@ static struct pxamci_platform_data poodle_mci_platform_data = {
|
||||
.init = poodle_mci_init,
|
||||
.setpower = poodle_mci_setpower,
|
||||
.exit = poodle_mci_exit,
|
||||
.gpio_card_detect = POODLE_IRQ_GPIO_nSD_DETECT,
|
||||
.gpio_card_detect = POODLE_GPIO_nSD_DETECT,
|
||||
.gpio_card_ro = POODLE_GPIO_nSD_WP,
|
||||
.gpio_power = -1,
|
||||
};
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c/pca953x.h>
|
||||
#include <linux/apm-emulation.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
@@ -626,8 +627,27 @@ static void zeus_power_off(void)
|
||||
pxa27x_cpu_suspend(PWRMODE_DEEPSLEEP);
|
||||
}
|
||||
|
||||
int zeus_get_pcb_info(struct i2c_client *client, unsigned gpio,
|
||||
unsigned ngpio, void *context)
|
||||
#ifdef CONFIG_APM_EMULATION
|
||||
static void zeus_get_power_status(struct apm_power_info *info)
|
||||
{
|
||||
/* Power supply is always present */
|
||||
info->ac_line_status = APM_AC_ONLINE;
|
||||
info->battery_status = APM_BATTERY_STATUS_NOT_PRESENT;
|
||||
info->battery_flag = APM_BATTERY_FLAG_NOT_PRESENT;
|
||||
}
|
||||
|
||||
static inline void zeus_setup_apm(void)
|
||||
{
|
||||
apm_get_power_status = zeus_get_power_status;
|
||||
}
|
||||
#else
|
||||
static inline void zeus_setup_apm(void)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
static int zeus_get_pcb_info(struct i2c_client *client, unsigned gpio,
|
||||
unsigned ngpio, void *context)
|
||||
{
|
||||
int i;
|
||||
u8 pcb_info = 0;
|
||||
@@ -726,9 +746,18 @@ static mfp_cfg_t zeus_pin_config[] __initdata = {
|
||||
GPIO99_GPIO, /* CF RDY */
|
||||
};
|
||||
|
||||
/*
|
||||
* DM9k MSCx settings: SRAM, 16 bits
|
||||
* 17 cycles delay first access
|
||||
* 5 cycles delay next access
|
||||
* 13 cycles recovery time
|
||||
* faster device
|
||||
*/
|
||||
#define DM9K_MSC_VALUE 0xe4c9
|
||||
|
||||
static void __init zeus_init(void)
|
||||
{
|
||||
u16 dm9000_msc = 0xe279;
|
||||
u16 dm9000_msc = DM9K_MSC_VALUE;
|
||||
|
||||
system_rev = __raw_readw(ZEUS_CPLD_VERSION);
|
||||
pr_info("Zeus CPLD V%dI%d\n", (system_rev & 0xf0) >> 4, (system_rev & 0x0f));
|
||||
@@ -738,6 +767,7 @@ static void __init zeus_init(void)
|
||||
MSC1 = (MSC1 & 0xffff0000) | dm9000_msc;
|
||||
|
||||
pm_power_off = zeus_power_off;
|
||||
zeus_setup_apm();
|
||||
|
||||
pxa2xx_mfp_config(ARRAY_AND_SIZE(zeus_pin_config));
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user