diff --git a/drivers/usb/host/xhci-tegra.c b/drivers/usb/host/xhci-tegra.c index d5637b376367..b005f5d79a1a 100644 --- a/drivers/usb/host/xhci-tegra.c +++ b/drivers/usb/host/xhci-tegra.c @@ -2612,6 +2612,38 @@ static const struct tegra_xusb_soc tegra210_soc = { MODULE_FIRMWARE("nvidia/tegra210/xusb.bin"); #endif +static const struct tegra_xusb_phy_type tegra210b01_phy_types[] = { + { .name = "usb3", .num = 4, }, + { .name = "usb2", .num = 4, }, +}; + +static const struct tegra_xusb_soc tegra210b01_soc = { + .firmware = "nvidia/tegra210b01/xusb.bin", + .supply_names = tegra210_supply_names, + .num_supplies = ARRAY_SIZE(tegra210_supply_names), + .phy_types = tegra210b01_phy_types, + .num_types = ARRAY_SIZE(tegra210b01_phy_types), + .context = &tegra124_xusb_context, + .ports = { + .usb2 = { .offset = 4, .count = 4, }, + .usb3 = { .offset = 0, .count = 4, }, + }, + .scale_ss_clock = false, + .has_ipfs = true, + .otg_reset_sspi = true, + .ops = &tegra124_ops, + .mbox = { + .cmd = 0xe4, + .data_in = 0xe8, + .data_out = 0xec, + .owner = 0xf0, + .smi_intr = XUSB_CFG_ARU_SMI_INTR, + }, +}; +#if IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC) +MODULE_FIRMWARE("nvidia/tegra210b01/xusb.bin"); +#endif + static const char * const tegra186_supply_names[] = { }; #if IS_ENABLED(CONFIG_ARCH_TEGRA_186_SOC) @@ -2732,6 +2764,7 @@ static const struct tegra_xusb_soc tegra234_soc = { static const struct of_device_id tegra_xusb_of_match[] = { { .compatible = "nvidia,tegra124-xusb", .data = &tegra124_soc }, { .compatible = "nvidia,tegra210-xusb", .data = &tegra210_soc }, + { .compatible = "nvidia,tegra210b01-xusb", .data = &tegra210b01_soc }, { .compatible = "nvidia,tegra186-xusb", .data = &tegra186_soc }, { .compatible = "nvidia,tegra194-xusb", .data = &tegra194_soc }, { .compatible = "nvidia,tegra234-xusb", .data = &tegra234_soc },