|
@@ -385,3 +385,158 @@ static inline void vpac270_udc_init(void) {}
|
|
#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
|
|
#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
|
|
static struct resource vpac270_dm9000_resources[] = {
|
|
static struct resource vpac270_dm9000_resources[] = {
|
|
[0] = {
|
|
[0] = {
|
|
|
|
+ .start = PXA_CS2_PHYS + 0x300,
|
|
|
|
+ .end = PXA_CS2_PHYS + 0x303,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
|
+ },
|
|
|
|
+ [1] = {
|
|
|
|
+ .start = PXA_CS2_PHYS + 0x304,
|
|
|
|
+ .end = PXA_CS2_PHYS + 0x343,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
|
+ },
|
|
|
|
+ [2] = {
|
|
|
|
+ .start = PXA_GPIO_TO_IRQ(GPIO114_VPAC270_ETH_IRQ),
|
|
|
|
+ .end = PXA_GPIO_TO_IRQ(GPIO114_VPAC270_ETH_IRQ),
|
|
|
|
+ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct dm9000_plat_data vpac270_dm9000_platdata = {
|
|
|
|
+ .flags = DM9000_PLATF_32BITONLY,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct platform_device vpac270_dm9000_device = {
|
|
|
|
+ .name = "dm9000",
|
|
|
|
+ .id = -1,
|
|
|
|
+ .num_resources = ARRAY_SIZE(vpac270_dm9000_resources),
|
|
|
|
+ .resource = vpac270_dm9000_resources,
|
|
|
|
+ .dev = {
|
|
|
|
+ .platform_data = &vpac270_dm9000_platdata,
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static void __init vpac270_eth_init(void)
|
|
|
|
+{
|
|
|
|
+ platform_device_register(&vpac270_dm9000_device);
|
|
|
|
+}
|
|
|
|
+#else
|
|
|
|
+static inline void vpac270_eth_init(void) {}
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+/******************************************************************************
|
|
|
|
+ * Audio and Touchscreen
|
|
|
|
+ ******************************************************************************/
|
|
|
|
+#if defined(CONFIG_TOUCHSCREEN_UCB1400) || \
|
|
|
|
+ defined(CONFIG_TOUCHSCREEN_UCB1400_MODULE)
|
|
|
|
+static pxa2xx_audio_ops_t vpac270_ac97_pdata = {
|
|
|
|
+ .reset_gpio = 95,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct ucb1400_pdata vpac270_ucb1400_pdata = {
|
|
|
|
+ .irq = PXA_GPIO_TO_IRQ(GPIO113_VPAC270_TS_IRQ),
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct platform_device vpac270_ucb1400_device = {
|
|
|
|
+ .name = "ucb1400_core",
|
|
|
|
+ .id = -1,
|
|
|
|
+ .dev = {
|
|
|
|
+ .platform_data = &vpac270_ucb1400_pdata,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static void __init vpac270_ts_init(void)
|
|
|
|
+{
|
|
|
|
+ pxa_set_ac97_info(&vpac270_ac97_pdata);
|
|
|
|
+ platform_device_register(&vpac270_ucb1400_device);
|
|
|
|
+}
|
|
|
|
+#else
|
|
|
|
+static inline void vpac270_ts_init(void) {}
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+/******************************************************************************
|
|
|
|
+ * RTC
|
|
|
|
+ ******************************************************************************/
|
|
|
|
+#if defined(CONFIG_RTC_DRV_DS1307) || defined(CONFIG_RTC_DRV_DS1307_MODULE)
|
|
|
|
+static struct i2c_board_info __initdata vpac270_i2c_devs[] = {
|
|
|
|
+ {
|
|
|
|
+ I2C_BOARD_INFO("ds1339", 0x68),
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static void __init vpac270_rtc_init(void)
|
|
|
|
+{
|
|
|
|
+ i2c_register_board_info(0, ARRAY_AND_SIZE(vpac270_i2c_devs));
|
|
|
|
+}
|
|
|
|
+#else
|
|
|
|
+static inline void vpac270_rtc_init(void) {}
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+/******************************************************************************
|
|
|
|
+ * Framebuffer
|
|
|
|
+ ******************************************************************************/
|
|
|
|
+#if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE)
|
|
|
|
+static struct pxafb_mode_info vpac270_lcd_modes[] = {
|
|
|
|
+{
|
|
|
|
+ .pixclock = 57692,
|
|
|
|
+ .xres = 640,
|
|
|
|
+ .yres = 480,
|
|
|
|
+ .bpp = 32,
|
|
|
|
+ .depth = 18,
|
|
|
|
+
|
|
|
|
+ .left_margin = 144,
|
|
|
|
+ .right_margin = 32,
|
|
|
|
+ .upper_margin = 13,
|
|
|
|
+ .lower_margin = 30,
|
|
|
|
+
|
|
|
|
+ .hsync_len = 32,
|
|
|
|
+ .vsync_len = 2,
|
|
|
|
+
|
|
|
|
+ .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
|
|
|
|
+}, { /* CRT 640x480 */
|
|
|
|
+ .pixclock = 35000,
|
|
|
|
+ .xres = 640,
|
|
|
|
+ .yres = 480,
|
|
|
|
+ .bpp = 16,
|
|
|
|
+ .depth = 16,
|
|
|
|
+
|
|
|
|
+ .left_margin = 96,
|
|
|
|
+ .right_margin = 48,
|
|
|
|
+ .upper_margin = 33,
|
|
|
|
+ .lower_margin = 10,
|
|
|
|
+
|
|
|
|
+ .hsync_len = 48,
|
|
|
|
+ .vsync_len = 1,
|
|
|
|
+
|
|
|
|
+ .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
|
|
|
|
+}, { /* CRT 800x600 H=30kHz V=48HZ */
|
|
|
|
+ .pixclock = 25000,
|
|
|
|
+ .xres = 800,
|
|
|
|
+ .yres = 600,
|
|
|
|
+ .bpp = 16,
|
|
|
|
+ .depth = 16,
|
|
|
|
+
|
|
|
|
+ .left_margin = 50,
|
|
|
|
+ .right_margin = 1,
|
|
|
|
+ .upper_margin = 21,
|
|
|
|
+ .lower_margin = 12,
|
|
|
|
+
|
|
|
|
+ .hsync_len = 8,
|
|
|
|
+ .vsync_len = 1,
|
|
|
|
+
|
|
|
|
+ .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
|
|
|
|
+}, { /* CRT 1024x768 H=40kHz V=50Hz */
|
|
|
|
+ .pixclock = 15000,
|
|
|
|
+ .xres = 1024,
|
|
|
|
+ .yres = 768,
|
|
|
|
+ .bpp = 16,
|
|
|
|
+ .depth = 16,
|
|
|
|
+
|
|
|
|
+ .left_margin = 220,
|
|
|
|
+ .right_margin = 8,
|
|
|
|
+ .upper_margin = 33,
|
|
|
|
+ .lower_margin = 2,
|
|
|
|
+
|
|
|
|
+ .hsync_len = 48,
|
|
|
|
+ .vsync_len = 1,
|
|
|
|
+
|
|
|
|
+ .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
|