All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Brandt <chris.brandt@renesas.com>
To: Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Simon Horman <horms@verge.net.au>,
	Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>,
	Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>,
	linux-usb@vger.kernel.org, devicetree@vger.kernel.org,
	linux-renesas-soc@vger.kernel.org, Chris
Subject: [PATCH v2 10/15] usb: renesas_usbhs: support byte addressable CFIFO
Date: Thu, 9 May 2019 15:11:37 -0500	[thread overview]
Message-ID: <20190509201142.10543-11-chris.brandt@renesas.com> (raw)
In-Reply-To: <20190509201142.10543-1-chris.brandt@renesas.com>

Some SoC have a CFIFO register that is byte addressable. This means
when the CFIFO access is set to 32-bit, you can write 8-bit values to
addresses CFIFO+0, CFIFO+1, CFIFO+2, CFIFO+3.

Signed-off-by: Chris Brandt <chris.brandt@renesas.com>
---
 drivers/usb/renesas_usbhs/common.h | 1 +
 drivers/usb/renesas_usbhs/fifo.c   | 9 +++++++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/renesas_usbhs/common.h b/drivers/usb/renesas_usbhs/common.h
index 211ab8e741be..af4aec703ab1 100644
--- a/drivers/usb/renesas_usbhs/common.h
+++ b/drivers/usb/renesas_usbhs/common.h
@@ -345,6 +345,7 @@ struct usbhs_priv *usbhs_pdev_to_priv(struct platform_device *pdev);
  */
 #define USBHSF_RUNTIME_PWCTRL	(1 << 0)
 #define USBHSF_HAS_CNEN		(1 << 1) /* Single-ended receiver */
+#define USBHSF_CFIFO_BYTE_ADDR	(1 << 2) /* Byte addressable */
 
 #define usbhsc_flags_init(p)   ((p)->flags = 0)
 #define usbhsc_flags_set(p, b) ((p)->flags |=  (b))
diff --git a/drivers/usb/renesas_usbhs/fifo.c b/drivers/usb/renesas_usbhs/fifo.c
index 39fa2fc1b8b7..b313ee637e53 100644
--- a/drivers/usb/renesas_usbhs/fifo.c
+++ b/drivers/usb/renesas_usbhs/fifo.c
@@ -543,8 +543,13 @@ static int usbhsf_pio_try_push(struct usbhs_pkt *pkt, int *is_done)
 	}
 
 	/* the rest operation */
-	for (i = 0; i < len; i++)
-		iowrite8(buf[i], addr + (0x03 - (i & 0x03)));
+	if (usbhsc_flags_has(priv, USBHSF_CFIFO_BYTE_ADDR)) {
+		for (i = 0; i < len; i++)
+			iowrite8(buf[i], addr + (i & 0x03));
+	} else {
+		for (i = 0; i < len; i++)
+			iowrite8(buf[i], addr + (0x03 - (i & 0x03)));
+	}
 
 	/*
 	 * variable update
-- 
2.16.1

WARNING: multiple messages have this Message-ID (diff)
From: Chris Brandt <chris.brandt@renesas.com>
To: Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Simon Horman <horms@verge.net.au>,
	Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>,
	Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>,
	<linux-usb@vger.kernel.org>, <devicetree@vger.kernel.org>,
	<linux-renesas-soc@vger.kernel.org>,
	"Chris Brandt" <chris.brandt@renesas.com>
Subject: [PATCH v2 10/15] usb: renesas_usbhs: support byte addressable CFIFO
Date: Thu, 9 May 2019 15:11:37 -0500	[thread overview]
Message-ID: <20190509201142.10543-11-chris.brandt@renesas.com> (raw)
In-Reply-To: <20190509201142.10543-1-chris.brandt@renesas.com>

Some SoC have a CFIFO register that is byte addressable. This means
when the CFIFO access is set to 32-bit, you can write 8-bit values to
addresses CFIFO+0, CFIFO+1, CFIFO+2, CFIFO+3.

Signed-off-by: Chris Brandt <chris.brandt@renesas.com>
---
 drivers/usb/renesas_usbhs/common.h | 1 +
 drivers/usb/renesas_usbhs/fifo.c   | 9 +++++++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/renesas_usbhs/common.h b/drivers/usb/renesas_usbhs/common.h
index 211ab8e741be..af4aec703ab1 100644
--- a/drivers/usb/renesas_usbhs/common.h
+++ b/drivers/usb/renesas_usbhs/common.h
@@ -345,6 +345,7 @@ struct usbhs_priv *usbhs_pdev_to_priv(struct platform_device *pdev);
  */
 #define USBHSF_RUNTIME_PWCTRL	(1 << 0)
 #define USBHSF_HAS_CNEN		(1 << 1) /* Single-ended receiver */
