Add TWI attachment for FDT. We're only matching the SAMG20 device for
now, others to follow.
This commit is contained in:
parent
bf5c70c929
commit
3526a97bba
@ -23,6 +23,8 @@
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "opt_platform.h"
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__FBSDID("$FreeBSD$");
|
||||
|
||||
@ -46,6 +48,12 @@ __FBSDID("$FreeBSD$");
|
||||
#include <dev/iicbus/iicbus.h>
|
||||
#include "iicbus_if.h"
|
||||
|
||||
#ifdef FDT
|
||||
#include <dev/fdt/fdt_common.h>
|
||||
#include <dev/ofw/ofw_bus.h>
|
||||
#include <dev/ofw/ofw_bus_subr.h>
|
||||
#endif
|
||||
|
||||
#define TWI_SLOW_CLOCK 1500
|
||||
#define TWI_FAST_CLOCK 45000
|
||||
#define TWI_FASTEST_CLOCK 90000
|
||||
@ -104,7 +112,11 @@ static void at91_twi_deactivate(device_t dev);
|
||||
static int
|
||||
at91_twi_probe(device_t dev)
|
||||
{
|
||||
|
||||
#ifdef FDT
|
||||
/* XXXX need a whole list, since there's at least 4 different ones */
|
||||
if (!ofw_bus_is_compatible(dev, "atmel,at91sam9g20-i2c"))
|
||||
return (ENXIO);
|
||||
#endif
|
||||
device_set_desc(dev, "TWI");
|
||||
return (0);
|
||||
}
|
||||
@ -397,7 +409,12 @@ static driver_t at91_twi_driver = {
|
||||
sizeof(struct at91_twi_softc),
|
||||
};
|
||||
|
||||
#ifdef FDT
|
||||
DRIVER_MODULE(at91_twi, simplebus, at91_twi_driver, at91_twi_devclass, NULL,
|
||||
NULL);
|
||||
#else
|
||||
DRIVER_MODULE(at91_twi, atmelarm, at91_twi_driver, at91_twi_devclass, NULL,
|
||||
NULL);
|
||||
#endif
|
||||
DRIVER_MODULE(iicbus, at91_twi, iicbus_driver, iicbus_devclass, NULL, NULL);
|
||||
MODULE_DEPEND(at91_twi, iicbus, 1, 1, 1);
|
||||
|
Loading…
Reference in New Issue
Block a user