From patchwork Mon Mar 4 14:19:01 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ismael Luceno Cortes X-Patchwork-Id: 1051126 X-Patchwork-Delegate: hs@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=silicon-gears.com Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 44ChwY5BK0z9s5R for ; Tue, 5 Mar 2019 01:19:09 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 55AFEC21DC1; Mon, 4 Mar 2019 14:19:07 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id C73E7C21C3F; Mon, 4 Mar 2019 14:19:05 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 953BCC21C3F; Mon, 4 Mar 2019 14:19:04 +0000 (UTC) Received: from mx1.silicon-gears.com (mx1.silicon-gears.com [81.47.169.96]) by lists.denx.de (Postfix) with ESMTPS id 2BE0AC21C38 for ; Mon, 4 Mar 2019 14:19:04 +0000 (UTC) From: Ismael Luceno Cortes To: "u-boot@lists.denx.de" Thread-Topic: [PATCH 1/6] i2c: rcar_i2c: Fix u32 cast warnings Thread-Index: AQHU0pU2QV+noSQNkUK23IKUahMttA== Date: Mon, 4 Mar 2019 14:19:01 +0000 Message-ID: <20190304141838.4703-1-ismael.luceno@silicon-gears.com> Accept-Language: en-GB, es-ES, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-TM-AS-User-Approved-Sender: Yes;No X-TMASE-Result: 10--1.083400-10.000000 X-TMASE-MatchedRID: HVikQ9YmLLP3cjWEZSekGX0tCKdnhB58gUP+Fn6N6Kbefx4FmMaZTOTC MddcL/gjxlblqLlYqXLM/lxCuesUMDFAD02xIKrNkndhMV3FL5yQPe0buhqj0Wdy7TQt1Wgj7GT Fk8d8zZUkmVEHb8KCp8rHSl3r43pzM1AInjJN47qnkMXE7+27NZRJIk8REoIIbUbSx0DbJ3jsUd bg9ADyR7qsu5oE+NPa X-IMSS-DKIM-White-List: No;No X-TMASE-SNAP-Result: 1.821001.0001-0-1-12:0,22:0,33:0,34:0-0 Cc: Marek Vasut Subject: [U-Boot] [PATCH 1/6] i2c: rcar_i2c: Fix u32 cast warnings X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Ismael Luceno --- drivers/i2c/rcar_i2c.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/i2c/rcar_i2c.c b/drivers/i2c/rcar_i2c.c index 8d87c73713..bd7c37a207 100644 --- a/drivers/i2c/rcar_i2c.c +++ b/drivers/i2c/rcar_i2c.c @@ -34,9 +34,9 @@ #define RCAR_I2C_ICMSR_MNR BIT(6) #define RCAR_I2C_ICMSR_MAL BIT(5) #define RCAR_I2C_ICMSR_MST BIT(4) -#define RCAR_I2C_ICMSR_MDE BIT(3) +#define RCAR_I2C_ICMSR_MDE ((u32)BIT(3)) #define RCAR_I2C_ICMSR_MDT BIT(2) -#define RCAR_I2C_ICMSR_MDR BIT(1) +#define RCAR_I2C_ICMSR_MDR ((u32)BIT(1)) #define RCAR_I2C_ICMSR_MAT BIT(0) #define RCAR_I2C_ICSIER 0x10 #define RCAR_I2C_ICMIER 0x14 From patchwork Mon Mar 4 14:19:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ismael Luceno Cortes X-Patchwork-Id: 1051127 X-Patchwork-Delegate: hs@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=silicon-gears.com Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 44Chx31WXwz9s5R for ; Tue, 5 Mar 2019 01:19:35 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id D9678C21DD7; Mon, 4 Mar 2019 14:19:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 51FB1C21DD9; Mon, 4 Mar 2019 14:19:25 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 37E14C21E13; Mon, 4 Mar 2019 14:19:17 +0000 (UTC) Received: from mx1.silicon-gears.com (mx1.silicon-gears.com [81.47.169.96]) by lists.denx.de (Postfix) with ESMTPS id BD49CC21C8B for ; Mon, 4 Mar 2019 14:19:13 +0000 (UTC) From: Ismael Luceno Cortes To: "u-boot@lists.denx.de" Thread-Topic: [PATCH 2/6] i2c: rcar_i2c: Add comments about registers & values Thread-Index: AQHU0pU8PwwQMDC9LE2Fy4iVmtHQNw== Date: Mon, 4 Mar 2019 14:19:11 +0000 Message-ID: <20190304141838.4703-2-ismael.luceno@silicon-gears.com> References: <20190304141838.4703-1-ismael.luceno@silicon-gears.com> In-Reply-To: <20190304141838.4703-1-ismael.luceno@silicon-gears.com> Accept-Language: en-GB, es-ES, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-TM-AS-User-Approved-Sender: Yes;No X-TMASE-Result: 10-1.388600-10.000000 X-TMASE-MatchedRID: nZPfpfgFbeFveCKWtaLcaEDC9lgTLwgF0w14HFJQjaO7qpOHKudqc6dy K1rXVA/F/XF1R+VIZmMnMeUJU/6YVwzyMxeMEX6wEzQnFLEeMUndB/CxWTRRuwihQpoXbuXFpeh M0DTFMkA7HHxVA3MMPzp5Mw31pvKZnCJwClbkOHBpxTT/9x7XV5snV9g2vBQWLq2BH7fxFw9xlw CSuWnqfuWqauZKrB9vLr/soPWz8l7cU7S+vQpXXRLH57MJDJMiHeB9Bexqwsf6svlVb6h9lw== X-IMSS-DKIM-White-List: No;No X-TMASE-SNAP-Result: 1.821001.0001-0-1-12:0,22:0,33:0,34:0-0 Cc: Marek Vasut Subject: [U-Boot] [PATCH 2/6] i2c: rcar_i2c: Add comments about registers & values X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Ismael Luceno --- drivers/i2c/rcar_i2c.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/drivers/i2c/rcar_i2c.c b/drivers/i2c/rcar_i2c.c index bd7c37a207..7212587234 100644 --- a/drivers/i2c/rcar_i2c.c +++ b/drivers/i2c/rcar_i2c.c @@ -18,33 +18,33 @@ #include #include -#define RCAR_I2C_ICSCR 0x00 -#define RCAR_I2C_ICMCR 0x04 -#define RCAR_I2C_ICMCR_MDBS BIT(7) -#define RCAR_I2C_ICMCR_FSCL BIT(6) -#define RCAR_I2C_ICMCR_FSDA BIT(5) -#define RCAR_I2C_ICMCR_OBPC BIT(4) -#define RCAR_I2C_ICMCR_MIE BIT(3) +#define RCAR_I2C_ICSCR 0x00 /* slave ctrl */ +#define RCAR_I2C_ICMCR 0x04 /* master ctrl */ +#define RCAR_I2C_ICMCR_MDBS BIT(7) /* non-fifo mode switch */ +#define RCAR_I2C_ICMCR_FSCL BIT(6) /* override SCL pin */ +#define RCAR_I2C_ICMCR_FSDA BIT(5) /* override SDA pin */ +#define RCAR_I2C_ICMCR_OBPC BIT(4) /* override pins */ +#define RCAR_I2C_ICMCR_MIE BIT(3) /* master if enable */ #define RCAR_I2C_ICMCR_TSBE BIT(2) -#define RCAR_I2C_ICMCR_FSB BIT(1) -#define RCAR_I2C_ICMCR_ESG BIT(0) -#define RCAR_I2C_ICSSR 0x08 -#define RCAR_I2C_ICMSR 0x0c +#define RCAR_I2C_ICMCR_FSB BIT(1) /* force stop bit */ +#define RCAR_I2C_ICMCR_ESG BIT(0) /* enable start bit gen */ +#define RCAR_I2C_ICSSR 0x08 /* slave status */ +#define RCAR_I2C_ICMSR 0x0c /* master status */ #define RCAR_I2C_ICMSR_MASK 0x7f -#define RCAR_I2C_ICMSR_MNR BIT(6) -#define RCAR_I2C_ICMSR_MAL BIT(5) -#define RCAR_I2C_ICMSR_MST BIT(4) +#define RCAR_I2C_ICMSR_MNR BIT(6) /* Nack */ +#define RCAR_I2C_ICMSR_MAL BIT(5) /* Arbitration lost */ +#define RCAR_I2C_ICMSR_MST BIT(4) /* Stop */ #define RCAR_I2C_ICMSR_MDE ((u32)BIT(3)) #define RCAR_I2C_ICMSR_MDT BIT(2) #define RCAR_I2C_ICMSR_MDR ((u32)BIT(1)) #define RCAR_I2C_ICMSR_MAT BIT(0) -#define RCAR_I2C_ICSIER 0x10 -#define RCAR_I2C_ICMIER 0x14 -#define RCAR_I2C_ICCCR 0x18 +#define RCAR_I2C_ICSIER 0x10 /* slave irq enable */ +#define RCAR_I2C_ICMIER 0x14 /* master irq enable */ +#define RCAR_I2C_ICCCR 0x18 /* clock dividers */ #define RCAR_I2C_ICCCR_SCGD_OFF 3 -#define RCAR_I2C_ICSAR 0x1c -#define RCAR_I2C_ICMAR 0x20 -#define RCAR_I2C_ICRXD_ICTXD 0x24 +#define RCAR_I2C_ICSAR 0x1c /* slave address */ +#define RCAR_I2C_ICMAR 0x20 /* master address */ +#define RCAR_I2C_ICRXD_ICTXD 0x24 /* data port */ struct rcar_i2c_priv { void __iomem *base; From patchwork Mon Mar 4 14:19:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ismael Luceno Cortes X-Patchwork-Id: 1051128 X-Patchwork-Delegate: hs@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=silicon-gears.com Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 44ChyX0tw6z9s5R for ; Tue, 5 Mar 2019 01:20:52 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id C9FE1C21E1A; Mon, 4 Mar 2019 14:19:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id D7400C21D83; Mon, 4 Mar 2019 14:19:29 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id A84C9C21DD4; Mon, 4 Mar 2019 14:19:18 +0000 (UTC) Received: from mx1.silicon-gears.com (mx1.silicon-gears.com [81.47.169.96]) by lists.denx.de (Postfix) with ESMTPS id 0EB2DC21E07 for ; Mon, 4 Mar 2019 14:19:18 +0000 (UTC) From: Ismael Luceno Cortes To: "u-boot@lists.denx.de" Thread-Topic: [PATCH 3/6] i2c: rcar_i2c: Fix sending of slave addresses Thread-Index: AQHU0pU/8OTMssN3U0W1iXK3RhYlHg== Date: Mon, 4 Mar 2019 14:19:15 +0000 Message-ID: <20190304141838.4703-3-ismael.luceno@silicon-gears.com> References: <20190304141838.4703-1-ismael.luceno@silicon-gears.com> In-Reply-To: <20190304141838.4703-1-ismael.luceno@silicon-gears.com> Accept-Language: en-GB, es-ES, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-TM-AS-User-Approved-Sender: Yes;No X-TMASE-Result: 10-0.267400-10.000000 X-TMASE-MatchedRID: BQ2GT2T2hjJ81j9Wf8dpYimjEOrcO6AyTJDl9FKHbrkKogmGusPLb/pT EwYIBNth4vM1YF6AJbZWVhu8IR7GcAtuKBGekqUpm+MB6kaZ2g535S6hG/GQioljUpVl7Xu3aeD /0Gs+hG+eG1/bZSjdX1Kqhrk2npegAjafHu8evGuaiho8vxtP9MOjUQFWvKwOsQOGrK6EEtob+N nrrnzwGgZXX8DI70XVFwVtTn8Pj+qqUcpaEPPs/ID1CQ7wlvFu X-IMSS-DKIM-White-List: No;No X-TMASE-SNAP-Result: 1.821001.0001-0-1-12:0,22:0,33:0,34:0-0 Cc: Marek Vasut Subject: [U-Boot] [PATCH 3/6] i2c: rcar_i2c: Fix sending of slave addresses X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Do the reset before clearing the MSR, otherwise it may result in a read or write operation instead if the start condition is repeated. Signed-off-by: Ismael Luceno --- drivers/i2c/rcar_i2c.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/i2c/rcar_i2c.c b/drivers/i2c/rcar_i2c.c index 7212587234..8cdd37c006 100644 --- a/drivers/i2c/rcar_i2c.c +++ b/drivers/i2c/rcar_i2c.c @@ -120,9 +120,11 @@ static int rcar_i2c_set_addr(struct udevice *dev, u8 chip, u8 read) } writel((chip << 1) | read, priv->base + RCAR_I2C_ICMAR); - writel(0, priv->base + RCAR_I2C_ICMSR); + /* Reset */ writel(RCAR_I2C_ICMCR_MDBS | RCAR_I2C_ICMCR_MIE | RCAR_I2C_ICMCR_ESG, priv->base + RCAR_I2C_ICMCR); + /* Clear Status */ + writel(0, priv->base + RCAR_I2C_ICMSR); ret = wait_for_bit_le32(priv->base + RCAR_I2C_ICMSR, mask, true, 100, true); From patchwork Mon Mar 4 14:19:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ismael Luceno Cortes X-Patchwork-Id: 1051131 X-Patchwork-Delegate: hs@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=silicon-gears.com Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 44ChzK74bZz9s5R for ; Tue, 5 Mar 2019 01:21:33 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 7D873C21E08; Mon, 4 Mar 2019 14:20:09 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 52287C21DFF; Mon, 4 Mar 2019 14:19:39 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id C88CEC21DD3; Mon, 4 Mar 2019 14:19:22 +0000 (UTC) Received: from mx1.silicon-gears.com (mx1.silicon-gears.com [81.47.169.96]) by lists.denx.de (Postfix) with ESMTPS id 5919AC21DD9 for ; Mon, 4 Mar 2019 14:19:22 +0000 (UTC) From: Ismael Luceno Cortes To: "u-boot@lists.denx.de" Thread-Topic: [PATCH 4/6] i2c: rcar_i2c: Don't mask errors with EREMOTEIO at rcar_i2c_xfer Thread-Index: AQHU0pVBPjNZUnWlRUe1GCkfjU1JIQ== Date: Mon, 4 Mar 2019 14:19:19 +0000 Message-ID: <20190304141838.4703-4-ismael.luceno@silicon-gears.com> References: <20190304141838.4703-1-ismael.luceno@silicon-gears.com> In-Reply-To: <20190304141838.4703-1-ismael.luceno@silicon-gears.com> Accept-Language: en-GB, es-ES, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-TM-AS-User-Approved-Sender: Yes;No X-TMASE-Result: 10-0.307400-10.000000 X-TMASE-MatchedRID: /3Hwi0zbYrWwQEC6hpSor+KXavbHY/C1+lX/RcQoG2GbKItl61J/yRMZ G6kg1oMPwizX7tOT2pALbigRnpKlKVHxEBQar9JnxQ090zCazP+r1ea6bYt49DJTFM27PJAlQrI wEuuHKSeelmp42jtfgMUt84GqH7Wqu4nxsVq0t5d/7DylBqoZB7/tKHmyKqvCG/jZ66588BoGV1 /AyO9F1RcFbU5/D4/qqlHKWhDz7PyVgTkrDIygG8C+ksT6a9fy X-IMSS-DKIM-White-List: No;No X-TMASE-SNAP-Result: 1.821001.0001-0-1-12:0,22:0,33:0,34:0-0 Cc: Marek Vasut Subject: [U-Boot] [PATCH 4/6] i2c: rcar_i2c: Don't mask errors with EREMOTEIO at rcar_i2c_xfer X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Ismael Luceno --- drivers/i2c/rcar_i2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/i2c/rcar_i2c.c b/drivers/i2c/rcar_i2c.c index 8cdd37c006..b4cc0c55b1 100644 --- a/drivers/i2c/rcar_i2c.c +++ b/drivers/i2c/rcar_i2c.c @@ -207,7 +207,7 @@ static int rcar_i2c_xfer(struct udevice *dev, struct i2c_msg *msg, int nmsgs) ret = rcar_i2c_write_common(dev, msg); if (ret) - return -EREMOTEIO; + return ret; } return ret; From patchwork Mon Mar 4 14:19:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ismael Luceno Cortes X-Patchwork-Id: 1051129 X-Patchwork-Delegate: hs@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=silicon-gears.com Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 44ChyY5sgVz9s5R for ; Tue, 5 Mar 2019 01:20:53 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 4C6A3C21D83; Mon, 4 Mar 2019 14:19:56 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 8A30AC21DF3; Mon, 4 Mar 2019 14:19:33 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 7875CC21E02; Mon, 4 Mar 2019 14:19:25 +0000 (UTC) Received: from mx1.silicon-gears.com (mx1.silicon-gears.com [81.47.169.96]) by lists.denx.de (Postfix) with ESMTPS id ED8FDC21D83 for ; Mon, 4 Mar 2019 14:19:24 +0000 (UTC) From: Ismael Luceno Cortes To: "u-boot@lists.denx.de" Thread-Topic: [PATCH 5/6] i2c: rcar_i2c: Set the slave address from rcar_i2c_xfer Thread-Index: AQHU0pVDTr0f95BhwUOX2uQDavwITQ== Date: Mon, 4 Mar 2019 14:19:22 +0000 Message-ID: <20190304141838.4703-5-ismael.luceno@silicon-gears.com> References: <20190304141838.4703-1-ismael.luceno@silicon-gears.com> In-Reply-To: <20190304141838.4703-1-ismael.luceno@silicon-gears.com> Accept-Language: en-GB, es-ES, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-TM-AS-User-Approved-Sender: Yes;No X-TMASE-Result: 10--0.869000-10.000000 X-TMASE-MatchedRID: PXdZx1sZHpDil2r2x2PwtYLFgHaE9Li9JLfQYoCQHFaN7SOBx76y8uLz NWBegCW2dLi9Cu3ziTdYF3qW3Je6+wR6UzQsxdBInLEcXmkfAvBmdKpmDHyaP+lUtQgfdzVwLc6 5yvYzxJV+dMR3UOdsDSoAaHhTw84uIzPi7BkwxWG87IzfU0jSngQCdzxuGzyLNwWJ/2nSBXUWU5 ZF6Nobk4u51LXw1EztS1oD4daiqmd+3BndfXUhXQ== X-IMSS-DKIM-White-List: No;No X-TMASE-SNAP-Result: 1.821001.0001-0-1-12:0,22:0,33:0,34:0-0 Cc: Marek Vasut Subject: [U-Boot] [PATCH 5/6] i2c: rcar_i2c: Set the slave address from rcar_i2c_xfer X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Ismael Luceno --- drivers/i2c/rcar_i2c.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/drivers/i2c/rcar_i2c.c b/drivers/i2c/rcar_i2c.c index b4cc0c55b1..5e04b68d95 100644 --- a/drivers/i2c/rcar_i2c.c +++ b/drivers/i2c/rcar_i2c.c @@ -144,10 +144,6 @@ static int rcar_i2c_read_common(struct udevice *dev, struct i2c_msg *msg) u32 icmcr = RCAR_I2C_ICMCR_MDBS | RCAR_I2C_ICMCR_MIE; int i, ret = -EREMOTEIO; - ret = rcar_i2c_set_addr(dev, msg->addr, 1); - if (ret) - return ret; - for (i = 0; i < msg->len; i++) { if (msg->len - 1 == i) icmcr |= RCAR_I2C_ICMCR_FSB; @@ -174,10 +170,6 @@ static int rcar_i2c_write_common(struct udevice *dev, struct i2c_msg *msg) u32 icmcr = RCAR_I2C_ICMCR_MDBS | RCAR_I2C_ICMCR_MIE; int i, ret = -EREMOTEIO; - ret = rcar_i2c_set_addr(dev, msg->addr, 0); - if (ret) - return ret; - for (i = 0; i < msg->len; i++) { writel(msg->buf[i], priv->base + RCAR_I2C_ICRXD_ICTXD); writel(icmcr, priv->base + RCAR_I2C_ICMCR); @@ -201,6 +193,10 @@ static int rcar_i2c_xfer(struct udevice *dev, struct i2c_msg *msg, int nmsgs) int ret; for (; nmsgs > 0; nmsgs--, msg++) { + ret = rcar_i2c_set_addr(dev, msg->addr, 1); + if (ret) + return -EREMOTEIO; + if (msg->flags & I2C_M_RD) ret = rcar_i2c_read_common(dev, msg); else @@ -210,7 +206,7 @@ static int rcar_i2c_xfer(struct udevice *dev, struct i2c_msg *msg, int nmsgs) return ret; } - return ret; + return 0; } static int rcar_i2c_probe_chip(struct udevice *dev, uint addr, uint flags) From patchwork Mon Mar 4 14:19:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ismael Luceno Cortes X-Patchwork-Id: 1051130 X-Patchwork-Delegate: hs@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=silicon-gears.com Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 44Chyj3LStz9s5R for ; Tue, 5 Mar 2019 01:21:01 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 25193C21DFF; Mon, 4 Mar 2019 14:20:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id EC734C21CB1; Mon, 4 Mar 2019 14:19:48 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 2D7D3C21D65; Mon, 4 Mar 2019 14:19:31 +0000 (UTC) Received: from mx1.silicon-gears.com (mx1.silicon-gears.com [81.47.169.96]) by lists.denx.de (Postfix) with ESMTPS id 1AC9CC21D9A for ; Mon, 4 Mar 2019 14:19:28 +0000 (UTC) From: Ismael Luceno Cortes To: "u-boot@lists.denx.de" Thread-Topic: [PATCH 6/6] i2c: rcar_i2c: Move FSDA check to rcar_i2c_recover Thread-Index: AQHU0pVF5hoYcEnSTEmvE97A02egbg== Date: Mon, 4 Mar 2019 14:19:25 +0000 Message-ID: <20190304141838.4703-6-ismael.luceno@silicon-gears.com> References: <20190304141838.4703-1-ismael.luceno@silicon-gears.com> In-Reply-To: <20190304141838.4703-1-ismael.luceno@silicon-gears.com> Accept-Language: en-GB, es-ES, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-TM-AS-User-Approved-Sender: Yes;No X-TMASE-Result: 10--3.537100-10.000000 X-TMASE-MatchedRID: PXdZx1sZHpDil2r2x2PwtVpq//Jp4zBuol3uZzZ1GLdZoZUwtnkREuLz NWBegCW2dLi9Cu3ziTdYF3qW3Je6+w8ZBQ5N1J3GQ56jrtt9a2kIkG3vRTSIsSUTsGr5bO/9pqp BIs3YAn43Y3bcWhB0bHNMm53iJxhhLKqFyN8SH3YA9+ZsB56KjgQCdzxuGzyLNwWJ/2nSBXUWU5 ZF6Nobk4u51LXw1EztS1oD4daiqmd+3BndfXUhXQ== X-IMSS-DKIM-White-List: No;No X-TMASE-SNAP-Result: 1.821001.0001-0-1-12:0,22:0,33:0,34:0-0 Cc: Marek Vasut Subject: [U-Boot] [PATCH 6/6] i2c: rcar_i2c: Move FSDA check to rcar_i2c_recover X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Signed-off-by: Ismael Luceno --- drivers/i2c/rcar_i2c.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/i2c/rcar_i2c.c b/drivers/i2c/rcar_i2c.c index 5e04b68d95..b829e8b20d 100644 --- a/drivers/i2c/rcar_i2c.c +++ b/drivers/i2c/rcar_i2c.c @@ -68,7 +68,7 @@ static int rcar_i2c_finish(struct udevice *dev) return ret; } -static void rcar_i2c_recover(struct udevice *dev) +static int rcar_i2c_recover(struct udevice *dev) { struct rcar_i2c_priv *priv = dev_get_priv(dev); u32 mcr = RCAR_I2C_ICMCR_MDBS | RCAR_I2C_ICMCR_OBPC; @@ -93,6 +93,9 @@ static void rcar_i2c_recover(struct udevice *dev) udelay(5); writel(mcra | RCAR_I2C_ICMCR_FSCL, priv->base + RCAR_I2C_ICMCR); udelay(5); + + u32 val = readl(priv->base + RCAR_I2C_ICMSR); + return val & RCAR_I2C_ICMCR_FSDA; } static int rcar_i2c_set_addr(struct udevice *dev, u8 chip, u8 read) @@ -108,12 +111,11 @@ static int rcar_i2c_set_addr(struct udevice *dev, u8 chip, u8 read) writel(0, priv->base + RCAR_I2C_ICMSR); writel(priv->icccr, priv->base + RCAR_I2C_ICCCR); + /* Wait for the bus */ ret = wait_for_bit_le32(priv->base + RCAR_I2C_ICMCR, RCAR_I2C_ICMCR_FSDA, false, 2, true); if (ret) { - rcar_i2c_recover(dev); - val = readl(priv->base + RCAR_I2C_ICMSR); - if (val & RCAR_I2C_ICMCR_FSDA) { + if (rcar_i2c_recover(dev)) { dev_err(dev, "Bus busy, aborting\n"); return ret; }