diff options
author | Kevin Kirspel <kevin-kirspel@idexx.com> | 2017-01-30 11:58:16 -0500 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-02-14 09:40:01 +0100 |
commit | 9f2205a3f58014a4998e56731f66354b9e99f86d (patch) | |
tree | 5dd663b0c88c191edf4b84d8557782dc4da23f12 /rtemsbsd/include | |
parent | Adding LPC32XX ethernet driver support (diff) | |
download | rtems-libbsd-9f2205a3f58014a4998e56731f66354b9e99f86d.tar.bz2 |
Port LPC32XX Ethernet and USB OHCI to RTEMS
Diffstat (limited to 'rtemsbsd/include')
-rwxr-xr-x[-rw-r--r--] | rtemsbsd/include/bsp/nexus-devices.h | 12 | ||||
-rwxr-xr-x[-rw-r--r--] | rtemsbsd/include/machine/rtems-bsd-nexus-bus.h | 75 | ||||
-rwxr-xr-x[-rw-r--r--] | rtemsbsd/include/rtems/bsd/local/miidevs.h | 2 |
3 files changed, 89 insertions, 0 deletions
diff --git a/rtemsbsd/include/bsp/nexus-devices.h b/rtemsbsd/include/bsp/nexus-devices.h index 0b4ec62b..b6814347 100644..100755 --- a/rtemsbsd/include/bsp/nexus-devices.h +++ b/rtemsbsd/include/bsp/nexus-devices.h @@ -46,6 +46,18 @@ RTEMS_BSD_DRIVER_SMC0(0x4e000000, RVPBXA9_IRQ_ETHERNET); +#elif defined(LIBBSP_ARM_LPC32XX_BSP_H) + +#include <bsp/irq.h> + +RTEMS_BSD_DRIVER_LPC32XX_PWR; +RTEMS_BSD_DRIVER_LPC32XX_LPE; +RTEMS_BSD_DRIVER_ICSPHY; +RTEMS_BSD_DRIVER_LPC32XX_OHCI; +SYSINIT_DRIVER_REFERENCE(usbus, ohci); +RTEMS_BSD_DRIVER_USB; +RTEMS_BSD_DRIVER_USB_MASS; + #elif defined(LIBBSP_M68K_GENMCF548X_BSP_H) RTEMS_BSD_DRIVER_FEC; diff --git a/rtemsbsd/include/machine/rtems-bsd-nexus-bus.h b/rtemsbsd/include/machine/rtems-bsd-nexus-bus.h index a408c172..299221c7 100644..100755 --- a/rtemsbsd/include/machine/rtems-bsd-nexus-bus.h +++ b/rtemsbsd/include/machine/rtems-bsd-nexus-bus.h @@ -38,6 +38,7 @@ * * Devices: * RTEMS_BSD_DRIVER_XILINX_ZYNQ_SLCR + * RTEMS_BSD_DRIVER_LPC32XX_PWR * * Buses: * RTEMS_BSD_DRIVER_PC_LEGACY @@ -46,6 +47,7 @@ * RTEMS_BSD_DRIVER_DWCOTG0 * RTEMS_BSD_DRIVER_DWCOTG0_BASE_ADDR * RTEMS_BSD_DRIVER_DWCOTG0_IRQ + * RTEMS_BSD_DRIVER_LPC32XX_OHCI * RTEMS_BSD_DRIVER_DWC_MMC * RTEMS_BSD_DRIVER_MMC * RTEMS_BSD_DRIVER_USB @@ -55,6 +57,7 @@ * RTEMS_BSD_DRIVER_SMC0 * RTEMS_BSD_DRIVER_SMC0_BASE_ADDR * RTEMS_BSD_DRIVER_SMC0_IRQ + * RTEMS_BSD_DRIVER_LPC32XX_LPE * RTEMS_BSD_DRIVER_FEC * RTEMS_BSD_DRIVER_XILINX_ZYNQ_CGEM0 * RTEMS_BSD_DRIVER_CGEM0_IRQ @@ -73,6 +76,7 @@ * * MMI PHY: * RTEMS_BSD_DRIVER_E1000PHY + * RTEMS_BSD_DRIVER_ICSPHY * RTEMS_BSD_DRIVER_REPHY * RTEMS_BSD_DRIVER_MIPHY */ @@ -115,6 +119,23 @@ extern "C" { &zy7_slcr_res[0]) #endif /* RTEMS_BSD_DRIVER_XILINX_ZYNQ_SLCR */ +/* + * LPC32XX Power Control (PWR). + */ +#if !defined(RTEMS_BSD_DRIVER_LPC32XX_PWR) + #define RTEMS_BSD_DRIVER_LPC32XX_PWR \ + static const rtems_bsd_device_resource lpc_pwr0_res[] = { \ + { \ + .type = RTEMS_BSD_RES_MEMORY, \ + .start_request = 0, \ + .start_actual = LPC32XX_BASE_SYSCON \ + } \ + }; \ + RTEMS_BSD_DEFINE_NEXUS_DEVICE_ORDERED(pwr, 0, RTEMS_SYSINIT_ORDER_FIRST, \ + RTEMS_ARRAY_SIZE(lpc_pwr0_res), \ + &lpc_pwr0_res[0]) +#endif /* RTEMS_BSD_DRIVER_LPC32XX_PWR */ + /** ** Physical Buses **/ @@ -155,6 +176,31 @@ extern "C" { #endif /* RTEMS_BSD_DRIVER_DWCOTG0 */ /* + * LPC32XX OHCI. + */ +#if !defined(RTEMS_BSD_DRIVER_LPC32XX_OHCI) + #define RTEMS_BSD_DRIVER_LPC32XX_OHCI \ + static const rtems_bsd_device_resource lpc_ohci0_res[] = { \ + { \ + .type = RTEMS_BSD_RES_MEMORY, \ + .start_request = 0, \ + .start_actual = LPC32XX_BASE_USB \ + }, { \ + .type = RTEMS_BSD_RES_MEMORY, \ + .start_request = 0, \ + .start_actual = (unsigned long)(&LPC32XX_I2C_RX) \ + }, { \ + .type = RTEMS_BSD_RES_IRQ, \ + .start_request = 0, \ + .start_actual = LPC32XX_IRQ_USB_HOST \ + } \ + }; \ + RTEMS_BSD_DEFINE_NEXUS_DEVICE(ohci, 0, \ + RTEMS_ARRAY_SIZE(lpc_ohci0_res), \ + &lpc_ohci0_res[0]) +#endif /* RTEMS_BSD_DRIVER_LPC32XX_OHCI */ + +/* * Designware/Synopsys MMC. */ #if !defined(RTEMS_BSD_DRIVER_DWC_MMC) @@ -214,6 +260,27 @@ extern "C" { #endif /* RTEMS_BSD_DRIVER_SMC */ /* + * LPC32XX LPE driver + */ +#if !defined(RTEMS_BSD_DRIVER_LPC32XX_LPE) + #define RTEMS_BSD_DRIVER_LPC32XX_LPE \ + static const rtems_bsd_device_resource lpc_lpe0_res[] = { \ + { \ + .type = RTEMS_BSD_RES_MEMORY, \ + .start_request = 0, \ + .start_actual = LPC32XX_BASE_ETHERNET \ + }, { \ + .type = RTEMS_BSD_RES_IRQ, \ + .start_request = 0, \ + .start_actual = LPC32XX_IRQ_ETHERNET \ + } \ + }; \ + RTEMS_BSD_DEFINE_NEXUS_DEVICE(lpe, 0, \ + RTEMS_ARRAY_SIZE(lpc_lpe0_res), \ + &lpc_lpe0_res[0]) +#endif /* RTEMS_BSD_DRIVER_LPC32XX_LPE */ + +/* * Coldfire Fast Ethernet Controller (FEC) driver. */ #if !defined(RTEMS_BSD_DRIVER_FEC) @@ -345,6 +412,14 @@ extern "C" { #endif /* RTEMS_BSD_DRIVER_E1000PHY */ /* + * ICS PHY + */ +#if !defined(RTEMS_BSD_DRIVER_ICSPHY) + #define RTEMS_BSD_DRIVER_ICSPHY \ + SYSINIT_DRIVER_REFERENCE(icsphy, miibus); +#endif /* RTEMS_BSD_DRIVER_ICSPHY */ + +/* * Reltek PHY */ #if !defined(RTEMS_BSD_DRIVER_REPHY) diff --git a/rtemsbsd/include/rtems/bsd/local/miidevs.h b/rtemsbsd/include/rtems/bsd/local/miidevs.h index 2199229d..18931b27 100644..100755 --- a/rtemsbsd/include/rtems/bsd/local/miidevs.h +++ b/rtemsbsd/include/rtems/bsd/local/miidevs.h @@ -318,6 +318,8 @@ #define MII_STR_ICS_1892 "ICS1892 10/100 media interface" #define MII_MODEL_ICS_1893 0x0004 #define MII_STR_ICS_1893 "ICS1893 10/100 media interface" +#define MII_MODEL_ICS_1893C 0x0005 +#define MII_STR_ICS_1893C "ICS1893C 10/100 media interface" /* Intel Corporation PHYs */ #define MII_MODEL_xxINTEL_I82553 0x0000 |