Reviewed-by: Glenn Miles <[email protected]>

Thanks,

Glenn

On Thu, 2026-07-09 at 17:23 +0200, Emmanuel Blot wrote:
> PCA9555 HW is mostly identical to PCA9535.
> PCA9555 HW features pull-up resistors that are not available on PCA9535.
> 
> Pull-up are not handled by current PCA955x implementation and PCA9535
> already initializes input as Hi-Z.
> 
> Signed-off-by: Emmanuel Blot <[email protected]>
> ---
>  hw/gpio/pca9552.c         | 9 +++++++--
>  include/hw/gpio/pca9552.h | 1 +
>  2 files changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/gpio/pca9552.c b/hw/gpio/pca9552.c
> index ffeb438d2a..3b9b63eb17 100644
> --- a/hw/gpio/pca9552.c
> +++ b/hw/gpio/pca9552.c
> @@ -523,7 +523,7 @@ static void pca9552_class_init(ObjectClass *oc, const 
> void *data)
>      pc->has_led_support = true;
>  }
>  
> -static void pca9535_class_init(ObjectClass *oc, const void *data)
> +static void pca95x5_class_init(ObjectClass *oc, const void *data)
>  {
>      DeviceClass *dc = DEVICE_CLASS(oc);
>      PCA955xClass *pc = PCA955X_CLASS(oc);
> @@ -553,7 +553,12 @@ static const TypeInfo pca955x_types[] = {
>      {
>          .name          = TYPE_PCA9535,
>          .parent        = TYPE_PCA955X,
> -        .class_init    = pca9535_class_init,
> +        .class_init    = pca95x5_class_init,
> +    },
> +    {
> +        .name          = TYPE_PCA9555,
> +        .parent        = TYPE_PCA955X,
> +        .class_init    = pca95x5_class_init,
>      }
>  };
>  
> diff --git a/include/hw/gpio/pca9552.h b/include/hw/gpio/pca9552.h
> index 71479ea000..5299c13829 100644
> --- a/include/hw/gpio/pca9552.h
> +++ b/include/hw/gpio/pca9552.h
> @@ -13,5 +13,6 @@
>  #define TYPE_PCA955X "pca955x"
>  #define TYPE_PCA9552 "pca9552"
>  #define TYPE_PCA9535 "pca9535"
> +#define TYPE_PCA9555 "pca9555"
>  
>  #endif
> 


Reply via email to