mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
phy: tegra: Add support for Tegra238 XUSB pad controller
Add support for the Tegra238 XUSB pad controller by populating the Tegra238 specific SoC data for the controller. The Tegra238 has three USB2 and USB3 ports, uses the same port ops as Tegra186 and has the same supplies as Tegra194. Due to the dependencies the Tegra238 device has on the Tegra186 port ops and Tegra194 supplies, drop the compile time guards around these structures. Signed-off-by: Jon Hunter <jonathanh@nvidia.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Link: https://patch.msgid.link/20261007-tegra-phy-v3-3-d501de414710@nvidia.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
c0c4091bba
commit
8f56fdf3d8
|
|
@ -8,6 +8,7 @@ phy-tegra-xusb-$(CONFIG_ARCH_TEGRA_210_SOC) += xusb-tegra210.o
|
|||
phy-tegra-xusb-$(CONFIG_ARCH_TEGRA_186_SOC) += xusb-tegra186.o
|
||||
phy-tegra-xusb-$(CONFIG_ARCH_TEGRA_194_SOC) += xusb-tegra186.o
|
||||
phy-tegra-xusb-$(CONFIG_ARCH_TEGRA_234_SOC) += xusb-tegra186.o
|
||||
phy-tegra-xusb-$(CONFIG_ARCH_TEGRA_238_SOC) += xusb-tegra186.o
|
||||
phy-tegra-xusb-$(CONFIG_ARCH_TEGRA_264_SOC) += xusb-tegra186.o
|
||||
obj-$(CONFIG_PHY_TEGRA194_P2U) += phy-tegra194-p2u.o
|
||||
obj-$(CONFIG_PHY_TEGRA_MPHY) += phy-tegra-mphy.o
|
||||
|
|
|
|||
|
|
@ -1599,7 +1599,6 @@ static const struct tegra_xusb_padctl_ops tegra186_xusb_padctl_ops = {
|
|||
.utmi_pad_power_down = tegra186_utmi_pad_power_down,
|
||||
};
|
||||
|
||||
#if IS_ENABLED(CONFIG_ARCH_TEGRA_186_SOC)
|
||||
static const char * const tegra186_xusb_padctl_supply_names[] = {
|
||||
"avdd-pll-erefeut",
|
||||
"avdd-usb",
|
||||
|
|
@ -1665,11 +1664,7 @@ const struct tegra_xusb_padctl_soc tegra186_xusb_padctl_soc = {
|
|||
.num_supplies = ARRAY_SIZE(tegra186_xusb_padctl_supply_names),
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(tegra186_xusb_padctl_soc);
|
||||
#endif
|
||||
|
||||
#if IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC) || \
|
||||
IS_ENABLED(CONFIG_ARCH_TEGRA_234_SOC) || \
|
||||
IS_ENABLED(CONFIG_ARCH_TEGRA_264_SOC)
|
||||
static const char * const tegra194_xusb_padctl_supply_names[] = {
|
||||
"avdd-usb",
|
||||
"vclamp-usb",
|
||||
|
|
@ -1755,6 +1750,29 @@ const struct tegra_xusb_padctl_soc tegra234_xusb_padctl_soc = {
|
|||
};
|
||||
EXPORT_SYMBOL_GPL(tegra234_xusb_padctl_soc);
|
||||
|
||||
const struct tegra_xusb_padctl_soc tegra238_xusb_padctl_soc = {
|
||||
.num_pads = ARRAY_SIZE(tegra186_pads),
|
||||
.pads = tegra186_pads,
|
||||
.ports = {
|
||||
.usb2 = {
|
||||
.ops = &tegra186_usb2_port_ops,
|
||||
.count = 3,
|
||||
},
|
||||
.usb3 = {
|
||||
.ops = &tegra186_usb3_port_ops,
|
||||
.count = 3,
|
||||
},
|
||||
},
|
||||
.ops = &tegra186_xusb_padctl_ops,
|
||||
.supply_names = tegra194_xusb_padctl_supply_names,
|
||||
.num_supplies = ARRAY_SIZE(tegra194_xusb_padctl_supply_names),
|
||||
.supports_gen2 = true,
|
||||
.poll_trk_completed = true,
|
||||
.trk_hw_mode = false,
|
||||
.supports_lp_cfg_en = true,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(tegra238_xusb_padctl_soc);
|
||||
|
||||
const struct tegra_xusb_padctl_soc tegra264_xusb_padctl_soc = {
|
||||
.num_pads = ARRAY_SIZE(tegra194_pads),
|
||||
.pads = tegra194_pads,
|
||||
|
|
@ -1778,7 +1796,6 @@ const struct tegra_xusb_padctl_soc tegra264_xusb_padctl_soc = {
|
|||
.has_per_pad_term = true,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(tegra264_xusb_padctl_soc);
|
||||
#endif
|
||||
|
||||
MODULE_AUTHOR("JC Kuo <jckuo@nvidia.com>");
|
||||
MODULE_DESCRIPTION("NVIDIA Tegra186 XUSB Pad Controller driver");
|
||||
|
|
|
|||
|
|
@ -78,6 +78,12 @@ static const struct of_device_id tegra_xusb_padctl_of_match[] = {
|
|||
.data = &tegra234_xusb_padctl_soc,
|
||||
},
|
||||
#endif
|
||||
#if defined(CONFIG_ARCH_TEGRA_238_SOC)
|
||||
{
|
||||
.compatible = "nvidia,tegra238-xusb-padctl",
|
||||
.data = &tegra238_xusb_padctl_soc,
|
||||
},
|
||||
#endif
|
||||
#if defined(CONFIG_ARCH_TEGRA_264_SOC)
|
||||
{
|
||||
.compatible = "nvidia,tegra264-xusb-padctl",
|
||||
|
|
|
|||
|
|
@ -514,6 +514,9 @@ extern const struct tegra_xusb_padctl_soc tegra194_xusb_padctl_soc;
|
|||
#if defined(CONFIG_ARCH_TEGRA_234_SOC)
|
||||
extern const struct tegra_xusb_padctl_soc tegra234_xusb_padctl_soc;
|
||||
#endif
|
||||
#if defined(CONFIG_ARCH_TEGRA_238_SOC)
|
||||
extern const struct tegra_xusb_padctl_soc tegra238_xusb_padctl_soc;
|
||||
#endif
|
||||
#if defined(CONFIG_ARCH_TEGRA_264_SOC)
|
||||
extern const struct tegra_xusb_padctl_soc tegra264_xusb_padctl_soc;
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user