Message ID | 20210118003428.568892-6-djrscally@gmail.com (mailing list archive) |
---|---|
State | Changes Requested, archived |
Headers | show |
Series | Introduce intel_skl_int3472 driver | expand |
Hi Daniel, Thank you for the patch. On Mon, Jan 18, 2021 at 12:34:26AM +0000, Daniel Scally wrote: > I need to be able to translate GPIO resources in an acpi_device's _CRS > into gpio_descs. Those are represented in _CRS as a pathname to a GPIO > device plus the pin's index number: this function is perfect for that > purpose. > > Signed-off-by: Daniel Scally <djrscally@gmail.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- > Changes in v2: > > -None > > drivers/gpio/gpiolib-acpi.c | 3 ++- > include/linux/acpi.h | 5 +++++ > 2 files changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c > index e37a57d0a2f0..83f9f85cd0ab 100644 > --- a/drivers/gpio/gpiolib-acpi.c > +++ b/drivers/gpio/gpiolib-acpi.c > @@ -111,7 +111,7 @@ static int acpi_gpiochip_find(struct gpio_chip *gc, void *data) > * controller does not have GPIO chip registered at the moment. This is to > * support probe deferral. > */ > -static struct gpio_desc *acpi_get_gpiod(char *path, int pin) > +struct gpio_desc *acpi_get_gpiod(char *path, int pin) > { > struct gpio_chip *chip; > acpi_handle handle; > @@ -127,6 +127,7 @@ static struct gpio_desc *acpi_get_gpiod(char *path, int pin) > > return gpiochip_get_desc(chip, pin); > } > +EXPORT_SYMBOL_GPL(acpi_get_gpiod); > > static irqreturn_t acpi_gpio_irq_handler(int irq, void *data) > { > diff --git a/include/linux/acpi.h b/include/linux/acpi.h > index 2630c2e953f7..5cd272326eb7 100644 > --- a/include/linux/acpi.h > +++ b/include/linux/acpi.h > @@ -1066,6 +1066,7 @@ void __acpi_handle_debug(struct _ddebug *descriptor, acpi_handle handle, const c > bool acpi_gpio_get_irq_resource(struct acpi_resource *ares, > struct acpi_resource_gpio **agpio); > int acpi_dev_gpio_irq_get(struct acpi_device *adev, int index); > +struct gpio_desc *acpi_get_gpiod(char *path, int pin); > #else > static inline bool acpi_gpio_get_irq_resource(struct acpi_resource *ares, > struct acpi_resource_gpio **agpio) > @@ -1076,6 +1077,10 @@ static inline int acpi_dev_gpio_irq_get(struct acpi_device *adev, int index) > { > return -ENXIO; > } > +struct gpio_desc *acpi_get_gpiod(char *path, int pin) > +{ > + return NULL; > +} > #endif > > /* Device properties */
On Mon, Jan 18, 2021 at 12:34:26AM +0000, Daniel Scally wrote: > I need to be able to translate GPIO resources in an acpi_device's _CRS ACPI device's > into gpio_descs. Those are represented in _CRS as a pathname to a GPIO into GPIO descriptor array > device plus the pin's index number: this function is perfect for that > purpose. ... > diff --git a/include/linux/acpi.h b/include/linux/acpi.h Wrong header. Please use gpio/consumer.h.
On Mon, Jan 18, 2021 at 03:45:02PM +0200, Andy Shevchenko wrote:
> On Mon, Jan 18, 2021 at 12:34:26AM +0000, Daniel Scally wrote:
And prefix: "gpiolib: acpi: ".
On 18/01/2021 13:45, Andy Shevchenko wrote: > On Mon, Jan 18, 2021 at 12:34:26AM +0000, Daniel Scally wrote: >> I need to be able to translate GPIO resources in an acpi_device's _CRS > > ACPI device's > >> into gpio_descs. Those are represented in _CRS as a pathname to a GPIO > > into GPIO descriptor array > >> device plus the pin's index number: this function is perfect for that >> purpose. > > ... > >> diff --git a/include/linux/acpi.h b/include/linux/acpi.h > > Wrong header. Please use gpio/consumer.h. > Ack to all - thanks.
diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c index e37a57d0a2f0..83f9f85cd0ab 100644 --- a/drivers/gpio/gpiolib-acpi.c +++ b/drivers/gpio/gpiolib-acpi.c @@ -111,7 +111,7 @@ static int acpi_gpiochip_find(struct gpio_chip *gc, void *data) * controller does not have GPIO chip registered at the moment. This is to * support probe deferral. */ -static struct gpio_desc *acpi_get_gpiod(char *path, int pin) +struct gpio_desc *acpi_get_gpiod(char *path, int pin) { struct gpio_chip *chip; acpi_handle handle; @@ -127,6 +127,7 @@ static struct gpio_desc *acpi_get_gpiod(char *path, int pin) return gpiochip_get_desc(chip, pin); } +EXPORT_SYMBOL_GPL(acpi_get_gpiod); static irqreturn_t acpi_gpio_irq_handler(int irq, void *data) { diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 2630c2e953f7..5cd272326eb7 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -1066,6 +1066,7 @@ void __acpi_handle_debug(struct _ddebug *descriptor, acpi_handle handle, const c bool acpi_gpio_get_irq_resource(struct acpi_resource *ares, struct acpi_resource_gpio **agpio); int acpi_dev_gpio_irq_get(struct acpi_device *adev, int index); +struct gpio_desc *acpi_get_gpiod(char *path, int pin); #else static inline bool acpi_gpio_get_irq_resource(struct acpi_resource *ares, struct acpi_resource_gpio **agpio) @@ -1076,6 +1077,10 @@ static inline int acpi_dev_gpio_irq_get(struct acpi_device *adev, int index) { return -ENXIO; } +struct gpio_desc *acpi_get_gpiod(char *path, int pin) +{ + return NULL; +} #endif /* Device properties */
I need to be able to translate GPIO resources in an acpi_device's _CRS into gpio_descs. Those are represented in _CRS as a pathname to a GPIO device plus the pin's index number: this function is perfect for that purpose. Signed-off-by: Daniel Scally <djrscally@gmail.com> --- Changes in v2: -None drivers/gpio/gpiolib-acpi.c | 3 ++- include/linux/acpi.h | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-)