diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2017-03-10 12:05:29 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2017-03-10 12:05:29 +0000 |
commit | f74395632cae1683e8f851b8c05a5e7621fd64e2 (patch) | |
tree | 96e0233a5aeffc96c540278c0ef0d04eaae32b2a /sys/arch | |
parent | 863f5e679091d5af40787f5863a9f61b84db11c5 (diff) |
Add glue to attach xhci(4) on exynos.
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/armv7/exynos/exdwusb.c | 60 | ||||
-rw-r--r-- | sys/arch/armv7/exynos/files.exynos | 6 |
2 files changed, 65 insertions, 1 deletions
diff --git a/sys/arch/armv7/exynos/exdwusb.c b/sys/arch/armv7/exynos/exdwusb.c new file mode 100644 index 00000000000..7d7af005c1a --- /dev/null +++ b/sys/arch/armv7/exynos/exdwusb.c @@ -0,0 +1,60 @@ +/* $OpenBSD: exdwusb.c,v 1.1 2017/03/10 12:05:28 kettenis Exp $ */ +/* + * Copyright (c) 2017 Mark kettenis <kettenis@openbsd.org> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include <sys/param.h> +#include <sys/systm.h> +#include <sys/device.h> + +#include <machine/bus.h> +#include <machine/fdt.h> + +#include <arm/simplebus/simplebusvar.h> + +#include <dev/ofw/openfirm.h> +#include <dev/ofw/fdt.h> + +struct exdwusb_softc { + struct simplebus_softc sc_sbus; +}; + +int exdwusb_match(struct device *, void *, void *); +void exdwusb_attach(struct device *, struct device *, void *); + +struct cfattach exdwusb_ca = { + sizeof(struct exdwusb_softc), exdwusb_match, exdwusb_attach +}; + +struct cfdriver exdwusb_cd = { + NULL, "exdwusb", DV_DULL +}; + +int +exdwusb_match(struct device *parent, void *match, void *aux) +{ + struct fdt_attach_args *faa = aux; + + return OF_is_compatible(faa->fa_node, "samsung,exynos5250-dwusb3"); +} + +void +exdwusb_attach(struct device *parent, struct device *self, void *aux) +{ + struct exdwusb_softc *sc = (struct exdwusb_softc *)self; + struct fdt_attach_args *faa = aux; + + simplebus_attach(parent, &sc->sc_sbus.sc_dev, faa); +} diff --git a/sys/arch/armv7/exynos/files.exynos b/sys/arch/armv7/exynos/files.exynos index 1f7de043ec2..ea8651d7598 100644 --- a/sys/arch/armv7/exynos/files.exynos +++ b/sys/arch/armv7/exynos/files.exynos @@ -1,4 +1,4 @@ -# $OpenBSD: files.exynos,v 1.9 2017/03/06 07:41:58 kettenis Exp $ +# $OpenBSD: files.exynos,v 1.10 2017/03/10 12:05:28 kettenis Exp $ # serial ports device exuart @@ -45,6 +45,10 @@ device exesdhc: sdmmcbus attach exesdhc at fdt file arch/armv7/exynos/exesdhc.c exesdhc +device exdwusb: fdt +attach exdwusb at fdt +file arch/armv7/exynos/exdwusb.c exdwusb + device crosec: wskbddev attach crosec at i2c file arch/armv7/exynos/crosec.c crosec |