[PATCH 00/33] Add support for the Exynos7870 SoC, along with three devices

Kaustabh Chakraborty
2025-02-02T18:38:19Z

Samsung Exynos 7870 (codename: Joshua) is an ARM-v8 system-on-chip that was
announced in 2016. The chipset was found in several popular mid-range to
low-end Samsung phones, released within 2016 to 2019.

This patch series aims to add support for Exynos 7870, starting with the
most basic yet essential components such as CPU, GPU, clock controllers,
PMIC, pin controllers, etc.

Moreover, the series also adds support for three Exynos 7870 devices via
devicetree. The devices are:
* Samsung Galaxy J7 Prime - released 2016, codename on7xelte
* Samsung Galaxy J6 - released 2018, codename j6lte
* Samsung Galaxy A2 Core - released 2019, codename a2corelte

Additional features implemented in this series include:
* I2C - touchscreen, IIO sensors, etc.
* UART - bluetooth and serial debugging
* MMC - eMMC, Wi-Fi SDIO, SDCard
* USB - micro-USB 2.0 interface

The series has commits from me and Sergey, who has given me permission
to upstream their patches with proper attribution.

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
---
Kaustabh Chakraborty (26):
dt-bindings: hwinfo: samsung,exynos-chipid: add exynos7870-chipid compatible
dt-bindings: clock: document exynos7870 clock driver CMU bindings
dt-bindings: soc: samsung: exynos-pmu: add exynos7870-pmu compatible
dt-bindings: pinctrl: samsung: add exynos7870-pinctrl compatible
dt-bindings: pinctrl: samsung: add exynos7870-wakeup-eint compatible
dt-bindings: serial: samsung: add exynos7870-uart compatible
dt-bindings: mfd: samsung,s2mps11: add compatible for s2mpu05-pmic
regulator: dt-bindings: add documentation for s2mpu05-pmic regulators
dt-bindings: phy: samsung,usb3-drd-phy: add exynos7870-usbdrd-phy compatible
dt-bindings: usb: samsung,exynos-dwc3: add exynos7870 support
dt-bindings: gpu: arm,mali-midgard: add exynos7870 mali compatible
dt-bindings: i2c: samsung,s3c2410: add exynos7870-i2c compatible
dt-bindings: i2c: exynos5: add exynos7870-hsi2c compatible
dt-bindings: mmc: samsung,exynos-dw-mshc: add exynos7870 support
dt-bindings: soc: samsung,boot-mode: add boot mode definitions for exynos7870
dt-bindings: arm: samsung: add compatibles for exynos7870 devices
soc: samsung: exynos-chipid: add support for exynos7870
clk: samsung: add exynos7870 CLKOUT support
tty: serial: samsung: add support for exynos7870
phy: exynos5-usbdrd: fix MPLL_MULTIPLIER and SSC_REFCLKSEL masks in refclk
phy: exynos5-usbdrd: use GENMASK and FIELD_PREP for Exynos5 PHY registers
usb: dwc3: exynos: add support for exynos7870
arm64: dts: exynos: add initial devicetree support for exynos7870
arm64: dts: exynos: add initial support for Samsung Galaxy J7 Prime
arm64: dts: exynos: add initial support for Samsung Galaxy A2 Core
arm64: dts: exynos: add initial support for Samsung Galaxy J6

Sergey Lisov (7):
dt-bindings: clock: add clock definitions for exynos7870 CMU
clk: samsung: add initial exynos7870 clock driver
pinctrl: samsung: add support for exynos7870 pinctrl
mfd: sec: add support for S2MPU05 PMIC
regulator: s2mps11: Add support for S2MPU05 regulators
phy: exynos5-usbdrd: add exynos7870 USBDRD support
mmc: dw_mmc: add exynos7870 support, with a quirk for accessing 64-bit FIFOs in two halves

.../bindings/arm/samsung/samsung-boards.yaml | 8 +
.../bindings/clock/samsung,exynos7870-clock.yaml | 246 +++
.../devicetree/bindings/gpu/arm,mali-midgard.yaml | 5 +-
.../bindings/hwinfo/samsung,exynos-chipid.yaml | 1 +
.../devicetree/bindings/i2c/i2c-exynos5.yaml | 1 +
.../bindings/i2c/samsung,s3c2410-i2c.yaml | 1 +
.../devicetree/bindings/mfd/samsung,s2mps11.yaml | 13 +
.../bindings/mmc/samsung,exynos-dw-mshc.yaml | 2 +
.../bindings/phy/samsung,usb3-drd-phy.yaml | 2 +
.../pinctrl/samsung,pinctrl-wakeup-interrupt.yaml | 2 +
.../bindings/pinctrl/samsung,pinctrl.yaml | 1 +
.../bindings/regulator/samsung,s2mpu05.yaml | 44 +
.../devicetree/bindings/serial/samsung_uart.yaml | 2 +
.../bindings/soc/samsung/exynos-pmu.yaml | 1 +
.../bindings/usb/samsung,exynos-dwc3.yaml | 34 +-
arch/arm64/boot/dts/exynos/Makefile | 3 +
.../arm64/boot/dts/exynos/exynos7870-a2corelte.dts | 624 +++++++
arch/arm64/boot/dts/exynos/exynos7870-j6lte.dts | 611 +++++++
arch/arm64/boot/dts/exynos/exynos7870-on7xelte.dts | 659 +++++++
arch/arm64/boot/dts/exynos/exynos7870-pinctrl.dtsi | 1035 +++++++++++
arch/arm64/boot/dts/exynos/exynos7870.dtsi | 722 ++++++++
drivers/clk/samsung/Makefile | 1 +
drivers/clk/samsung/clk-exynos-clkout.c | 3 +
drivers/clk/samsung/clk-exynos7870.c | 1830 ++++++++++++++++++++
drivers/mfd/sec-core.c | 12 +
drivers/mfd/sec-irq.c | 85 +
drivers/mmc/host/dw_mmc-exynos.c | 41 +-
drivers/mmc/host/dw_mmc.c | 94 +-
drivers/mmc/host/dw_mmc.h | 27 +
drivers/phy/samsung/phy-exynos5-usbdrd.c | 407 ++++-
drivers/pinctrl/samsung/pinctrl-exynos-arm64.c | 141 ++
drivers/pinctrl/samsung/pinctrl-exynos.h | 29 +
drivers/pinctrl/samsung/pinctrl-samsung.c | 2 +
drivers/pinctrl/samsung/pinctrl-samsung.h | 1 +
drivers/regulator/Kconfig | 4 +-
drivers/regulator/s2mps11.c | 92 +-
drivers/soc/samsung/exynos-chipid.c | 1 +
drivers/tty/serial/samsung_tty.c | 13 +
drivers/usb/dwc3/dwc3-exynos.c | 9 +
include/dt-bindings/clock/exynos7870.h | 324 ++++
include/dt-bindings/soc/samsung,boot-mode.h | 6 +
include/linux/mfd/samsung/core.h | 1 +
include/linux/mfd/samsung/irq.h | 44 +
include/linux/mfd/samsung/s2mpu05.h | 152 ++
include/linux/soc/samsung/exynos-regs-pmu.h | 2 +
45 files changed, 7257 insertions(+), 81 deletions(-)
---
base-commit: df4b2bbff898227db0c14264ac7edd634e79f755
change-id: 20250201-exynos7870-049587e4b7df

Best regards,
--
Kaustabh Chakraborty <kauschluss@disroot.org>