Re: [PATCH v5 6/7] i2c: designware: enable SLAVE in platform module

From: Luis Oliveira
Date: Wed Dec 28 2016 - 10:53:58 EST


On 28-Dec-16 15:44, Andy Shevchenko wrote:
> On Wed, 2016-12-28 at 14:43 +0000, Luis Oliveira wrote:
>> - Slave mode selected in platform module (devicetree support only)
>> - Check for ACPI - not supported in SLAVE mode:
>> - Changed the ifndef style to the use of ACPI_HANDLE that returns
>> NULL
>> if the device was not enumerated from ACPI namespace.
>
> I'm not sure what is wrong with ACPI?

I dont have a way to test it. Just that.
>
>> @@ -264,9 +297,16 @@ static int dw_i2c_plat_probe(struct
>> platform_device *pdev)
>> if (r)
>> return r;
>>
>> - dev->functionality = I2C_FUNC_10BIT_ADDR |
>> DW_IC_DEFAULT_FUNCTIONALITY;
>> -
>> - i2c_dw_configure_master(pdev);
>
>> + if (ACPI_HANDLE(&pdev->dev) == NULL) {
>
> I don't think you need this at all.

This is to avoid the use of the "ifdef" style I used before.
>
>> + device_for_each_child_node(&pdev->dev, child) {
>
> This is resource agnostic.
>
>> + fwnode_property_read_u32(child, "reg", &reg);
>
> This is as well.

Are you suggesting I use of_ functions?
>
>> + if (reg & I2C_OWN_SLAVE_ADDRESS)
>> + i2c_dw_configure_slave(pdev);
>> + else
>> + i2c_dw_configure_master(pdev);
>> + }
>> + } else
>> + i2c_dw_configure_master(pdev);
>
>