[ar71xx] ag71xx: introduce SoC specific fuctions for DDR flush and PLL setup
[openwrt/svn-archive/archive.git] / target / linux / ar71xx / files / include / asm-mips / mach-ar71xx / platform.h
index 6c23340a8440a08ea4dea9c3dac12aa107547bf3..9d567a6c8d02809a8701b338af3f80816d9cf2dc 100644 (file)
 #ifndef __ASM_MACH_AR71XX_PLATFORM_H
 #define __ASM_MACH_AR71XX_PLATFORM_H
 
+#include <linux/if_ether.h>
 #include <linux/skbuff.h>
 #include <linux/phy.h>
 #include <linux/spi/spi.h>
+#include <linux/leds.h>
+#include <linux/gpio_buttons.h>
 
 struct ag71xx_platform_data {
-       u32             reset_bit;
-       u32             flush_reg;
-       u32             phy_mask;
        phy_interface_t phy_if_mode;
+       u32             phy_mask;
+       int             speed;
+       int             duplex;
+       u32             reset_bit;
        u32             mii_if;
+       u8              mac_addr[ETH_ALEN];
+
+       u8              has_gbit:1;
+
+       void            (* ddr_flush)(void);
+       void            (* set_pll)(u32 pll);
+};
+
+struct ag71xx_mdio_platform_data {
+       u32             phy_mask;
 };
 
 struct ar71xx_spi_platform_data {
@@ -36,7 +50,23 @@ struct ar71xx_spi_platform_data {
 extern void ar71xx_add_device_spi(struct ar71xx_spi_platform_data *pdata,
                                struct spi_board_info const *info,
                                unsigned n) __init;
-extern void ar71xx_add_device_eth(unsigned int id, phy_interface_t phy_if_mode,
-                               u32 phy_mask) __init;
+
+extern void ar71xx_set_mac_base(unsigned char *mac) __init;
+extern void ar71xx_parse_mac_addr(char *mac_str) __init;
+
+extern struct ag71xx_platform_data ar71xx_eth0_data;
+extern struct ag71xx_platform_data ar71xx_eth1_data;
+extern void ar71xx_add_device_eth(unsigned int id) __init;
+
+extern void ar71xx_add_device_mdio(u32 phy_mask) __init;
+
+extern void ar71xx_add_device_leds_gpio(int id,
+                                  unsigned num_leds,
+                                  struct gpio_led *leds) __init;
+
+extern void ar71xx_add_device_gpio_buttons(int id,
+                                  unsigned poll_interval,
+                                  unsigned nbuttons,
+                                  struct gpio_button *buttons) __init;
 
 #endif /* __ASM_MACH_AR71XX_PLATFORM_H */