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 */