Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

phy: exynos5-usbdrd: Add support for the Exynos990 usbdrd phy

The Exynos990 usbdrd PHY is a combo PHY which supports USB SS, HS and
DisplayPort outputs. This commit adds support only for UTMI+ (USB HS).

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Igor Belwon <igor.belwon@mentallysanemainliners.org>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20250515-usb-resends-may-15-v3-2-ad33a85b6cee@mentallysanemainliners.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>

authored by

Igor Belwon and committed by
Vinod Koul
385a766b 9f77d234

+35
+32
drivers/phy/samsung/phy-exynos5-usbdrd.c
··· 2025 2025 .n_regulators = ARRAY_SIZE(exynos5_regulator_names), 2026 2026 }; 2027 2027 2028 + static const struct exynos5_usbdrd_phy_tuning exynos990_tunes_utmi_postinit[] = { 2029 + PHY_TUNING_ENTRY_PHY(EXYNOS850_DRD_HSPPARACON, 2030 + (HSPPARACON_TXVREF | 2031 + HSPPARACON_TXPREEMPAMP | HSPPARACON_SQRX | 2032 + HSPPARACON_COMPDIS), 2033 + (FIELD_PREP_CONST(HSPPARACON_TXVREF, 7) | 2034 + FIELD_PREP_CONST(HSPPARACON_TXPREEMPAMP, 3) | 2035 + FIELD_PREP_CONST(HSPPARACON_SQRX, 5) | 2036 + FIELD_PREP_CONST(HSPPARACON_COMPDIS, 7))), 2037 + PHY_TUNING_ENTRY_LAST 2038 + }; 2039 + 2040 + static const struct exynos5_usbdrd_phy_tuning *exynos990_tunes[PTS_MAX] = { 2041 + [PTS_UTMI_POSTINIT] = exynos990_tunes_utmi_postinit, 2042 + }; 2043 + 2044 + static const struct exynos5_usbdrd_phy_drvdata exynos990_usbdrd_phy = { 2045 + .phy_cfg = phy_cfg_exynos850, 2046 + .phy_ops = &exynos850_usbdrd_phy_ops, 2047 + .phy_tunes = exynos990_tunes, 2048 + .pmu_offset_usbdrd0_phy = EXYNOS990_PHY_CTRL_USB20, 2049 + .clk_names = exynos5_clk_names, 2050 + .n_clks = ARRAY_SIZE(exynos5_clk_names), 2051 + .core_clk_names = exynos5_core_clk_names, 2052 + .n_core_clks = ARRAY_SIZE(exynos5_core_clk_names), 2053 + .regulator_names = exynos5_regulator_names, 2054 + .n_regulators = ARRAY_SIZE(exynos5_regulator_names), 2055 + }; 2056 + 2028 2057 static const struct exynos5_usbdrd_phy_config phy_cfg_gs101[] = { 2029 2058 { 2030 2059 .id = EXYNOS5_DRDPHY_UTMI, ··· 2257 2228 }, { 2258 2229 .compatible = "samsung,exynos850-usbdrd-phy", 2259 2230 .data = &exynos850_usbdrd_phy 2231 + }, { 2232 + .compatible = "samsung,exynos990-usbdrd-phy", 2233 + .data = &exynos990_usbdrd_phy 2260 2234 }, 2261 2235 { }, 2262 2236 };
+3
include/linux/soc/samsung/exynos-regs-pmu.h
··· 662 662 #define EXYNOS5433_PAD_RETENTION_UFS_OPTION (0x3268) 663 663 #define EXYNOS5433_PAD_RETENTION_FSYSGENIO_OPTION (0x32A8) 664 664 665 + /* For Exynos990 */ 666 + #define EXYNOS990_PHY_CTRL_USB20 (0x72C) 667 + 665 668 /* For Tensor GS101 */ 666 669 /* PMU ALIVE */ 667 670 #define GS101_SYSIP_DAT0 (0x810)