From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751617AbcL1PrM (ORCPT ); Wed, 28 Dec 2016 10:47:12 -0500 Received: from mga09.intel.com ([134.134.136.24]:22612 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751031AbcL1PrK (ORCPT ); Wed, 28 Dec 2016 10:47:10 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,422,1477983600"; d="scan'208";a="207543307" Message-ID: <1482939844.9552.165.camel@linux.intel.com> Subject: Re: [PATCH v5 6/7] i2c: designware: enable SLAVE in platform module From: Andy Shevchenko To: Luis Oliveira , wsa@the-dreams.de, robh+dt@kernel.org, mark.rutland@arm.com, jarkko.nikula@linux.intel.com, mika.westerberg@linux.intel.com, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Ramiro.Oliveira@synopsys.com, Joao.Pinto@synopsys.com, CARLOS.PALMINHA@synopsys.com Date: Wed, 28 Dec 2016 17:44:04 +0200 In-Reply-To: References: Organization: Intel Finland Oy Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.22.3-1 Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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?   > @@ -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. > + device_for_each_child_node(&pdev->dev, child) { This is resource agnostic. > + fwnode_property_read_u32(child, "reg", ®); This is as well. > + if (reg & I2C_OWN_SLAVE_ADDRESS) > + i2c_dw_configure_slave(pdev); > + else > + i2c_dw_configure_master(pdev); > + } > + } else > + i2c_dw_configure_master(pdev); -- Andy Shevchenko Intel Finland Oy