mbox series

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

Message ID 20250203-exynos7870-v1-0-2b6df476a3f0@disroot.org (mailing list archive)
Headers show
Series Add support for the Exynos7870 SoC, along with three devices | expand

Message

Kaustabh Chakraborty Feb. 2, 2025, 6:36 p.m. UTC
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,

Comments

Krzysztof Kozlowski Feb. 2, 2025, 7:13 p.m. UTC | #1
On 02/02/2025 19:36, Kaustabh Chakraborty wrote:
> 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

This is not related at all to this patchset.

>       regulator: dt-bindings: add documentation for s2mpu05-pmic regulators

Neither is this.

>       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

This goes to different patchset. Don't mix with SoC changes or pure
bindings. Your CC list is too big.

>       phy: exynos5-usbdrd: fix MPLL_MULTIPLIER and SSC_REFCLKSEL masks in refclk
>       phy: exynos5-usbdrd: use GENMASK and FIELD_PREP for Exynos5 PHY registers

Different patchset.

>       usb: dwc3: exynos: add support for exynos7870

As well, with bindings.

Please organize your patchset according to standard SoC upstream
guidelines - don't mix SoC with non-Soc upstreaming or other subsystems.
While putting entire SoC in one patchset is tempting, you added here
totally unrelated changes like PMIC drivers. Result: 33 patches and huge
cc-list bouncing from mailing lists.

https://lore.kernel.org/linux-samsung-soc/CADrjBPq_0nUYRABKpskRF_dhHu+4K=duPVZX==0pr+cjSL_caQ@mail.gmail.com/T/#m2d9130a1342ab201ab49670fa6c858ee3724c83c

https://lore.kernel.org/all/20231121-topic-sm8650-upstream-dt-v3-0-db9d0507ffd3@linaro.org/

Best regards,
Krzysztof