On Wed, Aug 23, 2017 at 10:05:18AM -0700, Stephen Graf wrote:
> From the advice from Mark and the further reading that I did, I think I am
> doing the right things.
> 
>  
> 
> I can set the status light from u-boot, but cannot configure the pin in
> OpenBSD.
> 
>  
> 
> The attached console log shows the results of my testing with annotations in
> caps.
> 

Hi,

if you can, i'd like to see the output in dmesg w/diff below,
might provide more clues.

-Artturi


diff --git a/sys/dev/fdt/sxipio.c b/sys/dev/fdt/sxipio.c
index 643226ecd19..40a742171a9 100644
--- a/sys/dev/fdt/sxipio.c
+++ b/sys/dev/fdt/sxipio.c
@@ -447,6 +447,7 @@ sxipio_attach_gpio(struct device *parent)
        int port, pin;
        int cfg, state;
        int i;
+       int m;
 
        for (i = 0; i < sc->sc_npins; i++) {
                /* Skip pins that have no gpio function. */
@@ -461,6 +462,15 @@ sxipio_attach_gpio(struct device *parent)
                reg = SXIREAD4(sc, SXIPIO_CFG(port, pin));
                cfg = (reg >> (pin & 0x7)) & 0x7;
 
+               for (m = 0; m < 8; m++)
+                       if (sc->sc_pins[i].funcs[m].mux == cfg)
+                               break;
+
+               printf("%c%d mux %d<%s>%s", 'A' + (u_int)sc->sc_pins[i].port,
+                   sc->sc_pins[i].pin, cfg,
+                   m >= 8 ? "invalid" : sc->sc_pins[i].funcs[m].name,
+                   cfg < 2 ? "- adding\n" : "- skipping\n");
+
                /* Skip pins that have been assigned other functions. */
                if (cfg != SXIPIO_GPIO_IN && cfg != SXIPIO_GPIO_OUT)
                        continue;

Reply via email to