summaryrefslogtreecommitdiffstats
path: root/sys/arm/freescale
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2014-10-26 02:40:34 +0000
committerian <ian@FreeBSD.org>2014-10-26 02:40:34 +0000
commitcaa088c379958ba1cd5c02da066c5f02c197d10d (patch)
tree251225b22c9a8749f0da1a520916ab64506f2f39 /sys/arm/freescale
parentbb76782ad5223c85146d716c654dd42221b31d89 (diff)
downloadFreeBSD-src-caa088c379958ba1cd5c02da066c5f02c197d10d.zip
FreeBSD-src-caa088c379958ba1cd5c02da066c5f02c197d10d.tar.gz
MFC r268973, r268977: Rename i.MX I2C driver file, enable it on imx6.
Diffstat (limited to 'sys/arm/freescale')
-rw-r--r--sys/arm/freescale/imx/files.imx512
-rw-r--r--sys/arm/freescale/imx/files.imx532
-rw-r--r--sys/arm/freescale/imx/files.imx62
-rw-r--r--sys/arm/freescale/imx/imx_i2c.c (renamed from sys/arm/freescale/imx/i2c.c)10
-rw-r--r--sys/arm/freescale/vybrid/vf_i2c.c2
5 files changed, 12 insertions, 6 deletions
diff --git a/sys/arm/freescale/imx/files.imx51 b/sys/arm/freescale/imx/files.imx51
index faa7ecf..60e7e2a 100644
--- a/sys/arm/freescale/imx/files.imx51
+++ b/sys/arm/freescale/imx/files.imx51
@@ -44,7 +44,7 @@ dev/usb/controller/ehci_imx.c optional ehci
arm/freescale/imx/imx_wdog.c optional imxwdt
# i2c
-arm/freescale/imx/i2c.c optional fsliic
+arm/freescale/imx/imx_i2c.c optional fsliic
# IPU - Image Processing Unit (frame buffer also)
arm/freescale/imx/imx51_ipuv3.c optional sc
diff --git a/sys/arm/freescale/imx/files.imx53 b/sys/arm/freescale/imx/files.imx53
index ab305e1..401cd5d 100644
--- a/sys/arm/freescale/imx/files.imx53
+++ b/sys/arm/freescale/imx/files.imx53
@@ -47,7 +47,7 @@ dev/usb/controller/ehci_imx.c optional ehci
arm/freescale/imx/imx_wdog.c optional imxwdt
# i2c
-arm/freescale/imx/i2c.c optional fsliic
+arm/freescale/imx/imx_i2c.c optional fsliic
# IPU - Image Processing Unit (frame buffer also)
arm/freescale/imx/imx51_ipuv3.c optional sc
diff --git a/sys/arm/freescale/imx/files.imx6 b/sys/arm/freescale/imx/files.imx6
index da80a04..6d2f066 100644
--- a/sys/arm/freescale/imx/files.imx6
+++ b/sys/arm/freescale/imx/files.imx6
@@ -27,6 +27,7 @@ arm/freescale/imx/imx6_pl310.c standard
arm/freescale/imx/imx_machdep.c standard
arm/freescale/imx/imx_gpt.c standard
arm/freescale/imx/imx_gpio.c optional gpio
+arm/freescale/imx/imx_i2c.c optional fsliic
#
# Optional devices.
@@ -52,5 +53,4 @@ arm/freescale/imx/imx6_usbphy.c optional ehci
#
#arm/freescale/imx/imx51_iomux.c optional iomux
#dev/ata/chipsets/ata-fsl.c optional imxata
-#arm/freescale/imx/i2c.c optional fsliic
#arm/freescale/imx/imx51_ipuv3.c optional sc
diff --git a/sys/arm/freescale/imx/i2c.c b/sys/arm/freescale/imx/imx_i2c.c
index dd74a7d..3c192ea 100644
--- a/sys/arm/freescale/imx/i2c.c
+++ b/sys/arm/freescale/imx/imx_i2c.c
@@ -86,6 +86,12 @@ __FBSDID("$FreeBSD$");
#define debugf(fmt, args...)
#endif
+static struct ofw_compat_data compat_data[] = {
+ {"fsl,imx6q-i2c", 1},
+ {"fsl,imx-i2c", 1},
+ {NULL, 0}
+};
+
struct i2c_softc {
device_t dev;
device_t iicbus;
@@ -227,7 +233,7 @@ i2c_probe(device_t dev)
if (!ofw_bus_status_okay(dev))
return (ENXIO);
- if (!ofw_bus_is_compatible(dev, "fsl,imx-i2c"))
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0)
return (ENXIO);
sc = device_get_softc(dev);
@@ -246,7 +252,7 @@ i2c_probe(device_t dev)
/* Enable I2C */
i2c_write_reg(sc, I2C_CONTROL_REG, I2CCR_MEN);
bus_release_resource(dev, SYS_RES_MEMORY, sc->rid, sc->res);
- device_set_desc(dev, "I2C bus controller");
+ device_set_desc(dev, "Freescale i.MX I2C bus controller");
return (BUS_PROBE_DEFAULT);
}
diff --git a/sys/arm/freescale/vybrid/vf_i2c.c b/sys/arm/freescale/vybrid/vf_i2c.c
index 67254b4..2eb6726 100644
--- a/sys/arm/freescale/vybrid/vf_i2c.c
+++ b/sys/arm/freescale/vybrid/vf_i2c.c
@@ -30,7 +30,7 @@
*/
/*
- * This driver is based on the I2C driver for IMX (imx/i2c.c).
+ * This driver is based on the I2C driver for i.MX
*/
#include <sys/cdefs.h>
OpenPOWER on IntegriCloud