CoreChips SL6341 is a 4-port USB 2.0 and 3.0 hub controller. It always
requires external 1v1 power and can optionally use external 3v3 power
(or alternatively it has a 5v->3v3 LDO built in to derive 3v3 power from
VBUS). It also exposes a reset pin.

Device tree bindings are queued up for upstream release with Linux 7.1

Link: 
https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/usb/corechips%2Csl6341.yaml
Signed-off-by: Alexey Charkov <[email protected]>
---
 common/usb_onboard_hub.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/common/usb_onboard_hub.c b/common/usb_onboard_hub.c
index 6fc34489a98f..d15d7bbff87d 100644
--- a/common/usb_onboard_hub.c
+++ b/common/usb_onboard_hub.c
@@ -262,6 +262,12 @@ static int usb_onboard_hub_remove(struct udevice *dev)
        return ret;
 }
 
+static const struct onboard_hub_data corechips_sl6341_data = {
+       .reset_us = 10000,
+       .num_supplies = 2,
+       .supply_names = { "vdd1v1-supply", "vdd3v3-supply" },
+};
+
 static const struct onboard_hub_data usb2514_data = {
        .power_on_delay_us = 500,
        .reset_us = 1,
@@ -299,6 +305,12 @@ static const struct udevice_id usb_onboard_hub_ids[] = {
        }, {
                .compatible = "usb4b4,6506",    /* Cypress HX3 USB 2.0 */
                .data = (ulong)&usbhx3_data,
+       }, {
+               .compatible = "usb3431,6241",   /* Corechips SL6341 USB 2.0 */
+               .data = (ulong)&corechips_sl6341_data,
+       }, {
+               .compatible = "usb3431,6341",   /* Corechips SL6341 USB 2.0 */
+               .data = (ulong)&corechips_sl6341_data,
        },
        { /* sentinel */ }
 };

---
base-commit: 5732bd0f457b4c671e46574d64d4acb099c0f0a5
change-id: 20260512-sl6341-d7898a895c4e

Best regards,
-- 
Alexey Charkov <[email protected]>

Reply via email to