On Mon, Aug 29, 2016 at 12:24 PM, Russell King <rmk+kernel@xxxxxxxxxxxxxxx> wrote: > Switch to using the gpiod_* consumer API rather than the legacy API. > > Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxx> (...) > +int soc_pcmcia_request_gpiods(struct soc_pcmcia_socket *skt) > +{ > + int i; > + > + for (i = 0; i < ARRAY_SIZE(skt->stat); i++) { > + struct gpio_desc *desc; > + Here I inserted: /* Skip over unnamed GPIOs, assume unused */ if (!skt->stat[i].name) continue; to get it working again on h3600. > + desc = gpiod_get(skt->socket.dev.parent, > + skt->stat[i].name, GPIOD_IN); > + if (IS_ERR(desc)) { > + dev_err(skt->socket.dev.parent, > + "Failed to get GPIO for %s: %ld\n", > + skt->stat[i].name, PTR_ERR(desc)); > + __soc_pcmcia_hw_shutdown(skt, i); > + return PTR_ERR(desc); > + } It bugs out for me on the legacy h3600, since it only defines two of these pins not all of the ARRAY_SIZE(skt->stat) pins will succeed and we get an error message like this: sa11x0-pcmcia sa11x0-pcmcia: Failed to get GPIO for (null): -2 sa11x0-pcmcia: probe of sa11x0-pcmcia failed with error -2 With the patch above it goes away and the log is silent. The debugfs gpio file looks like this: cat gpio gpiochip0: GPIOs 0-27, gpio: gpio-0 ( |Power Button ) in hi gpio-10 ( |pcmcia1-detect ) in hi gpio-11 ( |pcmcia1-ready ) in hi gpio-17 ( |pcmcia0-detect ) in hi gpio-18 ( |Action button ) in hi gpio-21 ( |pcmcia0-ready ) in hi gpio-23 ( |dcd ) in hi gpio-25 ( |cts ) in lo gpio-26 ( |rts ) out lo gpiochip1: GPIOs 28-43, parent: platform/htc-egpio, htc-egpio: gpio-28 ( |Flash Vpp ) out lo gpio-29 ( |PCMCIA CARD RESET ) out lo gpio-30 ( |OPT RESET ) out lo gpio-32 ( |OPT NVRAM ON ) out lo gpio-33 ( |OPT ON ) out lo gpio-34 ( |LCD power ) out lo gpio-36 ( |LCD control ) out lo gpio-42 ( |LCD 5v ) out lo gpio-43 ( |LCD 9v/-6.5v ) out lo Which seems like before the patch series. I still suspect the PCMCIA is not really working but I have limited experience of the bus so I don't really know how to test it deeply or have my PCMCIA ethernet or harddrive probe properly. There are no regressions however, so with something like the above patch applied: Tested-by: Linus Walleij <linus.walleij@xxxxxxxxxx> For the whole patch series on H3600. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html