2024-04-26 13:39:24

by Peter Griffin

[permalink] [raw]
Subject: [PATCH v3 0/4] Enable UFS on gs101 / Pixel 6 (Oriole)

Hi Krzysztof,

This series contains the dts, dtsi and sysreg bindings that enables UFS
on Pixel 6 (Oriole). For v3 it has been split into separate series to
as you requested.

Along with the various driver code UFS is now functional, the SKhynix
HN8T05BZGKX015 can be enumerated, partitions mounted etc.

UFS bindings in this series are proposed:
https://lore.kernel.org/linux-arm-kernel/[email protected]/

Clock cmu_hsi2 bindings are proposed:
https://lore.kernel.org/r/[email protected]

UFS phy bindings used here are already queued by Vinod

kind regards,

Peter.

lore v2: https://lore.kernel.org/linux-kernel/[email protected]/
lore v1: https://lore.kernel.org/linux-clk/[email protected]/

Changes since v2:
- Split into separate subsystem series
- Split dts and dtsi patches (Krzysztof)

Changes since v1:
- Collect up tags
- fix google,gs101-hsi2-sysreg size (0x10000 not 0x1000) (Andre)
- use GPIO defines in DT and add TODO pmic comment (Krzysztof)
- Add sysreg clock to ufs node (Andre)

Peter Griffin (4):
dt-bindings: soc: google: exynos-sysreg: add dedicated hsi2 sysreg
compatible
arm64: dts: exynos: gs101: Add the hsi2 sysreg node
arm64: dts: exynos: gs101: Add ufs and ufs-phy dt nodes
arm64: dts: exynos: gs101: enable ufs, phy on oriole & define ufs
regulator

.../soc/samsung/samsung,exynos-sysreg.yaml | 2 +
.../boot/dts/exynos/google/gs101-oriole.dts | 18 ++++++++
arch/arm64/boot/dts/exynos/google/gs101.dtsi | 42 +++++++++++++++++++
3 files changed, 62 insertions(+)

--
2.44.0.769.g3c40516874-goog



2024-04-26 13:39:34

by Peter Griffin

[permalink] [raw]
Subject: [PATCH v3 4/4] arm64: dts: exynos: gs101: enable ufs, phy on oriole & define ufs regulator

Enable ufs & ufs phy nodes for Oriole. Also define the ufs regulator node.

ufs regulator is a stub until full s2mpg11 slave pmic support is added.
The gpio defined is for the BOOTLD0 (gs101) signal connected to
UFS_EN(s2mpg11) gpio enabled voltage rail for UFS.

Signed-off-by: Peter Griffin <[email protected]>
---
.../boot/dts/exynos/google/gs101-oriole.dts | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

diff --git a/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts b/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts
index 6be15e990b65..fb32f6ce2a4d 100644
--- a/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts
+++ b/arch/arm64/boot/dts/exynos/google/gs101-oriole.dts
@@ -53,6 +53,15 @@ button-power {
wakeup-source;
};
};
+
+ /* TODO: Remove this once S2MPG11 slave PMIC is implemented */
+ ufs_0_fixed_vcc_reg: regulator-0 {
+ compatible = "regulator-fixed";
+ regulator-name = "ufs-vcc";
+ gpio = <&gpp0 1 GPIO_ACTIVE_HIGH>;
+ regulator-boot-on;
+ enable-active-high;
+ };
};

&ext_24_5m {
@@ -106,6 +115,15 @@ &serial_0 {
status = "okay";
};

+&ufs_0 {
+ status = "okay";
+ vcc-supply = <&ufs_0_fixed_vcc_reg>;
+};
+
+&ufs_0_phy {
+ status = "okay";
+};
+
&usi_uart {
samsung,clkreq-on; /* needed for UART mode */
status = "okay";
--
2.44.0.769.g3c40516874-goog


2024-04-26 13:39:51

by Peter Griffin

[permalink] [raw]
Subject: [PATCH v3 2/4] arm64: dts: exynos: gs101: Add the hsi2 sysreg node

This has some configuration bits such as sharability that
are required by UFS.

Signed-off-by: Peter Griffin <[email protected]>
Reviewed-by: AndrĂ© Draszik <[email protected]>
---
arch/arm64/boot/dts/exynos/google/gs101.dtsi | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/arch/arm64/boot/dts/exynos/google/gs101.dtsi b/arch/arm64/boot/dts/exynos/google/gs101.dtsi
index 38ac4fb1397e..09044deede63 100644
--- a/arch/arm64/boot/dts/exynos/google/gs101.dtsi
+++ b/arch/arm64/boot/dts/exynos/google/gs101.dtsi
@@ -1265,6 +1265,12 @@ cmu_hsi2: clock-controller@14400000 {
clock-names = "oscclk", "bus", "pcie", "ufs_embd", "mmc_card";
};

+ sysreg_hsi2: syscon@14420000 {
+ compatible = "google,gs101-hsi2-sysreg", "syscon";
+ reg = <0x14420000 0x10000>;
+ clocks = <&cmu_hsi2 CLK_GOUT_HSI2_SYSREG_HSI2_PCLK>;
+ };
+
pinctrl_hsi2: pinctrl@14440000 {
compatible = "google,gs101-pinctrl";
reg = <0x14440000 0x00001000>;
--
2.44.0.769.g3c40516874-goog