platform_device_register(&adm5120_gpio_leds_device);
}
-/*
- * GPIO device
- */
-static struct resource adm5120_gpio_resource[] __initdata = {
- {
- .start = 0x3fffff,
- },
-};
-
-void __init adm5120_add_device_gpio(u32 disable_mask)
-{
- if (adm5120_package_pqfp())
- disable_mask |= 0xf0;
-
- adm5120_gpio_resource[0].start &= ~disable_mask;
- platform_device_register_simple("GPIODEV", -1,
- adm5120_gpio_resource,
- ARRAY_SIZE(adm5120_gpio_resource));
-}
-
/*
* NAND flash
*/
#include <asm/mach-adm5120/prom/myloader.h>
-#define COMPEX_GPIO_DEV_MASK (1 << ADM5120_GPIO_PIN5)
-
static void switch_bank_gpio5(unsigned bank)
{
switch (bank) {
adm5120_add_device_uart(0);
adm5120_add_device_uart(1);
- adm5120_add_device_gpio(COMPEX_GPIO_DEV_MASK);
-
compex_mac_setup();
}
#include <prom/admboot.h>
-#define BR61XX_GPIO_DEV_MASK 0
-
#define BR61XX_CONFIG_OFFSET 0x8000
#define BR61XX_CONFIG_SIZE 0x1000
adm5120_flash0_data.parts = br61xx_partitions;
adm5120_add_device_flash(0);
- adm5120_add_device_gpio(BR61XX_GPIO_DEV_MASK);
-
adm5120_add_device_uart(0);
adm5120_add_device_uart(1);
#include <asm/mach-adm5120/adm5120_defs.h>
-#define EB214A_GPIO_DEV_MASK 0
#define EB214A_CONFIG_OFFSET 0x4000
#define EB214A_KEYS_POLL_INTERVAL 20
adm5120_flash0_data.parts = eb214a_partitions;
adm5120_add_device_flash(0);
- adm5120_add_device_gpio(EB214A_GPIO_DEV_MASK);
-
adm5120_add_device_uart(0);
/* adm5120_add_device_uart(1); */
rb1xx_add_device_nand();
adm5120_add_device_switch(1, rb11x_vlans);
- adm5120_add_device_gpio(0);
adm5120_add_device_gpio_leds(ARRAY_SIZE(rb11x_gpio_leds),
rb11x_gpio_leds);
}
rb1xx_add_device_nand();
adm5120_add_device_switch(3, rb133_vlans);
- adm5120_add_device_gpio(0);
adm5120_add_device_gpio_leds(ARRAY_SIZE(rb133_gpio_leds),
rb133_gpio_leds);
}
rb1xx_add_device_nand();
adm5120_add_device_switch(1, rb133c_vlans);
- adm5120_add_device_gpio(0);
adm5120_add_device_gpio_leds(ARRAY_SIZE(rb133c_gpio_leds),
rb133c_gpio_leds);
}
#define RB150_GPIO_NAND_ALE ADM5120_GPIO_P3L2
#define RB150_GPIO_RESET_BUTTON ADM5120_GPIO_PIN1 /* FIXME */
-#define RB150_GPIO_DEV_MASK (1 << RB150_GPIO_NAND_READY \
- | 1 << RB150_GPIO_NAND_NCE \
- | 1 << RB150_GPIO_NAND_CLE \
- | 1 << RB150_GPIO_NAND_ALE)
-
#define RB150_NAND_DELAY 100
#define RB150_NAND_WRITE(v) \
rb1xx_generic_setup();
rb150_add_device_nand();
- adm5120_add_device_gpio(RB150_GPIO_DEV_MASK);
adm5120_add_device_gpio_leds(ARRAY_SIZE(rb150_gpio_leds),
rb150_gpio_leds);
adm5120_add_device_switch(5, rb150_vlans);
#include "rb-1xx.h"
-#define RB153_GPIO_DEV_MASK (1 << ADM5120_GPIO_PIN0 \
- | 1 << ADM5120_GPIO_PIN3 \
- | 1 << ADM5120_GPIO_PIN4)
-
static struct resource rb153_cf_resources[] __initdata = {
{
.name = "cf_membase",
rb1xx_add_device_nand();
rb153_add_device_cf();
- adm5120_add_device_gpio(RB153_GPIO_DEV_MASK);
adm5120_add_device_gpio_leds(ARRAY_SIZE(rb153_gpio_leds),
rb153_gpio_leds);
adm5120_add_device_switch(5, rb153_vlans);
rb1xx_generic_setup();
rb1xx_add_device_nand();
- adm5120_add_device_gpio(0);
adm5120_add_device_switch(6, rb192_vlans);
}
#include <prom/zynos.h>
#define P33X_GPIO_FLASH_A20 ADM5120_GPIO_PIN5
-#define P33X_GPIO_DEV_MASK (1 << P33X_GPIO_FLASH_A20)
-
static struct mtd_partition p33x_partitions[] = {
{
.name = "bootbase",
adm5120_add_device_uart(0);
adm5120_add_device_uart(1);
- adm5120_add_device_gpio(P33X_GPIO_DEV_MASK);
-
adm5120_setup_eth_macs(bootbase_info.mac);
adm5120_add_device_switch(6, p33x_vlans);
extern void adm5120_add_device_uart(unsigned id) __init;
extern void adm5120_add_device_nand(struct platform_nand_data *pdata) __init;
extern void adm5120_add_device_switch(unsigned num_ports, u8 *vlan_map) __init;
-extern void adm5120_add_device_gpio(u32 disable_mask) __init;
extern void adm5120_register_gpio_buttons(int id,
unsigned poll_interval,
unsigned nbuttons,
+#endif
--- /dev/null
+++ b/arch/mips/ar231x/devices.c
-@@ -0,0 +1,173 @@
+@@ -0,0 +1,168 @@
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/serial.h>
+
+static int __init ar231x_register_devices(void)
+{
-+ static struct resource res = {
-+ .start = 0xFFFFFFFF,
-+ };
-+
-+ platform_device_register_simple("GPIODEV", 0, &res, 1);
+ ar5312_init_devices();
+ ar2315_init_devices();
+
+ return NULL;
+}
+EXPORT_SYMBOL(nvram_get);
---- a/arch/mips/bcm47xx/setup.c
-+++ b/arch/mips/bcm47xx/setup.c
-@@ -381,3 +381,20 @@ static int __init bcm47xx_register_flash
- return -1;
- }
- fs_initcall(bcm47xx_register_flash);
-+
-+static int __init bcm47xx_register_gpiodev(void)
-+{
-+ static struct resource res = {
-+ .start = 0xFFFFFFFF,
-+ };
-+ struct platform_device *pdev;
-+
-+ pdev = platform_device_register_simple("GPIODEV", 0, &res, 1);
-+ if (!pdev) {
-+ printk(KERN_ERR "bcm47xx: GPIODEV init failed\n");
-+ return -ENODEV;
-+ }
-+
-+ return 0;
-+}
-+device_initcall(bcm47xx_register_gpiodev);
--- /dev/null
+++ b/arch/arm/mach-cns3xxx/laguna.c
-@@ -0,0 +1,936 @@
+@@ -0,0 +1,931 @@
+/*
+ * Gateworks Corporation Laguna Platform
+ *
+/*
+ * GPIO
+ */
-+static struct platform_device laguna_gpio_dev = {
-+ .name = "GPIODEV",
-+ .id = -1,
-+};
+
+static struct gpio laguna_gpio_gw2391[] = {
+ { 0, GPIOF_IN , "*GPS_PPS" },
+ laguna_gpio_leds_data.num_leds = 2;
+ }
+ platform_device_register(&laguna_gpio_leds_device);
-+ platform_device_register(&laguna_gpio_dev);
+ } else {
+ // Do some defaults here, not sure what yet
+ }
+subsys_initcall(cambria_pci_init);
--- /dev/null
+++ b/arch/arm/mach-ixp4xx/cambria-setup.c
-@@ -0,0 +1,1006 @@
+@@ -0,0 +1,992 @@
+/*
+ * arch/arm/mach-ixp4xx/cambria-setup.c
+ *
+ {131, GPIOF_IN, "DIO4" },
+};
+
-+static struct platform_device cambria_gpio = {
-+ .name = "GPIODEV",
-+ .id = -1,
-+ .num_resources = ARRAY_SIZE(cambria_gpio_resources),
-+ .resource = cambria_gpio_resources,
-+};
-+
+static struct latch_led cambria_latch_leds[] = {
+ {
+ .name = "ledA", /* green led */
+ (1 << 5) | (1 << 8) | (1 << 9) | (1 << 12);
+ cambria_gpio_resources[0].end = cambria_gpio_resources[0].start;
+
-+ platform_device_register(&cambria_gpio);
+ platform_device_register(&cambria_npec_device);
+ platform_device_register(&cambria_npea_device);
+}
+ (1 << 5) | (1 << 8) | (1 << 9) | (1 << 12);
+ cambria_gpio_resources[0].end = cambria_gpio_resources[0].start;
+
-+ platform_device_register(&cambria_gpio);
+ platform_device_register(&cambria_optional_uart);
+ platform_device_register(&cambria_npec_device);
+ platform_device_register(&cambria_npea_device);
+ (1 << 19) | (1 << 20) | (1 << 24) | (1 << 25);
+ cambria_gpio_resources[0].end = cambria_gpio_resources[0].start;
+
-+ platform_device_register(&cambria_gpio);
+ platform_device_register(&cambria_optional_uart);
+
+ platform_device_register(&cambria_npec_device);
+
+static void __init cambria_gw2359_setup(void)
+{
-+ platform_device_register(&cambria_gpio);
-+
+#if defined(CONFIG_MVSWITCH_PHY) || defined(CONFIG_MVSWITCH_PHY_MODULE)
+ /* The mvswitch driver has some hard-coded values which could
+ * easily be turned into a platform resource if needed. For now they
+ cambria_optional_uart.num_resources = 7,
+ platform_device_register(&cambria_optional_uart);
+
-+ platform_device_register(&cambria_gpio);
-+
+#if defined(CONFIG_MVSWITCH_PHY) || defined(CONFIG_MVSWITCH_PHY_MODULE)
+ /* The mvswitch driver has some hard-coded values which could
+ * easily be turned into a platform resource if needed. For now they
.name = "intrq",
.start = IRQ_IXP4XX_GPIO12,
.end = IRQ_IXP4XX_GPIO12,
-@@ -133,21 +210,280 @@ static struct platform_device avila_pata
+@@ -133,21 +210,275 @@ static struct platform_device avila_pata
.resource = avila_pata_resources,
};
};
-static void __init avila_init(void)
-+static struct platform_device avila_gpio_dev = {
-+ .name = "GPIODEV",
-+ .id = -1,
-+};
-+
+/*
+ * Audio Devices
+ */
avila_pata_resources[0].start = IXP4XX_EXP_BUS_BASE(1);
avila_pata_resources[0].end = IXP4XX_EXP_BUS_END(1);
-@@ -159,8 +495,274 @@ static void __init avila_init(void)
+@@ -159,8 +495,272 @@ static void __init avila_init(void)
avila_pata_data.cs1_cfg = IXP4XX_EXP_CS2;
platform_device_register(&avila_pata);
+
+ i2c_register_board_info(0, avila_i2c_board_info,
+ ARRAY_SIZE(avila_i2c_board_info));
-+
-+ platform_device_register(&avila_gpio_dev);
+}
+
+static int __init avila_model_setup(void)
+subsys_initcall(tw2662_pci_init);
--- /dev/null
+++ b/arch/arm/mach-ixp4xx/tw2662-setup.c
-@@ -0,0 +1,213 @@
+@@ -0,0 +1,205 @@
+/*
+ * arch/arm/mach-ixp4xx/tw2662-setup.c
+ *
+ },
+};
+
-+static struct platform_device tw2662_gpio = {
-+ .name = "GPIODEV",
-+ .id = -1,
-+ .num_resources = ARRAY_SIZE(tw2662_gpio_resources),
-+ .resource = tw2662_gpio_resources,
-+};
-+
+static struct resource tw2662_uart_resources[] = {
+ {
+ .start = IXP4XX_UART1_BASE_PHYS,
+static struct platform_device *tw2662_devices[] __initdata = {
+ &tw2662_flash,
+ &tw2662_uart,
-+ &tw2662_gpio,
+ &tw2662_eth[0],
+ &tw2662_eth[1],
+};
.name = "ifxmips_gpio",
};
-static struct platform_device ltq_gpiodev = {
- .name = "GPIODEV",
-};
-
void __init svip_register_gpio(void)
{
platform_device_register(<q_gpio);
- platform_device_register(<q_gpiodev);
}
/* MUX */