summaryrefslogtreecommitdiffstats
path: root/sys/arm/freescale/imx
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2014-02-02 19:17:28 +0000
committerian <ian@FreeBSD.org>2014-02-02 19:17:28 +0000
commit71d90c04a87e5d83dd12a18e730bf5a49659d712 (patch)
treef7a07f25a40a264286f85b60ecb1346dd35ef91b /sys/arm/freescale/imx
parent34475ded0642e033e494961693b123591dd96ff8 (diff)
downloadFreeBSD-src-71d90c04a87e5d83dd12a18e730bf5a49659d712.zip
FreeBSD-src-71d90c04a87e5d83dd12a18e730bf5a49659d712.tar.gz
Follow r261352 by updating all drivers which are children of simplebus
to check the status property in their probe routines. Simplebus used to only instantiate its children whose status="okay" but that was improper behavior, fixed in r261352. Now that it doesn't check anymore and probes all its children; the children all have to do the check because really only the children know how to properly interpret their status property strings. Right now all existing drivers only understand "okay" versus something- that's-not-okay, so they all use the new ofw_bus_status_okay() helper.
Diffstat (limited to 'sys/arm/freescale/imx')
-rw-r--r--sys/arm/freescale/imx/i2c.c3
-rw-r--r--sys/arm/freescale/imx/imx51_ccm.c3
-rw-r--r--sys/arm/freescale/imx/imx51_gpio.c3
-rw-r--r--sys/arm/freescale/imx/imx51_iomux.c3
-rw-r--r--sys/arm/freescale/imx/imx51_ipuv3.c3
-rw-r--r--sys/arm/freescale/imx/imx51_ipuv3_fbd.c3
-rw-r--r--sys/arm/freescale/imx/imx6_anatop.c3
-rw-r--r--sys/arm/freescale/imx/imx6_ccm.c3
-rw-r--r--sys/arm/freescale/imx/imx6_usbphy.c3
-rw-r--r--sys/arm/freescale/imx/imx_gpt.c3
-rw-r--r--sys/arm/freescale/imx/imx_nop_usbphy.c3
-rw-r--r--sys/arm/freescale/imx/imx_sdhci.c3
-rw-r--r--sys/arm/freescale/imx/imx_wdog.c3
-rw-r--r--sys/arm/freescale/imx/tzic.c4
14 files changed, 43 insertions, 0 deletions
diff --git a/sys/arm/freescale/imx/i2c.c b/sys/arm/freescale/imx/i2c.c
index a452c6d..dd74a7d 100644
--- a/sys/arm/freescale/imx/i2c.c
+++ b/sys/arm/freescale/imx/i2c.c
@@ -224,6 +224,9 @@ i2c_probe(device_t dev)
{
struct i2c_softc *sc;
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
if (!ofw_bus_is_compatible(dev, "fsl,imx-i2c"))
return (ENXIO);
diff --git a/sys/arm/freescale/imx/imx51_ccm.c b/sys/arm/freescale/imx/imx51_ccm.c
index 86cf87a..61fdfdc 100644
--- a/sys/arm/freescale/imx/imx51_ccm.c
+++ b/sys/arm/freescale/imx/imx51_ccm.c
@@ -141,6 +141,9 @@ static int
imxccm_match(device_t dev)
{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
if (!ofw_bus_is_compatible(dev, "fsl,imx51-ccm") &&
!ofw_bus_is_compatible(dev, "fsl,imx53-ccm"))
return (ENXIO);
diff --git a/sys/arm/freescale/imx/imx51_gpio.c b/sys/arm/freescale/imx/imx51_gpio.c
index f9890a8..1c1eed1 100644
--- a/sys/arm/freescale/imx/imx51_gpio.c
+++ b/sys/arm/freescale/imx/imx51_gpio.c
@@ -370,6 +370,9 @@ static int
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");
diff --git a/sys/arm/freescale/imx/imx51_iomux.c b/sys/arm/freescale/imx/imx51_iomux.c
index 5096f2c..18738a1 100644
--- a/sys/arm/freescale/imx/imx51_iomux.c
+++ b/sys/arm/freescale/imx/imx51_iomux.c
@@ -106,6 +106,9 @@ static int
iomux_probe(device_t dev)
{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
if (!ofw_bus_is_compatible(dev, "fsl,imx51-iomux") &&
!ofw_bus_is_compatible(dev, "fsl,imx53-iomux"))
return (ENXIO);
diff --git a/sys/arm/freescale/imx/imx51_ipuv3.c b/sys/arm/freescale/imx/imx51_ipuv3.c
index a7781f3..c86b7aa 100644
--- a/sys/arm/freescale/imx/imx51_ipuv3.c
+++ b/sys/arm/freescale/imx/imx51_ipuv3.c
@@ -254,6 +254,9 @@ ipu3_fb_probe(device_t dev)
{
int error;
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
if (!ofw_bus_is_compatible(dev, "fsl,ipu3"))
return (ENXIO);
diff --git a/sys/arm/freescale/imx/imx51_ipuv3_fbd.c b/sys/arm/freescale/imx/imx51_ipuv3_fbd.c
index 8756ba3..3bb7218 100644
--- a/sys/arm/freescale/imx/imx51_ipuv3_fbd.c
+++ b/sys/arm/freescale/imx/imx51_ipuv3_fbd.c
@@ -184,6 +184,9 @@ static int
ipu3_fb_probe(device_t dev)
{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
if (!ofw_bus_is_compatible(dev, "fsl,ipu3"))
return (ENXIO);
diff --git a/sys/arm/freescale/imx/imx6_anatop.c b/sys/arm/freescale/imx/imx6_anatop.c
index d50bab2..893fb18 100644
--- a/sys/arm/freescale/imx/imx6_anatop.c
+++ b/sys/arm/freescale/imx/imx6_anatop.c
@@ -126,6 +126,9 @@ static int
imx6_anatop_probe(device_t dev)
{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
if (ofw_bus_is_compatible(dev, "fsl,imx6q-anatop") == 0)
return (ENXIO);
diff --git a/sys/arm/freescale/imx/imx6_ccm.c b/sys/arm/freescale/imx/imx6_ccm.c
index 0f1c610..e42335a 100644
--- a/sys/arm/freescale/imx/imx6_ccm.c
+++ b/sys/arm/freescale/imx/imx6_ccm.c
@@ -121,6 +121,9 @@ static int
ccm_probe(device_t dev)
{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
if (ofw_bus_is_compatible(dev, "fsl,imx6q-ccm") == 0)
return (ENXIO);
diff --git a/sys/arm/freescale/imx/imx6_usbphy.c b/sys/arm/freescale/imx/imx6_usbphy.c
index a184190..7f3e362 100644
--- a/sys/arm/freescale/imx/imx6_usbphy.c
+++ b/sys/arm/freescale/imx/imx6_usbphy.c
@@ -160,6 +160,9 @@ static int
usbphy_probe(device_t dev)
{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
if (ofw_bus_is_compatible(dev, "fsl,imx6q-usbphy") == 0)
return (ENXIO);
diff --git a/sys/arm/freescale/imx/imx_gpt.c b/sys/arm/freescale/imx/imx_gpt.c
index 9b4f6a5..0e32bc9 100644
--- a/sys/arm/freescale/imx/imx_gpt.c
+++ b/sys/arm/freescale/imx/imx_gpt.c
@@ -121,6 +121,9 @@ static int
imx_gpt_probe(device_t dev)
{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
if (ofw_bus_search_compatible(dev, compat_data)->ocd_data != 0) {
device_set_desc(dev, "Freescale i.MX GPT timer");
return (BUS_PROBE_DEFAULT);
diff --git a/sys/arm/freescale/imx/imx_nop_usbphy.c b/sys/arm/freescale/imx/imx_nop_usbphy.c
index 50d9f59..38473dd 100644
--- a/sys/arm/freescale/imx/imx_nop_usbphy.c
+++ b/sys/arm/freescale/imx/imx_nop_usbphy.c
@@ -89,6 +89,9 @@ static int
usbphy_probe(device_t dev)
{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
if (ofw_bus_search_compatible(dev, compat_data)->ocd_data != 0) {
device_set_desc(dev, "Freescale USB PHY");
return (BUS_PROBE_DEFAULT);
diff --git a/sys/arm/freescale/imx/imx_sdhci.c b/sys/arm/freescale/imx/imx_sdhci.c
index ff30d14..baa9162 100644
--- a/sys/arm/freescale/imx/imx_sdhci.c
+++ b/sys/arm/freescale/imx/imx_sdhci.c
@@ -643,6 +643,9 @@ static int
imx_sdhci_probe(device_t dev)
{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
switch (ofw_bus_search_compatible(dev, compat_data)->ocd_data) {
case HWTYPE_ESDHC:
device_set_desc(dev, "Freescale eSDHC controller");
diff --git a/sys/arm/freescale/imx/imx_wdog.c b/sys/arm/freescale/imx/imx_wdog.c
index 02c454e..cadd1d7 100644
--- a/sys/arm/freescale/imx/imx_wdog.c
+++ b/sys/arm/freescale/imx/imx_wdog.c
@@ -130,6 +130,9 @@ static int
imx_wdog_probe(device_t dev)
{
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
if (!ofw_bus_is_compatible(dev, "fsl,imx51-wdt") &&
!ofw_bus_is_compatible(dev, "fsl,imx53-wdt"))
return (ENXIO);
diff --git a/sys/arm/freescale/imx/tzic.c b/sys/arm/freescale/imx/tzic.c
index b1a3b07..39548dc 100644
--- a/sys/arm/freescale/imx/tzic.c
+++ b/sys/arm/freescale/imx/tzic.c
@@ -76,6 +76,10 @@ static void tzic_post_filter(void *);
static int
tzic_probe(device_t dev)
{
+
+ if (!ofw_bus_status_okay(dev))
+ return (ENXIO);
+
if (ofw_bus_is_compatible(dev, "fsl,tzic")) {
device_set_desc(dev, "TrustZone Interrupt Controller");
return (BUS_PROBE_DEFAULT);
OpenPOWER on IntegriCloud