Re: [PATCH 10/33] pcmcia: soc_common: switch to using gpio_descs
On Mon, Aug 29, 2016 at 12:24 PM, Russell King <rmk+ker...@armlinux.org.uk> wrote: > Switch to using the gpiod_* consumer API rather than the legacy API. > > Signed-off-by: Russell King <rmk+ker...@armlinux.org.uk> (...) > +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.wall...@linaro.org> For the whole patch series on H3600. Yours, Linus Walleij ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
Re: [PATCH 18/33] pcmcia: sa1100: provide generic CF support
On Wed, Sep 14, 2016 at 11:06 AM, Russell King - ARM Linux <li...@armlinux.org.uk> wrote: > Thanks, I've included a change there, should be part of the branch by > the time you get this email - sa1100 head should be 9ad0f8181616. If > not, it's probably still being pushed out over my slow 'net link. Thanks, fetched it and tested, this fix is there things work so far. >> (It revealed another bug in fetching GPIOs but it is an orthogobal >> problem altogether, looking into it.) > > If you're referring to the generic sa1100 pcmcia code, there's a fix > for that already in my branch. Unfortunately not, the bug is still there, I'll point it out in the relevant patch, just need to do a boot test. Yours, Linus Walleij ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
Re: [PATCH 05/33] gpio: add generic single-register fixed-direction GPIO driver
On Thu, Sep 8, 2016 at 3:21 PM, Linus Walleij <linus.wall...@linaro.org> wrote: > On Mon, Sep 5, 2016 at 2:26 PM, Russell King - ARM Linux > <li...@armlinux.org.uk> wrote: >> On Mon, Sep 05, 2016 at 11:06:28AM +0200, Linus Walleij wrote: >>> I couldn't resist testing on the Compaq iPAQ h3600. It works the >>> same as before so: >>> Tested-by: Linus Walleij <linus.wall...@linaro.org> [for Compaq iPAQ H3600] >> >> Great news. I've been thinking about digging out my h3600, but it's >> very old, and hasn't been turned on for many years. I'm not sure what >> state it's in. >> >> I've been hoping to try booting some kernels with qemu-system-arm, but >> so far I've completely failed to get qemu-system-arm to do anything >> useful - it just sits there doing apparently nothing, irrespective of >> which platform I choose or which kernel I give it. >> >>> The only news in the bootlog is this: >>> sa11x0-pcmcia: probe of sa11x0-pcmcia failed with error -2 >> >> Not so great news - that's -ENOENT. Did that happen before these >> changes? That could be that the gpiod lookup table isn't found. >> However, if that were the case, I'd have expected an error message >> along the lines of: >> >> Failed to get GPIO for xxx: -nnn >> >> from soc_pcmcia_request_gpiods(). The other possibility is that >> we're not getting to sa11x0_drv_pcmcia_legacy_probe() but instead >> trying to initialise it as a generic sa11x0 socket, and >> sa11x0_pcmcia_hw_init() is failing as a result. >> >> We should be using the legacy probe on H3600, so sa11x0_pcmcia_hw_init() >> should never be reached. > > However that is what happens, this is my callstack after > adding some prints: > > sa11x0_pcmcia_init > sa11x0_drv_pcmcia_probe > soc_pcmcia_init_one > soc_pcmcia_add_one > soc_pcmcia_hw_init > sa11x0_pcmcia_hw_init > soc_pcmcia_add_one: pcmcia HW init failed > sa11x0-pcmcia: probe of sa11x0-pcmcia failed with error -2 Bah I found the cause, just a simple oneliner typo in one of the patches. I will comment on the patch in question so you can fix it up on your branch. Yours, Linus Walleij ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
Re: [PATCH 18/33] pcmcia: sa1100: provide generic CF support
On Mon, Aug 29, 2016 at 12:25 PM, Russell King <rmk+ker...@armlinux.org.uk> wrote: > Provide generic non-voltage sensing socket support for StrongARM > platforms using the gpiolib and regulator subsystems to obtain the > resources to control the socket. > > Signed-off-by: Russell King <rmk+ker...@armlinux.org.uk> (...) > +static int sa11x0_drv_pcmcia_probe(struct platform_device *pdev) > +{ > + struct soc_pcmcia_socket *skt; > + struct device *dev = >dev; > + > + if (dev->id == -1) > + return sa11x0_drv_pcmcia_legacy_probe(pdev); There is a typo there, it should be pdev->id rather than dev->id. After fixing this, my legacy h3600 PCMCIA started probing again. (It revealed another bug in fetching GPIOs but it is an orthogobal problem altogether, looking into it.) Yours, Linus Walleij ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
Re: [PATCH 05/33] gpio: add generic single-register fixed-direction GPIO driver
On Mon, Sep 5, 2016 at 2:26 PM, Russell King - ARM Linux <li...@armlinux.org.uk> wrote: > On Mon, Sep 05, 2016 at 11:06:28AM +0200, Linus Walleij wrote: >> I couldn't resist testing on the Compaq iPAQ h3600. It works the >> same as before so: >> Tested-by: Linus Walleij <linus.wall...@linaro.org> [for Compaq iPAQ H3600] > > Great news. I've been thinking about digging out my h3600, but it's > very old, and hasn't been turned on for many years. I'm not sure what > state it's in. > > I've been hoping to try booting some kernels with qemu-system-arm, but > so far I've completely failed to get qemu-system-arm to do anything > useful - it just sits there doing apparently nothing, irrespective of > which platform I choose or which kernel I give it. > >> The only news in the bootlog is this: >> sa11x0-pcmcia: probe of sa11x0-pcmcia failed with error -2 > > Not so great news - that's -ENOENT. Did that happen before these > changes? That could be that the gpiod lookup table isn't found. > However, if that were the case, I'd have expected an error message > along the lines of: > > Failed to get GPIO for xxx: -nnn > > from soc_pcmcia_request_gpiods(). The other possibility is that > we're not getting to sa11x0_drv_pcmcia_legacy_probe() but instead > trying to initialise it as a generic sa11x0 socket, and > sa11x0_pcmcia_hw_init() is failing as a result. > > We should be using the legacy probe on H3600, so sa11x0_pcmcia_hw_init() > should never be reached. However that is what happens, this is my callstack after adding some prints: sa11x0_pcmcia_init sa11x0_drv_pcmcia_probe soc_pcmcia_init_one soc_pcmcia_add_one soc_pcmcia_hw_init sa11x0_pcmcia_hw_init soc_pcmcia_add_one: pcmcia HW init failed sa11x0-pcmcia: probe of sa11x0-pcmcia failed with error -2 It bails out when trying to get the "reset" gpio. I'm trying to figure out how this can happen. On the plus side: this minor snag is all the problems I have. All other GPIOs work exactly as they should. Yours, Linus Walleij ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
Re: [PATCH 01/33] gpio: sa1100: fix irq probing for ucb1x00
On Mon, Aug 29, 2016 at 12:24 PM, Russell King <rmk+ker...@armlinux.org.uk> wrote: > ucb1x00 has used IRQ probing since it's dawn to find the GPIO interrupt > that it's connected to. However, commit 23393d49fb75 ("gpio: kill off > set_irq_flags usage") broke this by disabling IRQ probing on GPIO > interrupts. Fix this. > > Fixes: 23393d49fb75 ("gpio: kill off set_irq_flags usage") > Signed-off-by: Russell King <rmk+ker...@armlinux.org.uk> Patch applied per Russell's request. Trying to get this tested and upstream ASAP. Yours, Linus Walleij ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
Re: [PATCH 05/33] gpio: add generic single-register fixed-direction GPIO driver
On Wed, Aug 31, 2016 at 10:49 AM, Russell King - ARM Linux <li...@armlinux.org.uk> wrote: > git://git.armlinux.org.uk/~rmk/linux-arm.git sa1100 > > It would be great to have this tested on Lubbock, and get the PCMCIA > issues fixed. Maybe we can look at converting mainstone as well? I couldn't resist testing on the Compaq iPAQ h3600. It works the same as before so: Tested-by: Linus Walleij <linus.wall...@linaro.org> [for Compaq iPAQ H3600] The only news in the bootlog is this: sa11x0-pcmcia: probe of sa11x0-pcmcia failed with error -2 This device does have a PCMCIA "sleeve" where I slotted in an ethernet card at one time to see if I could network this thing. But I never got the PCMCIA working. Now it seems like I could actually start looking into that as the driver gives its first sign of life. I don't think PCMCIA ever worked on this thing upstream, but I have a copy of the old linux-handheld kernel tree where it supposedly was working at one point. Yours, Linus Walleij ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
Re: [PATCH 05/33] gpio: add generic single-register fixed-direction GPIO driver
On Fri, Sep 2, 2016 at 7:00 PM, Russell King - ARM Linux <li...@armlinux.org.uk> wrote: > Linus, > > There's a change I'd like to merge into patch 5 - overall it looks > like the below, and allows us to use gpio-reg with the PXA mainstone > MST_PCMCIA[01] registers. Some of these GPIO signals have hardware > interrupts associated with them, but not all. > > Do you approve? Yes of course. Acked-by: Linus Walleij <linus.wall...@linaro.org> Yours, Linus Walleij ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
Re: [PATCH 05/33] gpio: add generic single-register fixed-direction GPIO driver
On Tue, Aug 30, 2016 at 11:42 PM, Russell King - ARM Linux <li...@armlinux.org.uk> wrote: > On Tue, Aug 30, 2016 at 11:25:19PM +0200, Linus Walleij wrote: >> > +#define to_gpio_reg(x) container_of(x, struct gpio_reg, gc) >> >> You don't need that trickery anymore, just: >> >> > +static int gpio_reg_get_direction(struct gpio_chip *gc, unsigned offset) >> > +{ >> > + struct gpio_reg *r = to_gpio_reg(gc); >> >> struct gpio_reg *r = gpiochip_get_data(gc); >> >> (applied everywhere) > > I prefer my method by a long shot Sure it's no strong preference. Keep it like this if you like. I'm very happy with the series either way! Yours, Linus Walleij ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
Re: [RFC PATCH 00/33] SA11x0/PXA GPIO rework (Core + PCMCIA only)
On Mon, Aug 29, 2016 at 12:23 PM, Russell King - ARM Linux <li...@armlinux.org.uk> wrote: > Following on from the PCMCIA fixes, this series reworks GPIO on SA11x0 > and PXA platforms. This is a subset of a larger series, which I'm > splitting up due to its size. This part contains the base and PCMCIA > updates. Further updates for IrDA drivers, DMA engine, serial, and > ethernet will follow in time. For all the GPIO patches: Acked-by: Linus Walleij <linus.wall...@linaro.org> With the smallish changes needed to patch 5/33 that one is acked too. In fact I would ACK it anyway, because the net total cleanup is so nice on the kernel at large... SA11x0 has never been prettier than after this series. I suspect you want to keep the series together and queue it in the ARM tree? Else tell me what to apply in the GPIO tree. Yours, Linus Walleij ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
Re: [PATCH 05/33] gpio: add generic single-register fixed-direction GPIO driver
On Mon, Aug 29, 2016 at 12:24 PM, Russell King <rmk+ker...@armlinux.org.uk> wrote: > Add a simple, generic, single register fixed-direction GPIO driver. > This is able to support a single register where a fixed number of > bits are used for input and a fixed number of bits used for output. > > Signed-off-by: Russell King <rmk+ker...@armlinux.org.uk> Clever, I like it! > include/linux/gpio-reg.h | 12 Can we put this in include/linux/gpio/gpio-reg.h? I try to do some scopeing to there. > +#define to_gpio_reg(x) container_of(x, struct gpio_reg, gc) You don't need that trickery anymore, just: > +static int gpio_reg_get_direction(struct gpio_chip *gc, unsigned offset) > +{ > + struct gpio_reg *r = to_gpio_reg(gc); struct gpio_reg *r = gpiochip_get_data(gc); (applied everywhere) > + if (dev) > + ret = devm_gpiochip_add_data(dev, >gc, r); > + else > + ret = gpiochip_add_data(>gc, r); Aha both device and device-less, I see. Apart from that it looks nice, any other questionmarks were fixed in the other replies. Yours, Linus Walleij ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
Re: [PATCH v2] pcmcia: db1xxx_ss: fix last irq_to_gpio user
On Wed, Mar 2, 2016 at 4:34 PM, Manuel Lauss <manuel.la...@gmail.com> wrote: > remove the usage of removed irq_to_gpio() function. On pre-DB1200 > boards, pass the actual carddetect GPIO number instead of the IRQ, > because we need the gpio to actually test card status (inserted or > not) and can get the irq number with gpio_to_irq() instead. > > Tested on DB1300 and DB1500, this patch fixes PCMCIA on the DB1500, > which used irq_to_gpio(). > > sta...@vger.kernel.org # v4.3 > Fixes: 832f5dacfa0b ("MIPS: Remove all the uses of custom gpio.h") > Acked-by: Arnd Bergmann <a...@arndb.de> > Signed-off-by: Manuel Lauss <manuel.la...@gmail.com> > --- > v2: "Fixes" line, and CC stable, and added Arnd's ack. Reviewed-by: Linus Walleij <linus.wall...@linaro.org> Yours, Linus Walleij ___ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia