[PATCH v3 00/10] Add minimal Exynos8895 SoC and SM-G950F support

From: Ivaylo Ivanov
Date: Tue Sep 03 2024 - 08:45:17 EST


Hi folks,

This series adds initial SoC support for the Exynos 8895 SoC and also
initial board support for Samsung Galaxy S8 phone (SM-G950F), codenamed
dreamlte.

The Exynos 8895 SoC is also used in S8 Plus (dream2lte), Note 8 (greatlte)
and Meizu 15 Plus (m1891). Currently DT is added for the Exynos 8895 SoC
and dreamlte, but it should be really easy to adapt for the other devices
with the same SoC.

The support added in this series consists of:
* cpus
* pinctrl
* gpio
* simple-framebuffer
* pstore

This is enough to reach a minimal initramfs shell using an upstream kernel.
More platform support will be added in the future.

The preferred way to boot this device is by using a small shim bl called
uniLoader [1], which packages the mainline kernel and DT and jumps to
the kernel. This is done in order to work around some issues caused by
the stock, and non-replacable Samsung S-Boot bootloader. For example,
S-Boot leaves the decon trigger control unset, which causes the framebuffer
to not refresh.

[1] https://github.com/ivoszbg/uniLoader

Changes in v2:
- No patch changes were made, only fixed the issues with my git send-email

Changes in v3:
- Added a-b tags by Rob Herring and Linus Walleij
- Ordered the Samsung Mongoose M2 compatible in cpus.yaml
- Ordered the EXYNOS8895 information in exynos-chipid.c
- Made the commit message for pinctrl support more detailed
- Made the commit message for exynos-pmu.yaml more detailed
- Fixed suffixes for the exynos8895 pinctrl device tree
- Removed redundant nodes from the exynos8895 pinctrl device tree
- Made the arm-a53-pmu node cover only the Cortex A53 cores
- Added a comment mentioning the lack of a PMU model for Mongoose cores
- Added a comment mentioning the issue with CNTFRQ_EL0
- Removed the redundant fixed rate clocks wrapper
- Ordered the nodes by the DTS coding style in all 8895 DT files
- Removed the redundant status property from the simple-framebuffer node
- Switch to dual licensing (GPL-2.0 OR BSD-3-Clause) for the DT files

Kind regards,

Ivaylo.

Ivaylo Ivanov (10):
dt-bindings: arm: cpus: Add Samsung Mongoose M2
dt-bindings: hwinfo: samsung,exynos-chipid: add exynos8895 compatible
soc: samsung: exynos-chipid: add exynos8895 SoC support
dt-bindings: pinctrl: samsung: Add compatible for Exynos8895 SoC
pinctrl: samsung: Add exynos8895 SoC pinctrl configuration
dt-bindings: pinctrl: samsung: add exynos8895-wakeup-eint compatible
dt-bindings: soc: samsung: exynos-pmu: Add exynos8895 compatible
arm64: dts: exynos: Add initial support for exynos8895 SoC
dt-bindings: arm: samsung: Document dreamlte board binding
arm64: dts: exynos: Add initial support for Samsung Galaxy S8

.../devicetree/bindings/arm/cpus.yaml | 1 +
.../bindings/arm/samsung/samsung-boards.yaml | 6 +
.../hwinfo/samsung,exynos-chipid.yaml | 1 +
.../samsung,pinctrl-wakeup-interrupt.yaml | 1 +
.../bindings/pinctrl/samsung,pinctrl.yaml | 1 +
.../bindings/soc/samsung/exynos-pmu.yaml | 1 +
arch/arm64/boot/dts/exynos/Makefile | 1 +
.../boot/dts/exynos/exynos8895-dreamlte.dts | 126 ++
.../boot/dts/exynos/exynos8895-pinctrl.dtsi | 1092 +++++++++++++++++
arch/arm64/boot/dts/exynos/exynos8895.dtsi | 249 ++++
.../pinctrl/samsung/pinctrl-exynos-arm64.c | 137 +++
drivers/pinctrl/samsung/pinctrl-exynos.h | 10 +
drivers/pinctrl/samsung/pinctrl-samsung.c | 2 +
drivers/pinctrl/samsung/pinctrl-samsung.h | 1 +
drivers/soc/samsung/exynos-chipid.c | 1 +
15 files changed, 1630 insertions(+)
create mode 100644 arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dts
create mode 100644 arch/arm64/boot/dts/exynos/exynos8895-pinctrl.dtsi
create mode 100644 arch/arm64/boot/dts/exynos/exynos8895.dtsi

--
2.34.1