brcm47xx: add fallback sprom for pci devices without an own sprom.
[openwrt.git] / target / linux / lantiq / patches / 104-board_xway.patch
index e70ff80..297fbd3 100644 (file)
@@ -82,7 +82,7 @@
 +      .set = lq_ebu_set,
 +      .base = 32,
 +      .ngpio = 16,
-+      .can_sleep = 1,
++      .can_sleep = 0,
 +      .owner = THIS_MODULE,
 +};
 +
 +      .set = lq_stp_set,
 +      .base = 48,
 +      .ngpio = 24,
-+      .can_sleep = 1,
++      .can_sleep = 0,
 +      .owner = THIS_MODULE,
 +};
 +
 +}
 --- /dev/null
 +++ b/arch/mips/lantiq/xway/devices.c
-@@ -0,0 +1,278 @@
+@@ -0,0 +1,336 @@
 +/*
 + *  This program is free software; you can redistribute it and/or modify it
 + *  under the terms of the GNU General Public License version 2 as published
 +#include <linux/time.h>
 +#include <linux/io.h>
 +#include <linux/gpio.h>
++#include <linux/gpio_buttons.h>
 +#include <linux/leds.h>
 +
 +#include <asm/bootinfo.h>
 +      platform_device_register(&lq_gpio_leds);
 +}
 +
++/* gpio buttons */
++static struct gpio_buttons_platform_data lq_gpio_buttons_platform_data;
++
++static struct platform_device lq_gpio_buttons_platform_device =
++{
++      .name = "gpio-buttons",
++      .id = 0,
++      .dev = {
++              .platform_data = (void *) &lq_gpio_buttons_platform_data,
++      },
++};
++
++void __init
++lq_register_gpio_buttons(struct gpio_button *buttons, int cnt)
++{
++      lq_gpio_buttons_platform_data.buttons = buttons;
++      lq_gpio_buttons_platform_data.nbuttons = cnt;
++      platform_device_register(&lq_gpio_buttons_platform_device);
++}
++
 +/* serial to parallel conversion */
 +static struct resource lq_stp_resource =
 +{
 +      .flags  = IORESOURCE_MEM,
 +};
 +
++static struct platform_device lq_ebu =
++{
++      .name           = "lq_ebu",
++      .resource       = &lq_ebu_resource,
++      .num_resources  = 1,
++};
++
 +void __init
 +lq_register_gpio_ebu(unsigned int value)
 +{
-+      platform_device_register_simple("lq_ebu", 0, &lq_ebu_resource, 1);
++      lq_ebu.dev.platform_data = (void*) value;
++      platform_device_register(&lq_ebu);
 +}
 +
 +/* ethernet */
 +      },
 +};
 +
++static unsigned int *cp1_base;
++unsigned int*
++lq_get_cp1_base(void)
++{
++      return cp1_base;
++}
++EXPORT_SYMBOL(lq_get_cp1_base);
++
 +void __init
 +lq_register_tapi(void)
 +{
 +#define CP1_SIZE      (1 << 20)
 +      dma_addr_t dma;
 +      mps_device.dev.platform_data =
++      cp1_base =
 +              (void*)CPHYSADDR(dma_alloc_coherent(NULL, CP1_SIZE, &dma, GFP_ATOMIC));
++      mps_device.dev.platform_data = cp1_base;
 +      platform_device_register(&mps_device);
 +      platform_device_register(&vmmc_device);
 +}
 +              break;
 +      }
 +}
++
++void __init
++lq_register_crypto(const char *name)
++{
++      platform_device_register_simple(name, 0, 0, 0);
++}
++
++/* madwifi */
++int lantiq_emulate_madwifi_eep = 0;
++EXPORT_SYMBOL(lantiq_emulate_madwifi_eep);
++
++void __init
++lq_register_madwifi_eep(void)
++{
++      lantiq_emulate_madwifi_eep = 1;
++}
++
++
++
 --- /dev/null
 +++ b/arch/mips/lantiq/xway/devices.h
-@@ -0,0 +1,25 @@
+@@ -0,0 +1,28 @@
 +/*
 + *  This program is free software; you can redistribute it and/or modify it
 + *  under the terms of the GNU General Public License version 2 as published
 +extern void __init lq_register_gpio_leds(struct gpio_led *leds, int cnt);
 +extern void __init lq_register_pci(struct lq_pci_data *data);
 +extern void __init lq_register_nor(struct physmap_flash_data *data);
++extern void __init lq_register_tapi(void);
++extern void __init lq_register_madwifi_eep(void);
 +extern void __init lq_register_wdt(void);
 +extern void __init lq_register_ethernet(struct lq_eth_data *eth);
 +extern void __init lq_register_asc(int port);
++extern void __init lq_register_gpio_buttons(struct gpio_button *buttons, int cnt);
 +
 +#endif
 --- /dev/null
 +      struct timer_dev_timer timer[MAX_NUM_OF_32BIT_TIMER_BLOCKS * 2];
 +};
 +
-+static int gptu_ioctl(struct inode *, struct file *, unsigned int, unsigned long);
++static long gptu_ioctl(struct file *, unsigned int, unsigned long);
 +static int gptu_open(struct inode *, struct file *);
 +static int gptu_release(struct inode *, struct file *);
 +
 +static struct file_operations gptu_fops = {
 +      .owner = THIS_MODULE,
-+      .ioctl = gptu_ioctl,
++      .unlocked_ioctl = gptu_ioctl,
 +      .open = gptu_open,
 +      .release = gptu_release
 +};
 +}
 +EXPORT_SYMBOL(lq_set_counter);
 +
-+static int gptu_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
++static long gptu_ioctl(struct file *file, unsigned int cmd,
 +      unsigned long arg)
 +{
 +      int ret;
This page took 0.034092 seconds and 4 git commands to generate.