On Microsoft Surface 3 (uses Intel's Atom Cherry Trail SoC), executing intel_soc_pmic_exec_mipi_pmic_seq_element() results in the following error message: [ 7196.356682] intel_soc_pmic_exec_mipi_pmic_seq_element: Not implemented [ 7196.356686] intel_soc_pmic_exec_mipi_pmic_seq_element: i2c-addr: 0x6e reg-addr 0x57 value 0x63 mask 0xff Surface 3 uses the PMIC device INT33FD, and the DSDT describes its _HRV value is 0x02 [1]: Scope (PCI0.I2C7) { Device (PMIC) { Name (_ADR, Zero) // _ADR: Address Name (_HID, "INT33FD" /* Intel Baytrail Power Management IC */) // _HID: Hardware ID Name (_CID, "INT33FD" /* Intel Baytrail Power Management IC */) // _CID: Compatible ID Name (_DDN, "CRYSTAL COVE+ AIC") // _DDN: DOS Device Name Name (_HRV, 0x02) // _HRV: Hardware Revision Name (_UID, One) // _UID: Unique ID Name (_DEP, Package (0x01) // _DEP: Dependencies { I2C7 }) [...] Due to this _HRV value, intel_pmic_bytcrc is used as the PMIC driver. However, the i2c address is currently not defined in this driver. This commit adds the missing i2c address 0x6e to the intel_pmic_bytcrc driver. [1] https://github.com/linux-surface/acpidumps/blob/f8db3d150815aa21530635b7e646eee271e3b8fe/surface_3/dsdt.dsl#L10868 References: cc0594c4b0ef ("ACPI / PMIC: Add i2c address for thermal control") Signed-off-by: Tsuchiya Yuto <kitakar@xxxxxxxxx> --- drivers/acpi/pmic/intel_pmic_bytcrc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/acpi/pmic/intel_pmic_bytcrc.c b/drivers/acpi/pmic/intel_pmic_bytcrc.c index 2a692cc4b7ae..a64f50a42c54 100644 --- a/drivers/acpi/pmic/intel_pmic_bytcrc.c +++ b/drivers/acpi/pmic/intel_pmic_bytcrc.c @@ -282,6 +282,7 @@ static struct intel_pmic_opregion_data intel_crc_pmic_opregion_data = { .power_table_count= ARRAY_SIZE(power_table), .thermal_table = thermal_table, .thermal_table_count = ARRAY_SIZE(thermal_table), + .pmic_i2c_address = 0x6e, }; static int intel_crc_pmic_opregion_probe(struct platform_device *pdev) -- 2.33.1