From 66cdcc9f3061c22543162542cd734201f1de72a8 Mon Sep 17 00:00:00 2001 From: zbb Date: Wed, 20 Jan 2016 14:21:06 +0000 Subject: Add support for I2C on Armada38x Extend driver's compatible strings' table and enable I2C compilation in kernconf. Reviewed by: andrew, ian Obtained from: Semihalf Sponsored by: Stormshield Submitted by: Jan Dabros Differential revision: https://reviews.freebsd.org/D4422 --- sys/arm/conf/ARMADA38X | 4 ++++ sys/arm/mv/twsi.c | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/sys/arm/conf/ARMADA38X b/sys/arm/conf/ARMADA38X index 7cd70da..663c57d 100644 --- a/sys/arm/conf/ARMADA38X +++ b/sys/arm/conf/ARMADA38X @@ -72,6 +72,10 @@ device scbus device pass device da +# I2C +device iic +device iicbus + #FDT options FDT options FDT_DTB_STATIC diff --git a/sys/arm/mv/twsi.c b/sys/arm/mv/twsi.c index fa6f5d7..dfd0243 100644 --- a/sys/arm/mv/twsi.c +++ b/sys/arm/mv/twsi.c @@ -141,6 +141,12 @@ static struct resource_spec res_spec[] = { { -1, 0 } }; +static struct ofw_compat_data compat_data[] = { + { "mrvl,twsi", true }, + { "marvell,mv64xxx-i2c", true }, + { NULL, false } +}; + static device_method_t mv_twsi_methods[] = { /* device interface */ DEVMETHOD(device_probe, mv_twsi_probe), @@ -308,7 +314,7 @@ mv_twsi_probe(device_t dev) if (!ofw_bus_status_okay(dev)) return (ENXIO); - if (!ofw_bus_is_compatible(dev, "mrvl,twsi")) + if (!ofw_bus_search_compatible(dev, compat_data)->ocd_data) return (ENXIO); device_set_desc(dev, "Marvell Integrated I2C Bus Controller"); -- cgit v1.1