Re: [PATCH v5 6/7] i2c: designware: enable SLAVE in platform module
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date: 2017-01-05 12:43:58
Also in:
linux-i2c, lkml
On Thu, 2017-01-05 at 12:13 +0000, Luis Oliveira wrote:
On 28-Dec-16 18:10, Luis Oliveira wrote:quoted
On 28-Dec-16 17:10, Andy Shevchenko wrote:quoted
On Wed, 2016-12-28 at 16:41 +0000, Luis Oliveira wrote:quoted
On 28-Dec-16 16:31, Andy Shevchenko wrote:
quoted
quoted
So, ACPI has a property to support slave mode for I2CSerialBus() macro. I would propose to create a helper function in i2c-core.c which will be responsible for mode detection ... i2c_slave_mode_detect() { ... if (IS_BUILTIN(CONFIG_OF) && dev->of_node) { ... (use of_*() here) ... } else if (IS_BUILTIN(CONFIG_ACPI) && ACPI_HANDLE(dev)) dev_dbg(..., "ACPI slave is not supported yet\n"); ... to master ... } else { ... default to master ... } } EXPORT_...(); Make it as a separate patch.Oh I see, yes it looks good. I will check it. ThanksHi Andy, I implemented a helper function as you proposed and it looks like this: int i2c_slave_mode_detect(struct device *dev) { struct device_node *child; u32 reg; if (IS_BUILTIN(CONFIG_OF) && dev->of_node) { for_each_child_of_node(dev->of_node, child) { of_property_read_u32(child, "reg", ®); if (reg & I2C_OWN_SLAVE_ADDRESS) return 1; } } else if (IS_BUILTIN(CONFIG_ACPI) && ACPI_HANDLE(dev)) dev_dbg(dev, "ACPI slave is not supported yet\n");
Curly braces here as well.
else return 0;
For now this is not needed
return 0; } Before I submit the patch to the i2c-core.c I wonder if I could have some comment on the implementation.
Glad you did it. See above. Otherwise looks good to me. -- Andy Shevchenko [off-list ref] Intel Finland Oy