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: exynos-mipi-video: introduce support for exynos7870

Add support for Exynos7870 in the existing MIPI CSIS/DSIM driver. The
SoC has one DSIM phy and three CSIS phys.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20250612-exynos7870-mipi-phy-v1-2-3fff0b62d9d3@disroot.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>

authored by

Kaustabh Chakraborty and committed by
Vinod Koul
543f5e31 2ac58405

+57
+52
drivers/phy/samsung/phy-exynos-mipi-video.c
··· 213 213 }, 214 214 }; 215 215 216 + static const struct mipi_phy_device_desc exynos7870_mipi_phy = { 217 + .num_regmaps = 3, 218 + .regmap_names = { 219 + "samsung,pmu-syscon", 220 + "samsung,disp-sysreg", 221 + "samsung,cam-sysreg" 222 + }, 223 + .num_phys = 4, 224 + .phys = { 225 + { 226 + /* EXYNOS_MIPI_PHY_ID_CSIS0 */ 227 + .coupled_phy_id = EXYNOS_MIPI_PHY_ID_DSIM0, 228 + .enable_val = EXYNOS4_PHY_ENABLE, 229 + .enable_reg = EXYNOS7870_MIPI_PHY_CONTROL0, 230 + .enable_map = EXYNOS_MIPI_REGMAP_PMU, 231 + .resetn_val = BIT(0), 232 + .resetn_reg = 0, 233 + .resetn_map = EXYNOS_MIPI_REGMAP_CAM0, 234 + }, { 235 + /* EXYNOS_MIPI_PHY_ID_DSIM0 */ 236 + .coupled_phy_id = EXYNOS_MIPI_PHY_ID_CSIS0, 237 + .enable_val = EXYNOS4_PHY_ENABLE, 238 + .enable_reg = EXYNOS7870_MIPI_PHY_CONTROL0, 239 + .enable_map = EXYNOS_MIPI_REGMAP_PMU, 240 + .resetn_val = BIT(0), 241 + .resetn_reg = 0, 242 + .resetn_map = EXYNOS_MIPI_REGMAP_DISP, 243 + }, { 244 + /* EXYNOS_MIPI_PHY_ID_CSIS1 */ 245 + .coupled_phy_id = EXYNOS_MIPI_PHY_ID_NONE, 246 + .enable_val = EXYNOS4_PHY_ENABLE, 247 + .enable_reg = EXYNOS7870_MIPI_PHY_CONTROL1, 248 + .enable_map = EXYNOS_MIPI_REGMAP_PMU, 249 + .resetn_val = BIT(1), 250 + .resetn_reg = 0, 251 + .resetn_map = EXYNOS_MIPI_REGMAP_CAM0, 252 + }, { 253 + /* EXYNOS_MIPI_PHY_ID_CSIS2 */ 254 + .coupled_phy_id = EXYNOS_MIPI_PHY_ID_NONE, 255 + .enable_val = EXYNOS4_PHY_ENABLE, 256 + .enable_reg = EXYNOS7870_MIPI_PHY_CONTROL2, 257 + .enable_map = EXYNOS_MIPI_REGMAP_PMU, 258 + .resetn_val = BIT(2), 259 + .resetn_reg = 0, 260 + .resetn_map = EXYNOS_MIPI_REGMAP_CAM0, 261 + }, 262 + }, 263 + }; 264 + 216 265 struct exynos_mipi_video_phy { 217 266 struct regmap *regmaps[EXYNOS_MIPI_REGMAPS_NUM]; 218 267 int num_phys; ··· 400 351 }, { 401 352 .compatible = "samsung,exynos5433-mipi-video-phy", 402 353 .data = &exynos5433_mipi_phy, 354 + }, { 355 + .compatible = "samsung,exynos7870-mipi-video-phy", 356 + .data = &exynos7870_mipi_phy, 403 357 }, 404 358 { /* sentinel */ }, 405 359 };
+5
include/linux/soc/samsung/exynos-regs-pmu.h
··· 665 665 /* For Exynos990 */ 666 666 #define EXYNOS990_PHY_CTRL_USB20 (0x72C) 667 667 668 + /* For Exynos7870 */ 669 + #define EXYNOS7870_MIPI_PHY_CONTROL0 (0x070c) 670 + #define EXYNOS7870_MIPI_PHY_CONTROL1 (0x0714) 671 + #define EXYNOS7870_MIPI_PHY_CONTROL2 (0x0734) 672 + 668 673 /* For Tensor GS101 */ 669 674 /* PMU ALIVE */ 670 675 #define GS101_SYSIP_DAT0 (0x810)