Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Rudi Heitbaum <rudi@heitbaum.com>
To: "Chaoyi Chen" <chaoyi.chen@rock-chips.com>,
	"Heiko Stübner" <heiko@sntech.de>
Cc: Matthias Kaehlcke <mka@chromium.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-usb@vger.kernel.org, linux-rockchip@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, rudi@heitbaum.com
Subject: [PATCH v2] usb: onboard_dev: add the Rockchip rk1808
Date: Sat, 5 Sep 2026 04:30:17 +0000	[thread overview]
Message-ID: <apua2dvd7gBXHVM-@1b5ead44ca90> (raw)

The rk1808 is the npu die in an rk3399pro package. It is wired to one of the
usb3 controllers rather than to an external port, and it needs its reference
clock running before it will boot, which is what this driver exists to do
for onboard devices. It also needs six rails up and its reset released
before it appears on the bus.

MAX_SUPPLIES changes from 2 to 6 for the supplies. The array is fixed size
in the static pdata and onboard_dev_priv.

The rails have no ordering requirement, so enabling them together
and releasing reset 25 ms later is reliably working.

Both product ids are matched. 2207:180a is the die in maskrom awaiting
a firmware download, 2207:1808 the same die afterwards.

Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
---
v2:
- describe the six rails and the reset instead of binding with an empty
  entry, so the die is brought up by the kernel rather than a userspace
  script
- raise MAX_SUPPLIES from 2 to 6 to make room for them
- checked on hardware that the rails have no ordering requirement, so the
  concurrent regulator_bulk_enable() already in onboard_usb_dev is
  sufficient (Chaoyi Chen)

v1: https://lore.kernel.org/all/aouw7rH6FZxscUTO@0d3a7a881997/

---
 drivers/usb/misc/onboard_usb_dev.h | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/misc/onboard_usb_dev.h b/drivers/usb/misc/onboard_usb_dev.h
index 3523f8f8a149..b252cce32f86 100644
--- a/drivers/usb/misc/onboard_usb_dev.h
+++ b/drivers/usb/misc/onboard_usb_dev.h
@@ -6,7 +6,7 @@
 #ifndef _USB_MISC_ONBOARD_USB_DEV_H
 #define _USB_MISC_ONBOARD_USB_DEV_H
 
-#define MAX_SUPPLIES 2
+#define MAX_SUPPLIES 6
 
 struct onboard_dev_pdata {
 	unsigned long reset_us;		/* reset pulse width in us */
@@ -134,6 +134,13 @@ static const struct onboard_dev_pdata xmos_xvf3500_data = {
 	.is_hub = false,
 };
 
+static const struct onboard_dev_pdata rockchip_rk1808_data = {
+	.reset_us = 25000,
+	.num_supplies = 6,
+	.supply_names = { "vdd", "vddlog", "vddcpu", "vdd0v8", "vcc1v8", "vccio" },
+	.is_hub = false,
+};
+
 static const struct of_device_id onboard_dev_match[] = {
 	{ .compatible = "usb-a-connector", .data = &usb_a_conn_data, },
 	{ .compatible = "usb424,2412", .data = &microchip_usb424_data, },
@@ -167,6 +174,8 @@ static const struct of_device_id onboard_dev_match[] = {
 	{ .compatible = "usb2109,817", .data = &vialab_vl817_data, },
 	{ .compatible = "usb2109,2817", .data = &vialab_vl817_data, },
 	{ .compatible = "usb20b1,0013", .data = &xmos_xvf3500_data, },
+	{ .compatible = "usb2207,1808", .data = &rockchip_rk1808_data, },
+	{ .compatible = "usb2207,180a", .data = &rockchip_rk1808_data, },
 	{ .compatible = "usb3431,6241", .data = &corechips_sl6341_data, },
 	{ .compatible = "usb3431,6341", .data = &corechips_sl6341_data, },
 	{ .compatible = "usb5986,1198", .data = &bison_intcamera_data, },
-- 
2.53.0



                 reply	other threads:[~2026-09-05  4:31 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=apua2dvd7gBXHVM-@1b5ead44ca90 \
    --to=rudi@heitbaum.com \
    --cc=chaoyi.chen@rock-chips.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=heiko@sntech.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mka@chromium.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox