On 11/3/25 10:27, Jamin Lin wrote:
> The helper function create_pca9554() has been renamed to
> aspeed_create_pca9554() and made globally available.
>
> Previously, the function was declared static inside aspeed.c, restricting
> its visibility to that file. As more Aspeed machine implementations
> require PCA9554 I²C expander setup, it makes sense to rename it with the
> aspeed_ prefix and export its declaration in aspeed.h for shared use.
>
> No functional changes.
>
> Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
> ---
> include/hw/arm/aspeed.h | 14 ++++++++++++++
> hw/arm/aspeed.c | 8 ++++----
> 2 files changed, 18 insertions(+), 4 deletions(-)
>
> diff --git a/include/hw/arm/aspeed.h b/include/hw/arm/aspeed.h
> index 3afb964088..d2d9e49a39 100644
> --- a/include/hw/arm/aspeed.h
> +++ b/include/hw/arm/aspeed.h
> @@ -80,4 +80,18 @@ void aspeed_machine_class_init_cpus_defaults(MachineClass *mc);
> */
> void aspeed_create_pca9552(AspeedSoCState *soc, int bus_id, int addr);
>
> +/*
> + * aspeed_create_pca9554:
> + * @soc: pointer to the #AspeedSoCState.
> + * @bus_id: the I²C bus index to attach the device.
> + * @addr: the I²C address of the PCA9554 device.
I will change I²C to I2C.
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Thanks,
C.
> + *
> + * Create and attach a PCA9554 I/O expander to the specified I²C bus
> + * of the given Aspeed SoC. The device is created via
> + * i2c_slave_create_simple() and returned as an #I2CSlave pointer.
> + *
> + * Returns: a pointer to the newly created #I2CSlave instance.
> + */
> +I2CSlave *aspeed_create_pca9554(AspeedSoCState *soc, int bus_id, int addr);
> +
> #endif
> diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c
> index c6f272d986..59416eb5ae 100644
> --- a/hw/arm/aspeed.c
> +++ b/hw/arm/aspeed.c
> @@ -543,7 +543,7 @@ void aspeed_create_pca9552(AspeedSoCState *soc, int bus_id, int addr)
> TYPE_PCA9552, addr);
> }
>
> -static I2CSlave *create_pca9554(AspeedSoCState *soc, int bus_id, int addr)
> +I2CSlave *aspeed_create_pca9554(AspeedSoCState *soc, int bus_id, int addr)
> {
> return i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, bus_id),
> TYPE_PCA9554, addr);
> @@ -1142,7 +1142,7 @@ static void gb200nvl_bmc_i2c_init(AspeedMachineState *bmc)
> }
>
> /* Bus 5 Expander */
> - create_pca9554(soc, 4, 0x21);
> + aspeed_create_pca9554(soc, 4, 0x21);
>
> /* Mux I2c Expanders */
> i2c_slave_create_simple(i2c[5], "pca9546", 0x71);
> @@ -1153,12 +1153,12 @@ static void gb200nvl_bmc_i2c_init(AspeedMachineState *bmc)
> i2c_slave_create_simple(i2c[5], "pca9546", 0x77);
>
> /* Bus 10 */
> - dev = DEVICE(create_pca9554(soc, 9, 0x20));
> + dev = DEVICE(aspeed_create_pca9554(soc, 9, 0x20));
>
> /* Set FPGA_READY */
> object_property_set_str(OBJECT(dev), "pin1", "high", &error_fatal);
>
> - create_pca9554(soc, 9, 0x21);
> + aspeed_create_pca9554(soc, 9, 0x21);
> at24c_eeprom_init(i2c[9], 0x50, 64 * KiB);
> at24c_eeprom_init(i2c[9], 0x51, 64 * KiB);
>