|
@@ -36,6 +36,12 @@
|
|
|
#include <watchdog.h>
|
|
|
#include <asm/immap.h>
|
|
|
|
|
|
+#if defined(CONFIG_CMD_NET)
|
|
|
+#include <config.h>
|
|
|
+#include <net.h>
|
|
|
+#include <asm/fec.h>
|
|
|
+#endif
|
|
|
+
|
|
|
#ifndef CONFIG_M5272
|
|
|
/* Only 5272 Flexbus chipselect is different from the rest */
|
|
|
void init_fbcs(void)
|
|
@@ -207,6 +213,19 @@ void uart_port_conf(void)
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+#if defined(CONFIG_CMD_NET)
|
|
|
+int fecpin_setclear(struct eth_device *dev, int setclear)
|
|
|
+{
|
|
|
+ if (setclear) {
|
|
|
+ /* Enable Ethernet pins */
|
|
|
+ mbar_writeByte(MCF_GPIO_PAR_FECI2C, CONFIG_SYS_FECI2C);
|
|
|
+ } else {
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+#endif /* CONFIG_CMD_NET */
|
|
|
#endif
|
|
|
|
|
|
#if defined(CONFIG_M5272)
|
|
@@ -309,6 +328,22 @@ void uart_port_conf(void)
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+#if defined(CONFIG_CMD_NET)
|
|
|
+int fecpin_setclear(struct eth_device *dev, int setclear)
|
|
|
+{
|
|
|
+ volatile gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
|
|
+
|
|
|
+ if (setclear) {
|
|
|
+ gpio->gpio_pbcnt |= GPIO_PBCNT_E_MDC | GPIO_PBCNT_E_RXER |
|
|
|
+ GPIO_PBCNT_E_RXD1 | GPIO_PBCNT_E_RXD2 |
|
|
|
+ GPIO_PBCNT_E_RXD3 | GPIO_PBCNT_E_TXD1 |
|
|
|
+ GPIO_PBCNT_E_TXD2 | GPIO_PBCNT_E_TXD3;
|
|
|
+ } else {
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+#endif /* CONFIG_CMD_NET */
|
|
|
#endif /* #if defined(CONFIG_M5272) */
|
|
|
|
|
|
#if defined(CONFIG_M5275)
|
|
@@ -372,6 +407,35 @@ void uart_port_conf(void)
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+#if defined(CONFIG_CMD_NET)
|
|
|
+int fecpin_setclear(struct eth_device *dev, int setclear)
|
|
|
+{
|
|
|
+ struct fec_info_s *info = (struct fec_info_s *) dev->priv;
|
|
|
+ volatile gpio_t *gpio = (gpio_t *)MMAP_GPIO;
|
|
|
+
|
|
|
+ if (setclear) {
|
|
|
+ /* Enable Ethernet pins */
|
|
|
+ if (info->iobase == CONFIG_SYS_FEC0_IOBASE) {
|
|
|
+ gpio->par_feci2c |= 0x0F00;
|
|
|
+ gpio->par_fec0hl |= 0xC0;
|
|
|
+ } else {
|
|
|
+ gpio->par_feci2c |= 0x00A0;
|
|
|
+ gpio->par_fec1hl |= 0xC0;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (info->iobase == CONFIG_SYS_FEC0_IOBASE) {
|
|
|
+ gpio->par_feci2c &= ~0x0F00;
|
|
|
+ gpio->par_fec0hl &= ~0xC0;
|
|
|
+ } else {
|
|
|
+ gpio->par_feci2c &= ~0x00A0;
|
|
|
+ gpio->par_fec1hl &= ~0xC0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+#endif /* CONFIG_CMD_NET */
|
|
|
#endif /* #if defined(CONFIG_M5275) */
|
|
|
|
|
|
#if defined(CONFIG_M5282)
|
|
@@ -469,6 +533,20 @@ void uart_port_conf(void)
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+#if defined(CONFIG_CMD_NET)
|
|
|
+int fecpin_setclear(struct eth_device *dev, int setclear)
|
|
|
+{
|
|
|
+ if (setclear) {
|
|
|
+ MCFGPIO_PASPAR |= 0x0F00;
|
|
|
+ MCFGPIO_PEHLPAR = CONFIG_SYS_PEHLPAR;
|
|
|
+ } else {
|
|
|
+ MCFGPIO_PASPAR &= 0xF0FF;
|
|
|
+ MCFGPIO_PEHLPAR &= ~CONFIG_SYS_PEHLPAR;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+#endif /* CONFIG_CMD_NET */
|
|
|
#endif
|
|
|
|
|
|
#if defined(CONFIG_M5249)
|