Re: [PATCH v6] mfd: Add Cherry Trail Whiskey Cove PMIC driver

From: Paul Gortmaker
Date: Sat May 20 2017 - 15:27:16 EST


On Sat, May 20, 2017 at 3:21 PM, Paul Gortmaker
<paul.gortmaker@xxxxxxxxxxxxx> wrote:
> On Mon, May 15, 2017 at 2:20 PM, Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
>> Hi,
>>
>> This is actually v7, with the following changes:
>>
>> Changes in v7:
>> -Add explanation why this is a bool and why it selects i2c-designwaree

Gah -- I missed the explanation mentioned above:

-Change Kconfig option from tristate to boolean and add a select for the
i2c-bus driver, this is necessary because the chtwc PMIC provides an ACPI
OPRegion handler, which must be available before other drivers using it
are loaded, which can only be ensured if the mfd, opregion and i2c-bus
drivers are built in

Given that, can we get rid of the modular macros in the code now as well?

Thanks,
Paul.
--


>> to the help text rather then as comments in the Kconfig
>
> I just noticed the changelog says it was updated to be
> buildable as a module but the Kconfig is still "bool"...
>
> Guessing this was just an oversight since there is
> code for modular use in the driver itself.
>
> Paul.
> --
>
>>
>> Regards,
>>
>> Hans
>>
>>
>>
>> On 15-05-17 20:17, Hans de Goede wrote:
>>>
>>> Add mfd driver for Intel CHT Whiskey Cove PMIC, based on various non
>>> upstreamed CHT Whiskey Cove PMIC patches.
>>>
>>> This is a somewhat minimal version which adds irqchip support and cells
>>> for: ACPI PMIC opregion support, the i2c-controller driving the external
>>> charger irc and the pwrsrc/extcon block.
>>>
>>> Further cells can be added in the future if/when drivers are upstreamed
>>> for them.
>>>
>>> Cc: Bin Gao <bin.gao@xxxxxxxxx>
>>> Cc: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx>
>>> Cc: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
>>> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
>>> Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
>>> ---
>>> Changes in v2:
>>> -Since this uses plain mfd and not the intel_soc_pmic stuff give it
>>> its own Kconfig and allow this to be built as a module
>
> [...]
>
>>> +};
>>> +MODULE_DEVICE_TABLE(i2c, cht_wc_i2c_id);
>>> +
>>> +static const struct acpi_device_id cht_wc_acpi_ids[] = {
>>> + { "INT34D3", },
>>> + { }
>>> +};
>>> +MODULE_DEVICE_TABLE(acpi, cht_wc_acpi_ids);
>>> +
>>> +static struct i2c_driver cht_wc_driver = {
>>> + .driver = {
>>> + .name = "CHT Whiskey Cove PMIC",
>>> + .pm = &cht_wc_pm_ops,
>>> + .acpi_match_table = ACPI_PTR(cht_wc_acpi_ids),
>>> + },
>>> + .probe = cht_wc_probe,
>>> + .shutdown = cht_wc_shutdown,
>>> + .id_table = cht_wc_i2c_id,
>>> +};
>>> +
>>> +module_i2c_driver(cht_wc_driver);
>>> +
>>> +MODULE_LICENSE("GPL v2");
>>> +MODULE_AUTHOR("Hans de Goede <hdegoede@xxxxxxxxxx>");
>>>
>>