Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751785AbcL1Pxu (ORCPT ); Wed, 28 Dec 2016 10:53:50 -0500 Received: from smtprelay2.synopsys.com ([198.182.60.111]:43510 "EHLO smtprelay.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750966AbcL1Pxs (ORCPT ); Wed, 28 Dec 2016 10:53:48 -0500 Subject: Re: [PATCH v5 6/7] i2c: designware: enable SLAVE in platform module To: Andy Shevchenko , Luis Oliveira , , , , , , , , References: <1482939844.9552.165.camel@linux.intel.com> CC: , , From: Luis Oliveira Message-ID: <20e47113-efd7-787c-b2f8-39e9fd8b83d2@synopsys.com> Date: Wed, 28 Dec 2016 15:53:40 +0000 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: <1482939844.9552.165.camel@linux.intel.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.107.25.45] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1244 Lines: 47 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", ®); > > 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); > >