summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2016-12-24 22:42:26 +0000
committerkettenis <kettenis@openbsd.org>2016-12-24 22:42:26 +0000
commit9408f5eaf089247a3d3b74a2f66ca24f60eaf73f (patch)
treebb1e5db7cd885ecdc9a638ebc195b8eb1d82cb0e
parentRemove some unused variables that have been removed upstream as well. (diff)
downloadwireguard-openbsd-9408f5eaf089247a3d3b74a2f66ca24f60eaf73f.tar.xz
wireguard-openbsd-9408f5eaf089247a3d3b74a2f66ca24f60eaf73f.zip
Add support for the 2nd sxipio(4) device on the Allwinner H3.
-rw-r--r--sys/arch/armv7/sunxi/sxipio.c10
-rw-r--r--sys/arch/armv7/sunxi/sxipio_pins.h73
-rw-r--r--sys/arch/armv7/sunxi/sxipiovar.h3
3 files changed, 84 insertions, 2 deletions
diff --git a/sys/arch/armv7/sunxi/sxipio.c b/sys/arch/armv7/sunxi/sxipio.c
index 61a4d31d275..7e3540ff699 100644
--- a/sys/arch/armv7/sunxi/sxipio.c
+++ b/sys/arch/armv7/sunxi/sxipio.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sxipio.c,v 1.15 2016/11/08 19:36:41 kettenis Exp $ */
+/* $OpenBSD: sxipio.c,v 1.16 2016/12/24 22:42:26 kettenis Exp $ */
/*
* Copyright (c) 2010 Miodrag Vallat.
* Copyright (c) 2013 Artturi Alm
@@ -29,6 +29,7 @@
#include <dev/gpio/gpiovar.h>
#include <dev/ofw/openfirm.h>
+#include <dev/ofw/ofw_clock.h>
#include <dev/ofw/ofw_gpio.h>
#include <dev/ofw/ofw_pinctrl.h>
#include <dev/ofw/fdt.h>
@@ -140,6 +141,10 @@ struct sxipio_pins sxipio_pins[] = {
sun8i_h3_pins, nitems(sun8i_h3_pins)
},
{
+ "allwinner,sun8i-h3-r-pinctrl",
+ sun8i_h3_r_pins, nitems(sun8i_h3_r_pins)
+ },
+ {
"allwinner,sun9i-a80-pinctrl",
sun9i_a80_pins, nitems(sun9i_a80_pins)
}
@@ -173,6 +178,9 @@ sxipio_attach(struct device *parent, struct device *self, void *aux)
sxipio_sc = sc;
+ clock_enable_all(faa->fa_node);
+ reset_deassert_all(faa->fa_node);
+
for (i = 0; i < nitems(sxipio_pins); i++) {
if (OF_is_compatible(faa->fa_node, sxipio_pins[i].compat)) {
sc->sc_pins = sxipio_pins[i].pins;
diff --git a/sys/arch/armv7/sunxi/sxipio_pins.h b/sys/arch/armv7/sunxi/sxipio_pins.h
index fa2bfc1bf2b..9bbf4187dd9 100644
--- a/sys/arch/armv7/sunxi/sxipio_pins.h
+++ b/sys/arch/armv7/sunxi/sxipio_pins.h
@@ -4070,6 +4070,79 @@ struct sxipio_pin sun8i_h3_pins[] = {
} },
};
+struct sxipio_pin sun8i_h3_r_pins[] = {
+ { SXIPIO_PIN(L, 0), {
+ { "gpio_in", 0 },
+ { "gpio_out", 1 },
+ { "s_twi", 2 },
+ { "irq", 6 },
+ } },
+ { SXIPIO_PIN(L, 1), {
+ { "gpio_in", 0 },
+ { "gpio_out", 1 },
+ { "s_twi", 2 },
+ { "irq", 6 },
+ } },
+ { SXIPIO_PIN(L, 2), {
+ { "gpio_in", 0 },
+ { "gpio_out", 1 },
+ { "s_uart", 2 },
+ { "irq", 6 },
+ } },
+ { SXIPIO_PIN(L, 3), {
+ { "gpio_in", 0 },
+ { "gpio_out", 1 },
+ { "s_uart", 2 },
+ { "irq", 6 },
+ } },
+ { SXIPIO_PIN(L, 4), {
+ { "gpio_in", 0 },
+ { "gpio_out", 1 },
+ { "s_jtag", 2 },
+ { "irq", 6 },
+ } },
+ { SXIPIO_PIN(L, 5), {
+ { "gpio_in", 0 },
+ { "gpio_out", 1 },
+ { "s_jtag", 2 },
+ { "irq", 6 },
+ } },
+ { SXIPIO_PIN(L, 6), {
+ { "gpio_in", 0 },
+ { "gpio_out", 1 },
+ { "s_jtag", 2 },
+ { "irq", 6 },
+ } },
+ { SXIPIO_PIN(L, 7), {
+ { "gpio_in", 0 },
+ { "gpio_out", 1 },
+ { "s_jtag", 2 },
+ { "irq", 6 },
+ } },
+ { SXIPIO_PIN(L, 8), {
+ { "gpio_in", 0 },
+ { "gpio_out", 1 },
+ { "irq", 6 },
+ } },
+ { SXIPIO_PIN(L, 9), {
+ { "gpio_in", 0 },
+ { "gpio_out", 1 },
+ { "irq", 6 },
+ } },
+ { SXIPIO_PIN(L, 10), {
+ { "gpio_in", 0 },
+ { "gpio_out", 1 },
+ { "s_pwm", 2 },
+ { "irq", 6 },
+ } },
+ { SXIPIO_PIN(L, 11), {
+ { "gpio_in", 0 },
+ { "gpio_out", 1 },
+ { "s_cir_rx", 2 },
+ { "irq", 6 },
+ } },
+};
+
struct sxipio_pin sun9i_a80_pins[] = {
{ SXIPIO_PIN(A, 0), {
{ "gpio_in", 0 },
diff --git a/sys/arch/armv7/sunxi/sxipiovar.h b/sys/arch/armv7/sunxi/sxipiovar.h
index 85f79378069..a0261d8906c 100644
--- a/sys/arch/armv7/sunxi/sxipiovar.h
+++ b/sys/arch/armv7/sunxi/sxipiovar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: sxipiovar.h,v 1.4 2016/08/12 16:02:31 kettenis Exp $ */
+/* $OpenBSD: sxipiovar.h,v 1.5 2016/12/24 22:42:26 kettenis Exp $ */
/*
* Copyright (c) 2013 Artturi Alm
*
@@ -37,6 +37,7 @@ struct sxipio_pin {
#define SXIPIO_PORT_G 6
#define SXIPIO_PORT_H 7
#define SXIPIO_PORT_I 8
+#define SXIPIO_PORT_L 0
#define SXIPIO_PIN(port, pin) \
"P" #port #pin, SXIPIO_PORT_ ## port, pin