|
@@ -185,3 +185,126 @@ static struct platform_device z2_flash = {
|
|
|
.dev = {
|
|
|
.platform_data = &z2_flash_data,
|
|
|
},
|
|
|
+};
|
|
|
+
|
|
|
+static void __init z2_nor_init(void)
|
|
|
+{
|
|
|
+ platform_device_register(&z2_flash);
|
|
|
+}
|
|
|
+#else
|
|
|
+static inline void z2_nor_init(void) {}
|
|
|
+#endif
|
|
|
+
|
|
|
+/******************************************************************************
|
|
|
+ * Backlight
|
|
|
+ ******************************************************************************/
|
|
|
+#if defined(CONFIG_BACKLIGHT_PWM) || defined(CONFIG_BACKLIGHT_PWM_MODULE)
|
|
|
+static struct platform_pwm_backlight_data z2_backlight_data[] = {
|
|
|
+ [0] = {
|
|
|
+ /* Keypad Backlight */
|
|
|
+ .pwm_id = 1,
|
|
|
+ .max_brightness = 1023,
|
|
|
+ .dft_brightness = 0,
|
|
|
+ .pwm_period_ns = 1260320,
|
|
|
+ },
|
|
|
+ [1] = {
|
|
|
+ /* LCD Backlight */
|
|
|
+ .pwm_id = 2,
|
|
|
+ .max_brightness = 1023,
|
|
|
+ .dft_brightness = 512,
|
|
|
+ .pwm_period_ns = 1260320,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device z2_backlight_devices[2] = {
|
|
|
+ {
|
|
|
+ .name = "pwm-backlight",
|
|
|
+ .id = 0,
|
|
|
+ .dev = {
|
|
|
+ .platform_data = &z2_backlight_data[1],
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "pwm-backlight",
|
|
|
+ .id = 1,
|
|
|
+ .dev = {
|
|
|
+ .platform_data = &z2_backlight_data[0],
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+static void __init z2_pwm_init(void)
|
|
|
+{
|
|
|
+ platform_device_register(&z2_backlight_devices[0]);
|
|
|
+ platform_device_register(&z2_backlight_devices[1]);
|
|
|
+}
|
|
|
+#else
|
|
|
+static inline void z2_pwm_init(void) {}
|
|
|
+#endif
|
|
|
+
|
|
|
+/******************************************************************************
|
|
|
+ * Framebuffer
|
|
|
+ ******************************************************************************/
|
|
|
+#if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE)
|
|
|
+static struct pxafb_mode_info z2_lcd_modes[] = {
|
|
|
+{
|
|
|
+ .pixclock = 192000,
|
|
|
+ .xres = 240,
|
|
|
+ .yres = 320,
|
|
|
+ .bpp = 16,
|
|
|
+
|
|
|
+ .left_margin = 4,
|
|
|
+ .right_margin = 8,
|
|
|
+ .upper_margin = 4,
|
|
|
+ .lower_margin = 8,
|
|
|
+
|
|
|
+ .hsync_len = 4,
|
|
|
+ .vsync_len = 4,
|
|
|
+},
|
|
|
+};
|
|
|
+
|
|
|
+static struct pxafb_mach_info z2_lcd_screen = {
|
|
|
+ .modes = z2_lcd_modes,
|
|
|
+ .num_modes = ARRAY_SIZE(z2_lcd_modes),
|
|
|
+ .lcd_conn = LCD_COLOR_TFT_16BPP | LCD_BIAS_ACTIVE_LOW |
|
|
|
+ LCD_ALTERNATE_MAPPING,
|
|
|
+};
|
|
|
+
|
|
|
+static void __init z2_lcd_init(void)
|
|
|
+{
|
|
|
+ pxa_set_fb_info(NULL, &z2_lcd_screen);
|
|
|
+}
|
|
|
+#else
|
|
|
+static inline void z2_lcd_init(void) {}
|
|
|
+#endif
|
|
|
+
|
|
|
+/******************************************************************************
|
|
|
+ * SD/MMC card controller
|
|
|
+ ******************************************************************************/
|
|
|
+#if defined(CONFIG_MMC_PXA) || defined(CONFIG_MMC_PXA_MODULE)
|
|
|
+static struct pxamci_platform_data z2_mci_platform_data = {
|
|
|
+ .ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34,
|
|
|
+ .gpio_card_detect = GPIO96_ZIPITZ2_SD_DETECT,
|
|
|
+ .gpio_power = -1,
|
|
|
+ .gpio_card_ro = -1,
|
|
|
+ .detect_delay_ms = 200,
|
|
|
+};
|
|
|
+
|
|
|
+static void __init z2_mmc_init(void)
|
|
|
+{
|
|
|
+ pxa_set_mci_info(&z2_mci_platform_data);
|
|
|
+}
|
|
|
+#else
|
|
|
+static inline void z2_mmc_init(void) {}
|
|
|
+#endif
|
|
|
+
|
|
|
+/******************************************************************************
|
|
|
+ * LEDs
|
|
|
+ ******************************************************************************/
|
|
|
+#if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE)
|
|
|
+struct gpio_led z2_gpio_leds[] = {
|
|
|
+{
|
|
|
+ .name = "z2:green:wifi",
|
|
|
+ .default_trigger = "none",
|
|
|
+ .gpio = GPIO10_ZIPITZ2_LED_WIFI,
|
|
|
+ .active_low = 1,
|
|
|
+}, {
|