@samitouri / QOSamiQemu / commits / 508678167c

hw/arm: catalina: add NIC and FIO temperature sensors

Model the temperature sensors described by the Catalina device tree that have existing QEMU device models but were not yet instantiated: the four IOB NIC TMP421 sensors behind the i2c0 PCA9546 muxes at 0x71 and 0x75, and the FIO remote TMP75 sensor at 0x4f on the i2c1 mux. Signed-off-by: Emmanuel Blot <emmanuel.blot@free.fr> Reviewed-by: Cédric Le Goater <clg@redhat.com> Link: https://lore.kernel.org/qemu-devel/20260709-catalina-upgrade-v1-25-82a63fead90c@free.fr Signed-off-by: Cédric Le Goater <clg@redhat.com>

Emmanuel Blot committed Jul 9, 2026 at 17:23 UTC 508678167c0a6bfb325014d5bd06f946a3c0a7b4
1 file changed +23 -7
hw/arm/aspeed_ast2600_catalina.c
+23 -7
@@ -472,7 +472,16 @@ static void catalina_bmc_i2c_init(AspeedMachineState *bmc)
472
473 /* &i2c0 */
474 /* i2c-mux@71 (PCA9546) on i2c0 */
475 - i2c_slave_create_simple(i2c[0], TYPE_PCA9546, 0x71);
475 + i2c_mux = i2c_slave_create_simple(i2c[0], TYPE_PCA9546, 0x71);
476 +
477 + /* i2c0mux0ch0 */
478 + /* IOB0 NIC0 temperature-sensor@1f - tmp421 */
479 + i2c_slave_create_simple(pca954x_i2c_get_bus(i2c_mux, 0),
480 + TYPE_TMP421, 0x1f);
481 + /* i2c0mux0ch2 */
482 + /* IOB0 NIC1 temperature-sensor@1f - tmp421 */
483 + i2c_slave_create_simple(pca954x_i2c_get_bus(i2c_mux, 2),
484 + TYPE_TMP421, 0x1f);
485
486 /* i2c-mux@72 (PCA9546) on i2c0 */
487 i2c_mux = i2c_slave_create_simple(i2c[0], TYPE_PCA9546, 0x72);
@@ -489,7 +498,16 @@ static void catalina_bmc_i2c_init(AspeedMachineState *bmc)
498 i2c_slave_create_simple(i2c[0], TYPE_PCA9546, 0x73);
499
500 /* i2c-mux@75 (PCA9546) on i2c0 */
492 - i2c_slave_create_simple(i2c[0], TYPE_PCA9546, 0x75);
501 + i2c_mux = i2c_slave_create_simple(i2c[0], TYPE_PCA9546, 0x75);
502 +
503 + /* i2c0mux3ch0 */
504 + /* IOB1 NIC0 temperature-sensor@1f - tmp421 */
505 + i2c_slave_create_simple(pca954x_i2c_get_bus(i2c_mux, 0),
506 + TYPE_TMP421, 0x1f);
507 + /* i2c0mux3ch2 */
508 + /* IOB1 NIC1 temperature-sensor@1f - tmp421 */
509 + i2c_slave_create_simple(pca954x_i2c_get_bus(i2c_mux, 2),
510 + TYPE_TMP421, 0x1f);
511
512 /* i2c-mux@76 (PCA9546) on i2c0 */
513 i2c_mux = i2c_slave_create_simple(i2c[0], TYPE_PCA9546, 0x76);
@@ -544,6 +562,8 @@ static void catalina_bmc_i2c_init(AspeedMachineState *bmc)
562 fio_eeprom, fio_eeprom_len);
563 /* temperature-sensor@4b - tmp75 */
564 i2c_slave_create_simple(pca954x_i2c_get_bus(i2c_mux, 7), TYPE_TMP75, 0x4b);
565 + /* temperature-sensor@4f - tmp75 (FIO remote) */
566 + i2c_slave_create_simple(pca954x_i2c_get_bus(i2c_mux, 7), TYPE_TMP75, 0x4f);
567
568 /* &i2c2 */
569 /* io_expander0 - pca9555@20 */
@@ -564,11 +584,7 @@ static void catalina_bmc_i2c_init(AspeedMachineState *bmc)
584 /* eeprom@52 */
585 at24c_eeprom_init_rom(pca954x_i2c_get_bus(i2c_mux, 6), 0x52, 8 * KiB,
586 hdd_eeprom, hdd_eeprom_len);
567 - /* i2c5mux0ch7 */
568 - /* ina230@40 - no model */
569 - /* ina230@41 - no model */
570 - /* ina230@44 - no model */
571 - /* ina230@45 - no model */
587 + /* i2c5mux0ch7 - empty */
588
589 /* &i2c6 */
590 /* io_expander3 - pca9555@21 */