Thread (40 messages) 40 messages, 6 authors, 2019-08-15

Re: [PATCH 05/14] gpio: lpc32xx: allow building on non-lpc32xx targets

From: Arnd Bergmann <arnd@arndb.de>
Date: 2019-08-09 14:19:04
Also in: linux-arm-kernel, linux-gpio, linux-serial, linux-usb, linux-watchdog, lkml

On Mon, Aug 5, 2019 at 10:28 AM Bartosz Golaszewski
[off-list ref] wrote:
pt., 2 sie 2019 o 13:20 Arnd Bergmann [off-list ref] napisał(a):
quoted
On Fri, Aug 2, 2019 at 9:10 AM Bartosz Golaszewski
[off-list ref] wrote:
quoted
quoted
-#include <mach/hardware.h>
-#include <mach/platform.h>
+#define _GPREG(x)                              (x)
What purpose does this macro serve?
quoted
 #define LPC32XX_GPIO_P3_INP_STATE              _GPREG(0x000)
 #define LPC32XX_GPIO_P3_OUTP_SET               _GPREG(0x004)
In the existing code base, this macro converts a register offset to
an __iomem pointer for a gpio register. I changed the definition of the
macro here to keep the number of changes down, but I it's just
as easy to remove it if you prefer.
Could you just add a comment so that it's clear at first glance?
I ended up removing the macro. With the change to keep the reg_base as
a struct member, this ends up being a relatively small change, and it's
more straightforward that way.
quoted
quoted
quoted
@@ -167,14 +166,26 @@ struct lpc32xx_gpio_chip {
        struct gpio_regs        *gpio_grp;
 };

+void __iomem *gpio_reg_base;
Any reason why this can't be made part of struct lpc32xx_gpio_chip?
It could be, but it's the same for each instance, and not known until
probe() time, so the same pointer would need to be copied into each
instance that is otherwise read-only.

Let me know if you'd prefer me to rework these two things or leave
them as they are.
I would prefer not to have global state in the driver, let's just
store the pointer in the data passed to gpiochip_add_data().
Ok, done.

       Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help