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 -- 2.50.1
