[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