summaryrefslogtreecommitdiffstats
path: root/rtemsbsd/include
diff options
context:
space:
mode:
authorKevin Kirspel <kevin-kirspel@idexx.com>2017-01-30 11:58:16 -0500
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-02-14 09:40:01 +0100
commit9f2205a3f58014a4998e56731f66354b9e99f86d (patch)
tree5dd663b0c88c191edf4b84d8557782dc4da23f12 /rtemsbsd/include
parentAdding LPC32XX ethernet driver support (diff)
downloadrtems-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.h12
-rwxr-xr-x[-rw-r--r--]rtemsbsd/include/machine/rtems-bsd-nexus-bus.h75
-rwxr-xr-x[-rw-r--r--]rtemsbsd/include/rtems/bsd/local/miidevs.h2
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