Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754007AbdCBOid (ORCPT ); Thu, 2 Mar 2017 09:38:33 -0500 Received: from mga03.intel.com ([134.134.136.65]:28195 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753886AbdCBOhu (ORCPT ); Thu, 2 Mar 2017 09:37:50 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.35,231,1484035200"; d="scan'208";a="55003918" Subject: Re: [RESEND PATCH v6 5/6] i2c: designware: add SLAVE mode functions To: Luis Oliveira , wsa@the-dreams.de, robh+dt@kernel.org, mark.rutland@arm.com, andriy.shevchenko@linux.intel.com, mika.westerberg@linux.intel.com, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org References: <07463ebe12af8c88c21c24601cf54b0cd2077e07.1488383202.git.lolivei@synopsys.com> Cc: Ramiro.Oliveira@synopsys.com, Joao.Pinto@synopsys.com, CARLOS.PALMINHA@synopsys.com From: Jarkko Nikula Message-ID: Date: Thu, 2 Mar 2017 16:33:59 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Icedove/45.6.0 MIME-Version: 1.0 In-Reply-To: <07463ebe12af8c88c21c24601cf54b0cd2077e07.1488383202.git.lolivei@synopsys.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2651 Lines: 68 On 03/01/17 17:59, Luis Oliveira wrote: > - Changes in Kconfig to enable I2C_DESIGNWARE_SLAVE support > - Slave functions added to core library file > - Slave abort sources added to common source file > - New driver: i2c-designware-slave added > - Changes in the Makefile to compile the I2C_DESIGNWARE_SLAVE module > when supported by the architecture. > > All the SLAVE flow is added but it is not enabled via platform > driver. > > Signed-off-by: Luis Oliveira > --- > V5->V6 > - Enable Slave mode using a different option (kbuild reported an error) > - Identation fixes needed > - Changed debug prints to dev_vdbg > - Fixed slave enumeration > > drivers/i2c/busses/Kconfig | 14 +- > drivers/i2c/busses/Makefile | 1 + > drivers/i2c/busses/i2c-designware-common.c | 7 + > drivers/i2c/busses/i2c-designware-core.h | 3 + > drivers/i2c/busses/i2c-designware-slave.c | 403 +++++++++++++++++++++++++++++ > 5 files changed, 427 insertions(+), 1 deletion(-) > create mode 100644 drivers/i2c/busses/i2c-designware-slave.c > ... > diff --git a/drivers/i2c/busses/i2c-designware-common.c b/drivers/i2c/busses/i2c-designware-common.c > index 6357c7c78f6d..24641635aa20 100644 > --- a/drivers/i2c/busses/i2c-designware-common.c > +++ b/drivers/i2c/busses/i2c-designware-common.c > @@ -56,6 +56,13 @@ static char *abort_sources[] = { > "trying to use disabled adapter", > [ARB_LOST] = > "lost arbitration", > + [ABRT_SLAVE_FLUSH_TXFIFO] = > + "read command so flush old data in the TX FIFO", > + [ABRT_SLAVE_ARBLOST] = > + "slave lost the bus while transmitting data to a remote master", > + [ABRT_SLAVE_RD_INTX] = > + "slave request for data to be transmitted and there is a 1 in " > + "bit 8 of IC_DATA_CMD", > }; I know ABRT_SLAVE_RD_INTX case is from the specification but I would prefer here one-line error text so it will be easier to grep from sources. I would like it to be also be more understandable. I don't know did I understood it correctly but does it occur when attempting to read controller while transmitting or something like that? > diff --git a/drivers/i2c/busses/i2c-designware-core.h b/drivers/i2c/busses/i2c-designware-core.h > index b620d76ffc8d..6c70945cccea 100644 > --- a/drivers/i2c/busses/i2c-designware-core.h > +++ b/drivers/i2c/busses/i2c-designware-core.h > @@ -277,6 +277,7 @@ struct dw_i2c_dev { > void (*disable)(struct dw_i2c_dev *dev); > void (*disable_int)(struct dw_i2c_dev *dev); > int (*init)(struct dw_i2c_dev *dev); > + bool mode; > }; > As I mentioned add here comment for "mode" not in patch 4/6. -- Jarkko