|
@@ -787,3 +787,90 @@ static const struct gpio_led gpio_leds[] = {
|
|
|
.name = "d15:green:",
|
|
|
.gpio = MMGPIO_GPIO_BASE + 2,
|
|
|
.default_state = LEDS_GPIO_DEFSTATE_ON,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "d16:green:",
|
|
|
+ .gpio = MMGPIO_GPIO_BASE + 3,
|
|
|
+ .default_state = LEDS_GPIO_DEFSTATE_ON,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "d17:green:",
|
|
|
+ .gpio = MMGPIO_GPIO_BASE + 4,
|
|
|
+ .default_state = LEDS_GPIO_DEFSTATE_ON,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "d18:green:",
|
|
|
+ .gpio = MMGPIO_GPIO_BASE + 5,
|
|
|
+ .default_state = LEDS_GPIO_DEFSTATE_ON,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "d19:green:",
|
|
|
+ .gpio = MMGPIO_GPIO_BASE + 6,
|
|
|
+ .default_state = LEDS_GPIO_DEFSTATE_ON,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "d20:green:",
|
|
|
+ .gpio = MMGPIO_GPIO_BASE + 7,
|
|
|
+ .default_state = LEDS_GPIO_DEFSTATE_ON,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static const struct gpio_led_platform_data gpio_leds_pdata = {
|
|
|
+ .leds = gpio_leds,
|
|
|
+ .num_leds = ARRAY_SIZE(gpio_leds),
|
|
|
+};
|
|
|
+
|
|
|
+static struct s3c_hsotg_plat crag6410_hsotg_pdata;
|
|
|
+
|
|
|
+static void __init crag6410_machine_init(void)
|
|
|
+{
|
|
|
+ /* Open drain IRQs need pullups */
|
|
|
+ s3c_gpio_setpull(S3C64XX_GPM(0), S3C_GPIO_PULL_UP);
|
|
|
+ s3c_gpio_setpull(S3C64XX_GPN(0), S3C_GPIO_PULL_UP);
|
|
|
+
|
|
|
+ gpio_request(S3C64XX_GPB(0), "LCD power");
|
|
|
+ gpio_direction_output(S3C64XX_GPB(0), 0);
|
|
|
+
|
|
|
+ gpio_request(S3C64XX_GPF(14), "LCD PWM");
|
|
|
+ gpio_direction_output(S3C64XX_GPF(14), 0); /* turn off */
|
|
|
+
|
|
|
+ gpio_request(S3C64XX_GPB(1), "SD power");
|
|
|
+ gpio_direction_output(S3C64XX_GPB(1), 0);
|
|
|
+
|
|
|
+ gpio_request(S3C64XX_GPF(10), "nRESETSEL");
|
|
|
+ gpio_direction_output(S3C64XX_GPF(10), 1);
|
|
|
+
|
|
|
+ s3c_sdhci0_set_platdata(&crag6410_hsmmc0_pdata);
|
|
|
+ s3c_sdhci2_set_platdata(&crag6410_hsmmc2_pdata);
|
|
|
+
|
|
|
+ s3c_i2c0_set_platdata(&i2c0_pdata);
|
|
|
+ s3c_i2c1_set_platdata(&i2c1_pdata);
|
|
|
+ s3c_fb_set_platdata(&crag6410_lcd_pdata);
|
|
|
+ s3c_hsotg_set_platdata(&crag6410_hsotg_pdata);
|
|
|
+
|
|
|
+ i2c_register_board_info(0, i2c_devs0, ARRAY_SIZE(i2c_devs0));
|
|
|
+ i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1));
|
|
|
+
|
|
|
+ samsung_keypad_set_platdata(&crag6410_keypad_data);
|
|
|
+ s3c64xx_spi0_set_platdata(NULL, 0, 2);
|
|
|
+
|
|
|
+ platform_add_devices(crag6410_devices, ARRAY_SIZE(crag6410_devices));
|
|
|
+
|
|
|
+ gpio_led_register_device(-1, &gpio_leds_pdata);
|
|
|
+
|
|
|
+ regulator_has_full_constraints();
|
|
|
+
|
|
|
+ s3c64xx_pm_init();
|
|
|
+}
|
|
|
+
|
|
|
+MACHINE_START(WLF_CRAGG_6410, "Wolfson Cragganmore 6410")
|
|
|
+ /* Maintainer: Mark Brown <broonie@opensource.wolfsonmicro.com> */
|
|
|
+ .atag_offset = 0x100,
|
|
|
+ .init_irq = s3c6410_init_irq,
|
|
|
+ .handle_irq = vic_handle_irq,
|
|
|
+ .map_io = crag6410_map_io,
|
|
|
+ .init_machine = crag6410_machine_init,
|
|
|
+ .init_late = s3c64xx_init_late,
|
|
|
+ .timer = &s3c24xx_timer,
|
|
|
+ .restart = s3c64xx_restart,
|
|
|
+MACHINE_END
|