diff options
author | Jonathan Gray <jsg@cvs.openbsd.org> | 2018-08-27 10:17:36 +0000 |
---|---|---|
committer | Jonathan Gray <jsg@cvs.openbsd.org> | 2018-08-27 10:17:36 +0000 |
commit | 2abe2e180bad9b2f6e5b964b63bc85edfb8e3daf (patch) | |
tree | da2739a0f0c03583be9e6b31cf23027a2c35525e /sys/arch/armv7 | |
parent | 67e70a5b9724ed46deea6e20f2f3d6dbf6413e08 (diff) |
ompinmux has been replaced by pinctrl
Diffstat (limited to 'sys/arch/armv7')
-rw-r--r-- | sys/arch/armv7/omap/files.omap | 6 | ||||
-rw-r--r-- | sys/arch/armv7/omap/ompinmux.c | 137 |
2 files changed, 1 insertions, 142 deletions
diff --git a/sys/arch/armv7/omap/files.omap b/sys/arch/armv7/omap/files.omap index 3a900b9e297..77d0a28ab79 100644 --- a/sys/arch/armv7/omap/files.omap +++ b/sys/arch/armv7/omap/files.omap @@ -1,4 +1,4 @@ -# $OpenBSD: files.omap,v 1.22 2018/02/14 23:51:49 jsg Exp $ +# $OpenBSD: files.omap,v 1.23 2018/08/27 10:17:35 jsg Exp $ define omap {} device omap: omap @@ -26,10 +26,6 @@ attach sitaracm at omap file arch/armv7/omap/am335x_cm_padconf.c sitaracm file arch/armv7/omap/sitara_cm.c sitaracm -device ompinmux -attach ompinmux at fdt -file arch/armv7/omap/ompinmux.c ompinmux - device omgpio: gpiobus attach omgpio at fdt file arch/armv7/omap/omgpio.c omgpio diff --git a/sys/arch/armv7/omap/ompinmux.c b/sys/arch/armv7/omap/ompinmux.c deleted file mode 100644 index 55db93c5f2f..00000000000 --- a/sys/arch/armv7/omap/ompinmux.c +++ /dev/null @@ -1,137 +0,0 @@ -/* $OpenBSD: ompinmux.c,v 1.2 2017/09/08 05:36:51 deraadt Exp $ */ -/* - * Copyright (c) 2016 Jonathan Gray <jsg@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 <sys/malloc.h> - -#include <machine/bus.h> -#include <machine/fdt.h> -#include <armv7/armv7/armv7var.h> - -#include <dev/ofw/openfirm.h> -#include <dev/ofw/ofw_pinctrl.h> -#include <dev/ofw/fdt.h> - -struct ompinmux_softc { - struct device sc_dev; - bus_space_tag_t sc_iot; - bus_space_handle_t sc_ioh; - int sc_node; -}; - -int ompinmux_match(struct device *, void *, void *); -void ompinmux_attach(struct device *, struct device *, void *); -int ompinmux_pinctrl(uint32_t, void *); - -struct cfattach ompinmux_ca = { - sizeof (struct ompinmux_softc), ompinmux_match, ompinmux_attach -}; - -struct cfdriver ompinmux_cd = { - NULL, "ompinmux", DV_DULL -}; - -int -ompinmux_match(struct device *parent, void *match, void *aux) -{ - struct fdt_attach_args *faa = aux; - - return OF_is_compatible(faa->fa_node, "pinctrl-single"); -} - -void -ompinmux_attach(struct device *parent, struct device *self, void *aux) -{ - struct fdt_attach_args *faa = aux; - struct ompinmux_softc *sc = (struct ompinmux_softc *) self; - - sc->sc_iot = faa->fa_iot; - if (bus_space_map(sc->sc_iot, faa->fa_reg[0].addr, - faa->fa_reg[0].size, 0, &sc->sc_ioh)) - panic("%s: bus_space_map failed!", __func__); - - sc->sc_node = faa->fa_node; - pinctrl_register(faa->fa_node, ompinmux_pinctrl, sc); - - pinctrl_byname(faa->fa_node, "default"); - - printf("\n"); -} - -int -ompinmux_pinctrl(uint32_t phandle, void *cookie) -{ - struct ompinmux_softc *sc = cookie; - uint32_t *pins; - int npins; - int node; - int len; - int i, j; - int regwidth; - - if (sc == NULL) - return -1; - - node = OF_getnodebyphandle(phandle); - if (node == 0) - return -1; - - len = OF_getproplen(node, "pinctrl-single,pins"); - if (len <= 0) - return -1; - - pins = malloc(len, M_TEMP, M_WAITOK); - OF_getpropintarray(node, "pinctrl-single,pins", pins, len); - npins = len / (2 * sizeof(uint32_t)); - - regwidth = OF_getpropint(sc->sc_node, "pinctrl-single,register-width", - 0); - - if (regwidth == 16) { - uint16_t regmask = OF_getpropint(sc->sc_node, - "pinctrl-single,function-mask", 0xffff); - uint32_t conf_reg; - uint16_t conf_val; - - for (i = 0, j = 0; i < npins; i++, j += 2) { - conf_reg = pins[2 * i + 0]; - - conf_val = (bus_space_read_2(sc->sc_iot, sc->sc_ioh, - conf_reg) & ~regmask) | pins[2 * i + 1]; - bus_space_write_2(sc->sc_iot, sc->sc_ioh, conf_reg, - conf_val); - } - } else if (regwidth == 32) { - uint32_t regmask = OF_getpropint(sc->sc_node, - "pinctrl-single,function-mask", 0xffffffff); - uint32_t conf_reg, conf_val; - - for (i = 0, j = 0; i < npins; i++, j += 2) { - conf_reg = pins[2 * i + 0]; - - conf_val = (bus_space_read_4(sc->sc_iot, sc->sc_ioh, - conf_reg) & ~regmask) | pins[2 * i + 1]; - bus_space_write_4(sc->sc_iot, sc->sc_ioh, conf_reg, - conf_val); - } - } - - free(pins, M_TEMP, len); - return 0; -} |