Skip to content
Snippets Groups Projects
Commit 1a3afcfe authored by Peter Denison's avatar Peter Denison
Browse files

USR8200 changes The attached patch adds LED support and enables all the PHYs on the switch.


Signed-off-by: default avatarJose Vasconcellos <jvasco@verizon.net>

Also adds preliminary support for enabling the RTC, and some cache reporting
tweaks.

SVN-Revision: 13942
parent 448dd4ac
No related branches found
No related tags found
No related merge requests found
...@@ -116,7 +116,7 @@ ...@@ -116,7 +116,7 @@
+subsys_initcall(usr8200_pci_init); +subsys_initcall(usr8200_pci_init);
--- /dev/null --- /dev/null
+++ b/arch/arm/mach-ixp4xx/usr8200-setup.c +++ b/arch/arm/mach-ixp4xx/usr8200-setup.c
@@ -0,0 +1,187 @@ @@ -0,0 +1,211 @@
+/* +/*
+ * arch/arm/mach-ixp4xx/usr8200-setup.c + * arch/arm/mach-ixp4xx/usr8200-setup.c
+ * + *
...@@ -215,29 +215,35 @@ ...@@ -215,29 +215,35 @@
+ .resource = usr8200_uart_resources, + .resource = usr8200_uart_resources,
+}; +};
+ +
+/*
+static struct i2c_gpio_platform_data usr8200_i2c_gpio_data = {
+ .sda_pin = 9,
+ .scl_pin = 10,
+};
+
+static struct platform_device usr8200_i2c_gpio = {
+ .name = "i2c-gpio",
+ .id = 0,
+ .dev = {
+ .platform_data = &usr8200_i2c_gpio_data,
+ },
+};
+
+static struct gpio_led usr8200_led_pin[] = { +static struct gpio_led usr8200_led_pin[] = {
+ { + {
+ .name = "usr8200:green:status", + .name = "usr8200:usb1",
+ .gpio = 7, + .gpio = 0,
+ .active_low = 1,
+ },
+ {
+ .name = "usr8200:usb2",
+ .gpio = 1,
+ .active_low = 1,
+ },
+ {
+ .name = "usr8200:ieee1394",
+ .gpio = 2,
+ .active_low = 1,
+ },
+ {
+ .name = "usr8200:internal",
+ .gpio = 3,
+ .active_low = 1,
+ },
+ {
+ .name = "usr8200:power",
+ .gpio = 14,
+ } + }
+}; +};
+ +
+static struct gpio_led_platform_data usr8200_led_data = { +static struct gpio_led_platform_data usr8200_led_data = {
+ .num_leds = 1, + .num_leds = ARRAY_SIZE(usr8200_led_pin),
+ .leds = usr8200_led_pin, + .leds = usr8200_led_pin,
+}; +};
+ +
...@@ -246,14 +252,14 @@ ...@@ -246,14 +252,14 @@
+ .id = -1, + .id = -1,
+ .dev.platform_data = &usr8200_led_data, + .dev.platform_data = &usr8200_led_data,
+}; +};
+*/
+ +
+static struct eth_plat_info usr8200_plat_eth[] = { +static struct eth_plat_info usr8200_plat_eth[] = {
+ { + { /* NPEC - LAN with Marvell 88E6060 switch */
+ .phy = 16, + .phy = IXP4XX_ETH_PHY_MAX_ADDR,
+ .phy_mask = 0x0F0000,
+ .rxq = 4, + .rxq = 4,
+ .txreadyq = 21, + .txreadyq = 21,
+ }, { + }, { /* NPEB - WAN */
+ .phy = 9, + .phy = 9,
+ .rxq = 3, + .rxq = 3,
+ .txreadyq = 20, + .txreadyq = 20,
...@@ -272,13 +278,23 @@ ...@@ -272,13 +278,23 @@
+ } + }
+}; +};
+ +
+static struct resource usr8200_rtc_resources = {
+ .flags = IORESOURCE_MEM
+};
+
+static struct platform_device usr8200_rtc = {
+ .name = "rtc7301",
+ .id = 0,
+ .resource = &usr8200_rtc_resources,
+};
+
+static struct platform_device *usr8200_devices[] __initdata = { +static struct platform_device *usr8200_devices[] __initdata = {
+ &usr8200_flash, + &usr8200_flash,
+ &usr8200_uart, + &usr8200_uart,
+/* &usr8200_led, + &usr8200_led,
+ &usr8200_i2c_gpio, */
+ &usr8200_eth[0], + &usr8200_eth[0],
+ &usr8200_eth[1], + &usr8200_eth[1],
+ &usr8200_rtc,
+}; +};
+ +
+static void __init usr8200_init(void) +static void __init usr8200_init(void)
...@@ -286,10 +302,18 @@ ...@@ -286,10 +302,18 @@
+ ixp4xx_sys_init(); + ixp4xx_sys_init();
+ +
+ usr8200_flash_resource.start = IXP4XX_EXP_BUS_BASE(0); + usr8200_flash_resource.start = IXP4XX_EXP_BUS_BASE(0);
+ usr8200_flash_resource.end = IXP4XX_EXP_BUS_BASE(0) + SZ_64M - 1; + usr8200_flash_resource.end = IXP4XX_EXP_BUS_BASE(0) + SZ_16M - 1;
+
+ usr8200_rtc_resources.start = IXP4XX_EXP_BUS_BASE(2);
+ usr8200_rtc_resources.end = IXP4XX_EXP_BUS_BASE(2) + 0x01ff;
+ +
+ *IXP4XX_EXP_CS0 |= IXP4XX_FLASH_WRITABLE; + *IXP4XX_EXP_CS0 |= IXP4XX_FLASH_WRITABLE;
+ *IXP4XX_EXP_CS1 = *IXP4XX_EXP_CS0; + *IXP4XX_EXP_CS2 = IXP4XX_EXP_BUS_SIZE(0) | IXP4XX_EXP_BUS_WR_EN |
+ IXP4XX_EXP_BUS_CS_EN | IXP4XX_EXP_BUS_BYTE_EN;
+ *IXP4XX_GPIO_GPCLKR = 0x01100000;
+
+ /* configure button as input */
+ gpio_line_config(12, IXP4XX_GPIO_IN);
+ +
+ platform_add_devices(usr8200_devices, ARRAY_SIZE(usr8200_devices)); + platform_add_devices(usr8200_devices, ARRAY_SIZE(usr8200_devices));
+} +}
......
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -184,7 +184,7 @@ static const char *cache_types[16] = {
"write-back",
"undefined 3",
"undefined 4",
- "undefined 5",
+ "write-back",
"write-back",
"write-back",
"undefined 8",
@@ -203,7 +203,7 @@ static const char *cache_clean[16] = {
"cp15 c7 ops",
"undefined 3",
"undefined 4",
- "undefined 5",
+ "cp15 c7 ops",
"cp15 c7 ops",
"cp15 c7 ops",
"undefined 8",
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment