@@ -30,6 +30,7 @@
#define PCA9548_CHANNEL_COUNT 8
#define PCA9546_CHANNEL_COUNT 4
+#define PCA9543_CHANNEL_COUNT 2
/*
* struct Pca954xState - The pca954x state object.
@@ -172,6 +173,12 @@ I2CBus *pca954x_i2c_get_bus(I2CSlave *mux, uint8_t channel)
return pca954x->bus[channel];
}
+static void pca9543_class_init(ObjectClass *klass, void *data)
+{
+ Pca954xClass *s = PCA954X_CLASS(klass);
+ s->nchans = PCA9543_CHANNEL_COUNT;
+}
+
static void pca9546_class_init(ObjectClass *klass, void *data)
{
Pca954xClass *s = PCA954X_CLASS(klass);
@@ -246,6 +253,11 @@ static const TypeInfo pca954x_info[] = {
.class_init = pca954x_class_init,
.abstract = true,
},
+ {
+ .name = TYPE_PCA9543,
+ .parent = TYPE_PCA954X,
+ .class_init = pca9543_class_init,
+ },
{
.name = TYPE_PCA9546,
.parent = TYPE_PCA954X,
@@ -3,6 +3,7 @@
#include "hw/i2c/i2c.h"
+#define TYPE_PCA9543 "pca9543"
#define TYPE_PCA9546 "pca9546"
#define TYPE_PCA9548 "pca9548"