On Mon, Nov 13, 2023 at 02:31:56PM +0800, Potin Lai wrote: > Add pca9543 2-channel i2c-mux switch support. > > Signed-off-by: Potin Lai <potin.lai...@gmail.com>
Looks good to me. Acked-by: Corey Minyard <cminy...@mvista.com> > --- > hw/i2c/i2c_mux_pca954x.c | 12 ++++++++++++ > include/hw/i2c/i2c_mux_pca954x.h | 1 + > 2 files changed, 13 insertions(+) > > diff --git a/hw/i2c/i2c_mux_pca954x.c b/hw/i2c/i2c_mux_pca954x.c > index db5db956a6..6aace0fc47 100644 > --- a/hw/i2c/i2c_mux_pca954x.c > +++ b/hw/i2c/i2c_mux_pca954x.c > @@ -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, > diff --git a/include/hw/i2c/i2c_mux_pca954x.h > b/include/hw/i2c/i2c_mux_pca954x.h > index 3dd25ec983..1da5508ed5 100644 > --- a/include/hw/i2c/i2c_mux_pca954x.h > +++ b/include/hw/i2c/i2c_mux_pca954x.h > @@ -3,6 +3,7 @@ > > #include "hw/i2c/i2c.h" > > +#define TYPE_PCA9543 "pca9543" > #define TYPE_PCA9546 "pca9546" > #define TYPE_PCA9548 "pca9548" > > -- > 2.31.1 > >