|
@@ -453,3 +453,58 @@ static struct gpio_led zeus_leds[] = {
|
|
|
.active_low = 1,
|
|
|
},
|
|
|
};
|
|
|
+
|
|
|
+static struct gpio_led_platform_data zeus_leds_info = {
|
|
|
+ .leds = zeus_leds,
|
|
|
+ .num_leds = ARRAY_SIZE(zeus_leds),
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device zeus_leds_device = {
|
|
|
+ .name = "leds-gpio",
|
|
|
+ .id = -1,
|
|
|
+ .dev = {
|
|
|
+ .platform_data = &zeus_leds_info,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static void zeus_cf_reset(int state)
|
|
|
+{
|
|
|
+ u16 cpld_state = __raw_readw(ZEUS_CPLD_CONTROL);
|
|
|
+
|
|
|
+ if (state)
|
|
|
+ cpld_state |= ZEUS_CPLD_CONTROL_CF_RST;
|
|
|
+ else
|
|
|
+ cpld_state &= ~ZEUS_CPLD_CONTROL_CF_RST;
|
|
|
+
|
|
|
+ __raw_writew(cpld_state, ZEUS_CPLD_CONTROL);
|
|
|
+}
|
|
|
+
|
|
|
+static struct arcom_pcmcia_pdata zeus_pcmcia_info = {
|
|
|
+ .cd_gpio = ZEUS_CF_CD_GPIO,
|
|
|
+ .rdy_gpio = ZEUS_CF_RDY_GPIO,
|
|
|
+ .pwr_gpio = ZEUS_CF_PWEN_GPIO,
|
|
|
+ .reset = zeus_cf_reset,
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device zeus_pcmcia_device = {
|
|
|
+ .name = "zeus-pcmcia",
|
|
|
+ .id = -1,
|
|
|
+ .dev = {
|
|
|
+ .platform_data = &zeus_pcmcia_info,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct resource zeus_max6369_resource = {
|
|
|
+ .start = ZEUS_CPLD_EXTWDOG_PHYS,
|
|
|
+ .end = ZEUS_CPLD_EXTWDOG_PHYS,
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
+};
|
|
|
+
|
|
|
+struct platform_device zeus_max6369_device = {
|
|
|
+ .name = "max6369_wdt",
|
|
|
+ .id = -1,
|
|
|
+ .resource = &zeus_max6369_resource,
|
|
|
+ .num_resources = 1,
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device *zeus_devices[] __initdata = {
|