• Hans de Goede's avatar
    i2c: cht-wc: Make charger i2c-client instantiation board/device-model specific · 4b326491
    Hans de Goede authored
    The i2c-controller on the Cherry Trail - Whiskey Cove PMIC is special
    in that it is always connected to the I2C charger IC of the board on
    which the PMIC is used; and the charger IC is not described in ACPI,
    so the i2c-cht-wc code needs to instantiate an i2c-client for it itself.
    
    So far this was hardcoded to instantiate an i2c-client for the
    bq24292i, with all properties, etc. set to match how this charger
    is used on the GPD win and GPD pocket devices.
    
    There is a rudimentary check to make sure the ACPI tables are at least
    somewhat as expected, but this is far from accurate, leading to
    a wrong i2c-client being instantiated for the charger on some boards.
    
    Switch to the new DMI based intel_cht_wc_get_model() helper which is
    exported by the MFD driver for the CHT Whiskey Cove PMIC to help PMIC
    cell drivers like the i2c-cht-wc code reliably detect which board
    they are running on.
    
    And add board_info for the charger ICs as found on the other 2 known
    boards with a Whisky Cove PMIC.
    
    This has been tested on all 3 known boards.
    Acked-by: default avatarWolfram Sang <wsa@kernel.org>
    Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
    4b326491
i2c-cht-wc.c 14.8 KB