summaryrefslogtreecommitdiff
path: root/sys/arch/armv7
diff options
context:
space:
mode:
authorJonathan Gray <jsg@cvs.openbsd.org>2018-08-27 10:17:36 +0000
committerJonathan Gray <jsg@cvs.openbsd.org>2018-08-27 10:17:36 +0000
commit2abe2e180bad9b2f6e5b964b63bc85edfb8e3daf (patch)
treeda2739a0f0c03583be9e6b31cf23027a2c35525e /sys/arch/armv7
parent67e70a5b9724ed46deea6e20f2f3d6dbf6413e08 (diff)
ompinmux has been replaced by pinctrl
Diffstat (limited to 'sys/arch/armv7')
-rw-r--r--sys/arch/armv7/omap/files.omap6
-rw-r--r--sys/arch/armv7/omap/ompinmux.c137
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;
-}