summaryrefslogtreecommitdiffstats
path: root/sys/arm/freescale
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2014-10-26 02:37:42 +0000
committerian <ian@FreeBSD.org>2014-10-26 02:37:42 +0000
commitbb76782ad5223c85146d716c654dd42221b31d89 (patch)
tree2320d3ef785db9aee92f736cec9154f86bd6418a /sys/arm/freescale
parent3c5c1218bc561a85fe9b3b7f81951076c85915e6 (diff)
downloadFreeBSD-src-bb76782ad5223c85146d716c654dd42221b31d89.zip
FreeBSD-src-bb76782ad5223c85146d716c654dd42221b31d89.tar.gz
MFC r268834, r268835:
o Enable GPIO device driver for i.MX6. It was originally written for i.MX5 and compatible with newer chip. o Extend device tree information o style(9) fixes o Rename gpio driver file.
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.imx63
-rw-r--r--sys/arm/freescale/imx/imx_gpio.c (renamed from sys/arm/freescale/imx/imx51_gpio.c)12
4 files changed, 12 insertions, 7 deletions
diff --git a/sys/arm/freescale/imx/files.imx51 b/sys/arm/freescale/imx/files.imx51
index 2e7128c..faa7ecf 100644
--- a/sys/arm/freescale/imx/files.imx51
+++ b/sys/arm/freescale/imx/files.imx51
@@ -22,7 +22,7 @@ arm/freescale/imx/tzic.c standard
arm/freescale/imx/imx51_iomux.c optional iomux
# GPIO
-arm/freescale/imx/imx51_gpio.c optional gpio
+arm/freescale/imx/imx_gpio.c optional gpio
# Generic Periodic Timer
arm/freescale/imx/imx_gpt.c standard
diff --git a/sys/arm/freescale/imx/files.imx53 b/sys/arm/freescale/imx/files.imx53
index f949c18..ab305e1 100644
--- a/sys/arm/freescale/imx/files.imx53
+++ b/sys/arm/freescale/imx/files.imx53
@@ -25,7 +25,7 @@ arm/freescale/imx/tzic.c standard
arm/freescale/imx/imx51_iomux.c optional iomux
# GPIO
-arm/freescale/imx/imx51_gpio.c optional gpio
+arm/freescale/imx/imx_gpio.c optional gpio
# Generic Periodic Timer
arm/freescale/imx/imx_gpt.c standard
diff --git a/sys/arm/freescale/imx/files.imx6 b/sys/arm/freescale/imx/files.imx6
index 8697f6e..da80a04 100644
--- a/sys/arm/freescale/imx/files.imx6
+++ b/sys/arm/freescale/imx/files.imx6
@@ -26,6 +26,7 @@ arm/freescale/imx/imx6_mp.c optional smp
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
#
# Optional devices.
@@ -50,8 +51,6 @@ arm/freescale/imx/imx6_usbphy.c optional ehci
# Not ready yet...
#
#arm/freescale/imx/imx51_iomux.c optional iomux
-#arm/freescale/imx/imx51_gpio.c optional gpio
#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/imx51_gpio.c b/sys/arm/freescale/imx/imx_gpio.c
index 8c43527..95e24ca 100644
--- a/sys/arm/freescale/imx/imx51_gpio.c
+++ b/sys/arm/freescale/imx/imx_gpio.c
@@ -102,6 +102,13 @@ struct imx51_gpio_softc {
struct gpio_pin gpio_pins[NGPIO];
};
+static struct ofw_compat_data compat_data[] = {
+ {"fsl,imx6q-gpio", 1},
+ {"fsl,imx53-gpio", 1},
+ {"fsl,imx51-gpio", 1},
+ {NULL, 0}
+};
+
static struct resource_spec imx_gpio_spec[] = {
{ SYS_RES_MEMORY, 0, RF_ACTIVE },
{ SYS_RES_IRQ, 0, RF_ACTIVE },
@@ -373,9 +380,8 @@ imx51_gpio_probe(device_t dev)
if (!ofw_bus_status_okay(dev))
return (ENXIO);
- if (ofw_bus_is_compatible(dev, "fsl,imx51-gpio") ||
- ofw_bus_is_compatible(dev, "fsl,imx53-gpio")) {
- device_set_desc(dev, "i.MX515 GPIO Controller");
+ if (ofw_bus_search_compatible(dev, compat_data)->ocd_data != 0) {
+ device_set_desc(dev, "Freescale i.MX GPIO Controller");
return (BUS_PROBE_DEFAULT);
}
OpenPOWER on IntegriCloud