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>,
	Chunfeng Yun <chunfeng.yun@mediatek.com>,
	linux-usb@vger.kernel.org, devicetree@vger.kernel.org,
	linux-renesas-soc@vger.kernel.org, Chris
Subject: [PATCH v3 10/15] usb: renesas_usbhs: support byte addressable CFIFO
Date: Tue, 14 May 2019 09:56:00 -0500	[thread overview]
Message-ID: <20190514145605.19112-11-chris.brandt@renesas.com> (raw)
In-Reply-To: <20190514145605.19112-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>
---
v2:
 * options ahve moved from flags to param
---
 drivers/usb/renesas_usbhs/fifo.c  | 9 +++++++--
 include/linux/usb/renesas_usbhs.h | 1 +
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/renesas_usbhs/fifo.c b/drivers/usb/renesas_usbhs/fifo.c
index 39fa2fc1b8b7..452b456ac24e 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 (usbhs_get_dparam(priv, 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
diff --git a/include/linux/usb/renesas_usbhs.h b/include/linux/usb/renesas_usbhs.h
index 9097a38fcda8..87043fd21d54 100644
--- a/include/linux/usb/renesas_usbhs.h
+++ b/include/linux/usb/renesas_usbhs.h
@@ -191,6 +191,7 @@ struct renesas_usbhs_driver_param {
 	u32 has_usb_dmac:1; /* for USB-DMAC */
 	u32 runtime_pwctrl:1;
 	u32 has_cnen:1;
+	u32 cfifo_byte_addr:1; /* CFIFO is byte addressable */
 #define USBHS_USB_DMAC_XFER_SIZE	32	/* hardcode the xfer size */
 };
 
-- 
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>,
	Chunfeng Yun <chunfeng.yun@mediatek.com>,
	<linux-usb@vger.kernel.org>, <devicetree@vger.kernel.org>,
	<linux-renesas-soc@vger.kernel.org>,
	"Chris Brandt" <chris.brandt@renesas.com>
Subject: [PATCH v3 10/15] usb: renesas_usbhs: support byte addressable CFIFO
Date: Tue, 14 May 2019 09:56:00 -0500	[thread overview]
Message-ID: <20190514145605.19112-11-chris.brandt@renesas.com> (raw)
In-Reply-To: <20190514145605.19112-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>
---
v2:
 * options ahve moved from flags to param
---
 drivers/usb/renesas_usbhs/fifo.c  | 9 +++++++--
 include/linux/usb/renesas_usbhs.h | 1 +
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/renesas_usbhs/fifo.c b/drivers/usb/renesas_usbhs/fifo.c
index 39fa2fc1b8b7..452b456ac24e 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 (usbhs_get_dparam(priv, 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
diff --git a/include/linux/usb/renesas_usbhs.h b/include/linux/usb/renesas_usbhs.h
index 9097a38fcda8..87043fd21d54 100644
--- a/include/linux/usb/renesas_usbhs.h
+++ b/include/linux/usb/renesas_usbhs.h
@@ -191,6 +191,7 @@ struct renesas_usbhs_driver_param {
 	u32 has_usb_dmac:1; /* for USB-DMAC */
 	u32 runtime_pwctrl:1;
 	u32 has_cnen:1;
+	u32 cfifo_byte_addr:1; /* CFIFO is byte addressable */
 #define USBHS_USB_DMAC_XFER_SIZE	32	/* hardcode the xfer size */
 };
 
-- 
2.16.1


  parent reply	other threads:[~2019-05-14 14:56 UTC|newest]

Thread overview: 114+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-14 14:55 [PATCH v3 00/15] usb: Add host and device support for RZ/A2 Chris Brandt
2019-05-14 14:55 ` Chris Brandt
2019-05-14 14:55 ` [PATCH v3 01/15] ARM: dts: r7s9210: Add USB clock Chris Brandt
2019-05-14 14:55   ` Chris Brandt
2019-05-15  7:38   ` Geert Uytterhoeven
2019-05-15  7:38     ` Geert Uytterhoeven
2019-05-15  7:52     ` Simon Horman
2019-05-15  7:52       ` Simon Horman
2019-05-14 14:55 ` [PATCH v3 02/15] ARM: dts: rza2mevb: Add 48MHz " Chris Brandt
2019-05-14 14:55   ` Chris Brandt
2019-05-15  7:43   ` Geert Uytterhoeven
2019-05-15  7:43     ` Geert Uytterhoeven
2019-05-15  7:53     ` Simon Horman
2019-05-15  7:53       ` Simon Horman
2019-05-14 14:55 ` [PATCH v3 03/15] phy: renesas: rcar-gen3-usb2: detect usb_x1 clock Chris Brandt
2019-05-14 14:55   ` Chris Brandt
2019-05-15  7:32   ` Yoshihiro Shimoda
2019-05-15  7:32     ` Yoshihiro Shimoda
2019-05-15  8:02   ` Simon Horman
2019-05-15  8:30   ` Kuninori Morimoto
2019-05-15  8:30     ` Kuninori Morimoto
2019-05-14 14:55 ` [PATCH v3 04/15] dt-bindings: rcar-gen3-phy-usb2: Document use of usb_x1 Chris Brandt
2019-05-14 14:55   ` Chris Brandt
2019-05-14 19:29   ` Rob Herring
2019-05-14 19:29     ` Rob Herring
2019-05-15  7:33   ` Yoshihiro Shimoda
2019-05-15  7:33     ` Yoshihiro Shimoda
2019-05-15  7:35   ` Geert Uytterhoeven
2019-05-15  7:35     ` Geert Uytterhoeven
2019-05-15  8:39     ` Sergei Shtylyov
2019-05-15  8:39       ` Sergei Shtylyov
2019-05-15  9:03       ` Geert Uytterhoeven
2019-05-15  9:03         ` Geert Uytterhoeven
2019-05-15  7:57   ` Simon Horman
2019-05-14 14:55 ` [PATCH v3 05/15] phy: renesas: rcar-gen3-usb2: Check dr_mode when not using OTG Chris Brandt
2019-05-14 14:55   ` Chris Brandt
2019-05-15  7:34   ` Yoshihiro Shimoda
2019-05-15  7:34     ` Yoshihiro Shimoda
2019-05-15  8:01   ` Simon Horman
2019-05-14 14:55 ` [PATCH v3 06/15] dt-bindings: rcar-gen3-phy-usb2: Document dr_mode Chris Brandt
2019-05-14 14:55   ` Chris Brandt
2019-05-14 19:29   ` Rob Herring
2019-05-14 19:29     ` Rob Herring
2019-05-15  7:36   ` Yoshihiro Shimoda
2019-05-15  7:36     ` Yoshihiro Shimoda
2019-05-15  7:56   ` Simon Horman
2019-05-14 14:55 ` [PATCH v3 07/15] dt-bindings: rcar-gen3-phy-usb2: Add r7s9210 support Chris Brandt
2019-05-14 14:55   ` Chris Brandt
2019-05-14 19:30   ` Rob Herring
2019-05-14 19:30     ` Rob Herring
2019-05-15  7:37   ` Yoshihiro Shimoda
2019-05-15  7:37     ` Yoshihiro Shimoda
2019-05-15  7:56   ` Simon Horman
2019-05-14 14:55 ` [PATCH v3 08/15] usb: renesas_usbhs: move flags to param Chris Brandt
2019-05-14 14:55   ` Chris Brandt
2019-05-15  7:45   ` Yoshihiro Shimoda
2019-05-15  7:45     ` Yoshihiro Shimoda
2019-05-15  7:55   ` Simon Horman
2019-05-14 14:55 ` [PATCH v3 09/15] usb: renesas_usbhs: add support for CNEN bit Chris Brandt
2019-05-14 14:55   ` Chris Brandt
2019-05-15  7:46   ` Yoshihiro Shimoda
2019-05-15  7:46     ` Yoshihiro Shimoda
2019-05-15  7:55   ` Simon Horman
2019-05-14 14:56 ` Chris Brandt [this message]
2019-05-14 14:56   ` [PATCH v3 10/15] usb: renesas_usbhs: support byte addressable CFIFO Chris Brandt
2019-05-15  7:48   ` Yoshihiro Shimoda
2019-05-15  7:48     ` Yoshihiro Shimoda
2019-05-15  7:57     ` Yoshihiro Shimoda
2019-05-15  7:57       ` Yoshihiro Shimoda
2019-05-15  8:05   ` Simon Horman
2019-05-14 14:56 ` [PATCH v3 11/15] usb: renesas_usbhs: Add support for RZ/A2 Chris Brandt
2019-05-14 14:56   ` Chris Brandt
2019-05-15  7:52   ` Yoshihiro Shimoda
2019-05-15  7:52     ` Yoshihiro Shimoda
2019-05-15 13:09     ` Chris Brandt
2019-05-15 13:09       ` Chris Brandt
2019-05-15  8:06   ` Simon Horman
2019-05-15  8:26   ` Kuninori Morimoto
2019-05-15  8:26     ` Kuninori Morimoto
2019-05-15 14:18     ` Chris Brandt
2019-05-15 14:18       ` Chris Brandt
2019-05-14 14:56 ` [PATCH v3 12/15] dt-bindings: usb: renesas_usbhs: Add support for r7s9210 Chris Brandt
2019-05-14 14:56   ` Chris Brandt
2019-05-14 19:30   ` Rob Herring
2019-05-14 19:30     ` Rob Herring
2019-05-15  7:53   ` Yoshihiro Shimoda
2019-05-15  7:53     ` Yoshihiro Shimoda
2019-05-15  8:00   ` Geert Uytterhoeven
2019-05-15  8:00     ` Geert Uytterhoeven
2019-05-15 13:11     ` Chris Brandt
2019-05-15 13:11       ` Chris Brandt
2019-05-15  8:07   ` Simon Horman
2019-05-14 14:56 ` [PATCH v3 13/15] ARM: dts: r7s9210: Add USB Host support Chris Brandt
2019-05-14 14:56   ` Chris Brandt
2019-05-15  7:59   ` Geert Uytterhoeven
2019-05-15  7:59     ` Geert Uytterhoeven
2019-05-15 13:38     ` Chris Brandt
2019-05-15 13:38       ` Chris Brandt
2019-05-15  9:05   ` Geert Uytterhoeven
2019-05-15  9:05     ` Geert Uytterhoeven
2019-05-14 14:56 ` [PATCH v3 14/15] ARM: dts: r7s9210: Add USB Device support Chris Brandt
2019-05-14 14:56   ` Chris Brandt
2019-05-15  8:02   ` Geert Uytterhoeven
2019-05-15  8:02     ` Geert Uytterhoeven
2019-05-14 14:56 ` [PATCH v3 15/15] ARM: dts: rza2mevb: Add USB host support Chris Brandt
2019-05-14 14:56   ` Chris Brandt
2019-05-15  8:21   ` Geert Uytterhoeven
2019-05-15  8:21     ` Geert Uytterhoeven
2019-05-15 14:03     ` Chris Brandt
2019-05-15 14:03       ` Chris Brandt
2019-05-15 14:33       ` Geert Uytterhoeven
2019-05-15 14:33         ` Geert Uytterhoeven
2019-05-15 14:54         ` Chris Brandt
2019-05-15 14:54           ` 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=20190514145605.19112-11-chris.brandt@renesas.com \
    --to=chris.brandt@renesas.com \
    --cc=chunfeng.yun@mediatek.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.