[linux-yocto] [PATCH 1/5] Revert "gpio: pca953x: provide GPIO base based on _UID"
Bruce Ashfield
bruce.ashfield at windriver.com
Thu Mar 31 06:26:16 PDT 2016
On 2016-03-31 3:33 AM, Yong Li wrote:
> This reverts commit 81e166ec0a35ed5a01e2453603b0b1c73a0532cc.
I've staged the 5 patch series. will send SRCREV updates once build
testing completes.
Bruce
>
> Signed-off-by: Yong Li <sdliyong at gmail.com>
> ---
> drivers/gpio/gpio-pca953x.c | 44 +++++++-------------------------------------
> 1 file changed, 7 insertions(+), 37 deletions(-)
>
> diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c
> index f99706f..5d8dec6 100644
> --- a/drivers/gpio/gpio-pca953x.c
> +++ b/drivers/gpio/gpio-pca953x.c
> @@ -80,6 +80,12 @@ static const struct i2c_device_id pca953x_id[] = {
> };
> MODULE_DEVICE_TABLE(i2c, pca953x_id);
>
> +static const struct acpi_device_id pca953x_acpi_ids[] = {
> + { "INT3491", 16 | PCA953X_TYPE | PCA_INT, },
> + { }
> +};
> +MODULE_DEVICE_TABLE(acpi, pca953x_acpi_ids);
> +
> #define MAX_BANK 5
> #define BANK_SZ 8
>
> @@ -106,35 +112,6 @@ struct pca953x_chip {
> unsigned long driver_data;
> };
>
> -struct pca953x_info {
> - kernel_ulong_t driver_data;
> - void (*setup)(struct pca953x_chip *chip);
> -};
> -
> -static void pca953x_setup_int3491(struct pca953x_chip *chip)
> -{
> - struct acpi_device *adev = ACPI_COMPANION(&chip->client->dev);
> - unsigned int uid;
> -
> - if (kstrtouint(acpi_device_uid(adev), 0, &uid) || !uid--)
> - return;
> -
> - chip->gpio_start = 8 /* sch_gpio */ +
> - 8 /* gpio-dwapb */ +
> - 16 /* pca9535 */ * uid;
> -}
> -
> -static const struct pca953x_info pca953x_info_int3491 = {
> - .driver_data = 16 | PCA953X_TYPE | PCA_INT,
> - .setup = pca953x_setup_int3491,
> -};
> -
> -static const struct acpi_device_id pca953x_acpi_ids[] = {
> - { "INT3491", (kernel_ulong_t)&pca953x_info_int3491 },
> - { }
> -};
> -MODULE_DEVICE_TABLE(acpi, pca953x_acpi_ids);
> -
> static inline struct pca953x_chip *to_pca(struct gpio_chip *gc)
> {
> return container_of(gc, struct pca953x_chip, gpio_chip);
> @@ -757,19 +734,12 @@ static int pca953x_probe(struct i2c_client *client,
> chip->driver_data = id->driver_data;
> } else {
> const struct acpi_device_id *id;
> - const struct pca953x_info *info;
>
> id = acpi_match_device(pca953x_acpi_ids, &client->dev);
> if (!id)
> return -ENODEV;
>
> - info = (struct pca953x_info *)id->driver_data;
> - if (!info)
> - return -ENODEV;
> -
> - chip->driver_data = info->driver_data;
> - if (info->setup)
> - info->setup(chip);
> + chip->driver_data = id->driver_data;
> }
>
> chip->chip_type = PCA_CHIP_TYPE(chip->driver_data);
>
More information about the linux-yocto
mailing list