Thread (24 messages) 24 messages, 4 authors, 2017-01-05

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. Thanks
Hi 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", &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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help