+#define USBHSF_CFIFO_BYTE_ADDR	(1 << 2) /* Byte addressable */
 
 #define usbhsc_flags_init(p)   ((p)->flags = 0)
 #define usbhsc_flags_set(p, b) ((p)->flags |=  (b))
diff --git a/drivers/usb/renesas_usbhs/fifo.c b/drivers/usb/renesas_usbhs/fifo.c
index 39fa2fc1b8b7..b313ee637e53 100644
--- a/drivers/usb/renesas_usbhs/fifo.c
+++ b/drivers/usb/renesas_usbhs/fifo.c
@@ -543,8 +543,13 @@ static int usbhsf_pio_try_push(struct usbhs_pkt *pkt, int *is_done)
 	}
 
 	/* the rest operation */
-	for (i = 0; i < len; i++)
-		iowrite8(buf[i], addr + (0x03 - (i & 0x03)));
+	if (usbhsc_flags_has(priv, USBHSF_CFIFO_BYTE_ADDR)) {
+		for (i = 0; i < len; i++)
+			iowrite8(buf[i], addr + (i & 0x03));
+	} else {
+		for (i = 0; i < len; i++)
+			iowrite8(buf[i], addr + (0x03 - (i & 0x03)));
+	}
 
 	/*
 	 * variable update
-- 
2.16.1


  parent reply	other threads:[~2019-05-09 20:11 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-09 20:11 [PATCH v2 00/15] usb: Add host and device support for RZ/A2 Chris Brandt
2019-05-09 20:11 ` Chris Brandt
2019-05-09 20:11 ` [PATCH v2 01/15] ARM: dts: r7s9210: Add USB clock Chris Brandt
2019-05-09 20:11   ` Chris Brandt
2019-05-13 12:25   ` Simon Horman
2019-05-09 20:11 ` [PATCH v2 02/15] ARM: dts: rza2mevb: Add 48MHz " Chris Brandt
2019-05-09 20:11   ` Chris Brandt
2019-05-13 12:26   ` Simon Horman
2019-05-09 20:11 ` [PATCH v2 03/15] phy: renesas: rcar-gen3-usb2: detect usb_x1 clock Chris Brandt
2019-05-09 20:11   ` Chris Brandt
2019-05-10  1:57   ` Chunfeng Yun
2019-05-10  1:57     ` Chunfeng Yun
2019-05-10 13:17     ` Chris Brandt
2019-05-10 13:17       ` Chris Brandt
2019-05-10  4:17   ` Yoshihiro Shimoda
2019-05-10  4:17     ` Yoshihiro Shimoda
2019-05-10  6:56     ` Geert Uytterhoeven
2019-05-10  6:56       ` Geert Uytterhoeven
2019-05-09 20:11 ` [PATCH v2 04/15] dt-bindings: rcar-gen3-phy-usb2: Document use of usb_x1 Chris Brandt
2019-05-09 20:11   ` Chris Brandt
2019-05-10  4:38   ` Yoshihiro Shimoda
2019-05-10  4:38     ` Yoshihiro Shimoda
2019-05-10  6:55     ` Geert Uytterhoeven
2019-05-10  6:55       ` Geert Uytterhoeven
2019-05-13 21:07       ` Chris Brandt
2019-05-13 21:07         ` Chris Brandt
2019-05-13 21:12         ` Geert Uytterhoeven
2019-05-13 21:12           ` Geert Uytterhoeven
2019-05-13 21:24           ` Chris Brandt
2019-05-13 21:24             ` Chris Brandt
2019-05-09 20:11 ` [PATCH v2 05/15] phy: renesas: rcar-gen3-usb2: Check dr_mode when not using OTG Chris Brandt
2019-05-09 20:11   ` Chris Brandt
2019-05-10  8:36   ` Sergei Shtylyov
2019-05-10 13:55     ` Chris Brandt
2019-05-10 13:55       ` Chris Brandt
2019-05-11  7:39       ` Sergei Shtylyov
2019-05-11  7:39         ` Sergei Shtylyov
2019-05-11 12:05         ` Chris Brandt
2019-05-11 12:05           ` Chris Brandt
2019-05-09 20:11 ` [PATCH v2 06/15] dt-bindings: rcar-gen3-phy-usb2: Document dr_mode Chris Brandt
2019-05-09 20:11   ` Chris Brandt
2019-05-09 20:11 ` [PATCH v2 07/15] dt-bindings: rcar-gen3-phy-usb2: Add r7s9210 support Chris Brandt
2019-05-09 20:11   ` Chris Brandt
2019-05-09 20:11 ` [PATCH v2 08/15] usb: renesas_usbhs: move flags macros Chris Brandt
2019-05-09 20:11   ` Chris Brandt
2019-05-10  1:59   ` Chunfeng Yun
2019-05-10  1:59     ` Chunfeng Yun
2019-05-10  8:41   ` Sergei Shtylyov
2019-05-10 14:00     ` Chris Brandt
2019-05-10 14:00       ` Chris Brandt
2019-05-09 20:11 ` [PATCH v2 09/15] usb: renesas_usbhs: add support for CNEN bit Chris Brandt
2019-05-09 20:11   ` Chris Brandt
2019-05-09 20:11 ` Chris Brandt [this message]
2019-05-09 20:11   ` [PATCH v2 10/15] usb: renesas_usbhs: support byte addressable CFIFO Chris Brandt
2019-05-09 20:11 ` [PATCH v2 11/15] usb: renesas_usbhs: Add support for RZ/A2 Chris Brandt
2019-05-09 20:11   ` Chris Brandt
2019-05-10  1:53   ` Chunfeng Yun
2019-05-10  1:53     ` Chunfeng Yun
2019-05-10 13:10     ` Chris Brandt
2019-05-10 13:10       ` Chris Brandt
2019-05-10  7:07   ` Geert Uytterhoeven
2019-05-10  7:07     ` Geert Uytterhoeven
2019-05-10  8:16     ` Yoshihiro Shimoda
2019-05-10 11:00       ` Yoshihiro Shimoda
2019-05-10 14:20         ` Chris Brandt
2019-05-09 20:11 ` [PATCH v2 12/15] dt-bindings: usb: renesas_usbhs: Add support for r7s9210 Chris Brandt
2019-05-09 20:11   ` Chris Brandt
2019-05-09 20:11 ` [PATCH v2 13/15] ARM: dts: r7s9210: Add USB Host support Chris Brandt
2019-05-09 20:11   ` Chris Brandt
2019-05-09 20:11 ` [PATCH v2 14/15] ARM: dts: r7s9210: Add USB Device support Chris Brandt
2019-05-09 20:11   ` Chris Brandt
2019-05-09 20:11 ` [PATCH v2 15/15] ARM: dts: rza2mevb: Add USB host support Chris Brandt
2019-05-09 20:11   ` Chris Brandt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190509201142.10543-11-chris.brandt@renesas.com \
    --to=chris.brandt@renesas.com \
    --cc=devicetree@vger.kernel.org \
    --cc=geert@linux-m68k.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=horms@verge.net.au \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=sergei.shtylyov@cogentembedded.com \
    --cc=yoshihiro.shimoda.uh@renesas.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.