Re: [PATCH v2 15/20] i2c: cht-wc: Make charger i2c-client instantiation board/device-model specific

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Nov 14, 2021 at 7:04 PM Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
>
> 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 pcoket devices.

"pocket" I believe?

> 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.

...

> +/********** Lenovo Yogabook YB1-X90F/-X91F/-X91L charger settings **********/
> +static const char * const lenovo_yb1_bq25892_suppliers[] = {
> +       "cht_wcove_pwrsrc" };

Something went wrong with indentation...

...

> +       /*
> +        * The firmware sets everything to the defaults, which leads to a
> +        * somewhat low charge-current of 2048mA and worse to a batter-voltage

battery?

> +        * of 4.2V instead of 4.35V (when booted without a charger connected).
> +        * Use our own values instead of "linux,read-back-settings" to fix this.
> +        */

...

> +       switch (intel_cht_wc_get_model()) {
> +       case INTEL_CHT_WC_GPD_WIN_POCKET:
> +               board_info = &gpd_win_board_info;
> +               break;
> +       case INTEL_CHT_WC_XIAOMI_MIPAD2:
> +               board_info = &xiaomi_mipad2_board_info;
> +               break;
> +       case INTEL_CHT_WC_LENOVO_YOGABOOK1:
> +               board_info = &lenovo_yogabook1_board_info;
> +               break;
> +       default:
> +               dev_warn(&pdev->dev, "Unknown model, not instantiating charger device\n");

break;

> +       }

-- 
With Best Regards,
Andy Shevchenko



[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux