Samsung DTS ARM changes for v6.8

1. Exynos4212 and Exynos4412: Final fixes for dtbs_check warnings.
    Replace duplicate PMU node in FIMC IS node with syscon phandle.  The
    old solution of duplicated PMU node was not a correct representation of
    the hardware and could have concurrent access issues.
 
    The DTS change depends on media FIMC IS drivers changes already
    merged in previous cycle, thus it is not fully
    backwards-compatible.  It is a necessary trade-off in fixing wrong
    description in DTS.
 
    With this fix, `make dtbs_check` status looks like:
    S3C6410: no warnings
    Exynos: no warnings, one undocumented compatible
    S5PV210: one warning, one undocumented compatible
 
 2. Exynos4210, Exynos4212, Exynos4412, S5PV210:
    Correct FIMC IS camera ranges and IO addresses to silence dtc W=1
    warnings.  No functional impact expected.
    After this fix, there are no dtc W=1 warnings on all ARMv7 platforms.
 
 3. Galaxy I9100: Fix 12-second hang during boot by enabling regulator
    (real cause not really known), add touch keys and accelerometer.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmV4J3AQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD12XMD/9uenIkpHII8EkQqEAUpuOd50wXPJi9IrMm
 r1bup6zhnQvxH9UOwn1oiaIQce/OxB7aAwKQ+Hzt8fQEI+ofDPc7bGtG97WKydJ0
 bjnMs+XyhXKzapskMG4+g3pyd3mNTIz1BQfz9VAGpmJTB5/00ObjjR7Rjr/LjtGs
 Vgm0XNlMDQlF61I1xtshO1dS/WTne27Jt64hi7lqPIbDZE2L9c3PHIOK1NCeZJz+
 TqWyndp6l4x02K+3T1FN1FeLDsX+dKPJeJWnwuIc0KfWWnQawOJtpltjSoasuLJs
 ujRmJbwcxKN8gVPOV+mPhsyu91jGclSE8av9jXuwzwiw2kKAzEtlu0yEfVLDcGrN
 dcyY64nnU76SBaEdKjgOXyYuIyUGyp60Sf7lKqFJCjGBFBG2kK8lE6lb3Wn6coeO
 t7S/J2se7/+hUonsQK4ID+JfxqXdxybeFBzQAZ045wDjSDLssvxKTL+Wkb61K9K6
 vQaor3lT2BuU3PcyTKFkW0Qbm1V8XIu3PaLD0pOO+BMBHyJRYI9cArk5Mnb2/Pe7
 FQ1HEtGbFbcvZM4MLlufT0KCDlTXmqZySXzNEKnbEhifJag7RuAI0+hQ/Rm6mklx
 SRqsPasIX0/yf1wXRJSvlF5zplgCwwoPiAWW4F5EblJab8vJ/QLuUs64zlH4lOum
 VG2CoSvFfw==
 =DHU7
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmWEXQEACgkQYKtH/8kJ
 Uielkw//Zj/xlIahxY5UPlj7ZEq2xbSP7wTxEXEf+A05kWBXEsHQYcwIQ/vdUT9Y
 rh2DQxwXTR6F/NPNzT2kiCDYKN6FOfr0gJHLtRF4UllI7LPaf/S7rA5HhROkWhlM
 u8k1mRr8WW+3OA8nGltrGRlskL8dMxsJ6lD2ZFBk9U4kDU26lFaUQI0q+kAF4uJY
 UANPJd8HqrX0MMreuEIaUaoDl9ngRVRgBZNBL5yO2ipUMtTg74b+/YoB2T1rBo1z
 ab51hxiRGJs6RgWRBjj78BDorINHQat9DR8LcMTMh6MzmJhmySlKUacby8h+B2bP
 sS1o1K8EfegNzlzStj2kjEpDZQKpqUD8DKGfpPCV1F/YszxgdybJ3UCuKHPHukAY
 ZIpnuPUdNq4Q5XURttcLEWSxO/qz+EgEM39T5MVh4/7USwf5feniQjq175PbnEjo
 z5w1ywrBuIxEyS/AfFcHCZXR2F3ibPkCfTm26b8JYlGchrPeS/rqDHrc5Mv0zs1y
 ACg0wxTRYtxapPtUuZAVrrMFp5PaKQH0b2wJEcm2ljSIlwS2of32yH05ap2gDylM
 aM1aA+YKkhMrd3bOA2utS7Dx7W27KkaPLLF6IhMypFSbrh+PcXcCp1FsLlSzquOj
 hYyp0oO7cxiPHZk7YMwCNQP4gm3ZkKB2AUH70XA8UQt8Pj587kY=
 =WVOB
 -----END PGP SIGNATURE-----

Merge tag 'samsung-dt-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt

Samsung DTS ARM changes for v6.8

1. Exynos4212 and Exynos4412: Final fixes for dtbs_check warnings.
   Replace duplicate PMU node in FIMC IS node with syscon phandle.  The
   old solution of duplicated PMU node was not a correct representation of
   the hardware and could have concurrent access issues.

   The DTS change depends on media FIMC IS drivers changes already
   merged in previous cycle, thus it is not fully
   backwards-compatible.  It is a necessary trade-off in fixing wrong
   description in DTS.

   With this fix, `make dtbs_check` status looks like:
   S3C6410: no warnings
   Exynos: no warnings, one undocumented compatible
   S5PV210: one warning, one undocumented compatible

2. Exynos4210, Exynos4212, Exynos4412, S5PV210:
   Correct FIMC IS camera ranges and IO addresses to silence dtc W=1
   warnings.  No functional impact expected.
   After this fix, there are no dtc W=1 warnings on all ARMv7 platforms.

3. Galaxy I9100: Fix 12-second hang during boot by enabling regulator
   (real cause not really known), add touch keys and accelerometer.

* tag 'samsung-dt-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  ARM: dts: samsung: exynos4210-i9100: Add accelerometer node
  ARM: dts: samsung: exynos4210-i9100: Add node for touch keys
  ARM: dts: samsung: exynos4210-i9100: Unconditionally enable LDO12
  ARM: dts: samsung: s5pv210: fix camera unit addresses/ranges
  ARM: dts: samsung: exynos4: fix camera unit addresses/ranges
  ARM: dts: samsung: exynos4x12: replace duplicate pmu node with phandle

Link: https://lore.kernel.org/r/20231212093105.13938-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2023-12-21 15:42:39 +00:00
commit 9bc75fe58d
4 changed files with 79 additions and 35 deletions

View File

@ -203,16 +203,16 @@
camera: camera@11800000 {
compatible = "samsung,fimc";
ranges = <0x0 0x11800000 0xa0000>;
status = "disabled";
#address-cells = <1>;
#size-cells = <1>;
#clock-cells = <1>;
clock-output-names = "cam_a_clkout", "cam_b_clkout";
ranges;
fimc_0: fimc@11800000 {
fimc_0: fimc@0 {
compatible = "samsung,exynos4210-fimc";
reg = <0x11800000 0x1000>;
reg = <0x0 0x1000>;
interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clock CLK_FIMC0>,
<&clock CLK_SCLK_FIMC0>;
@ -223,9 +223,9 @@
status = "disabled";
};
fimc_1: fimc@11810000 {
fimc_1: fimc@10000 {
compatible = "samsung,exynos4210-fimc";
reg = <0x11810000 0x1000>;
reg = <0x00010000 0x1000>;
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clock CLK_FIMC1>,
<&clock CLK_SCLK_FIMC1>;
@ -236,9 +236,9 @@
status = "disabled";
};
fimc_2: fimc@11820000 {
fimc_2: fimc@20000 {
compatible = "samsung,exynos4210-fimc";
reg = <0x11820000 0x1000>;
reg = <0x00020000 0x1000>;
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clock CLK_FIMC2>,
<&clock CLK_SCLK_FIMC2>;
@ -249,9 +249,9 @@
status = "disabled";
};
fimc_3: fimc@11830000 {
fimc_3: fimc@30000 {
compatible = "samsung,exynos4210-fimc";
reg = <0x11830000 0x1000>;
reg = <0x00030000 0x1000>;
interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clock CLK_FIMC3>,
<&clock CLK_SCLK_FIMC3>;
@ -262,9 +262,9 @@
status = "disabled";
};
csis_0: csis@11880000 {
csis_0: csis@80000 {
compatible = "samsung,exynos4210-csis";
reg = <0x11880000 0x4000>;
reg = <0x00080000 0x4000>;
interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clock CLK_CSIS0>,
<&clock CLK_SCLK_CSIS0>;
@ -278,9 +278,9 @@
#size-cells = <0>;
};
csis_1: csis@11890000 {
csis_1: csis@90000 {
compatible = "samsung,exynos4210-csis";
reg = <0x11890000 0x4000>;
reg = <0x00090000 0x4000>;
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clock CLK_CSIS1>,
<&clock CLK_SCLK_CSIS1>;

View File

@ -184,6 +184,28 @@
};
};
i2c-gpio-2 {
compatible = "i2c-gpio";
#address-cells = <1>;
#size-cells = <0>;
sda-gpios = <&gpk1 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
scl-gpios = <&gpk1 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
i2c-gpio,delay-us = <2>;
touchscreen@20 {
compatible = "cypress,aries-touchkey";
reg = <0x20>;
interrupt-parent = <&gpl0>;
interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
vdd-supply = <&vtouchled_reg>;
vcc-supply = <&vtouch_reg>;
linux,keycodes = <KEY_MENU>, <KEY_BACK>;
};
};
spi-3 {
compatible = "spi-gpio";
#address-cells = <1>;
@ -380,6 +402,23 @@
vusb_a-supply = <&vusbdac_reg>;
};
&i2c_1 {
status = "okay";
samsung,i2c-sda-delay = <100>;
samsung,i2c-slave-addr = <0x10>;
samsung,i2c-max-bus-freq = <100000>;
lis3dh: accelerometer@19 {
compatible = "st,lis3dh-accel";
reg = <0x19>;
mount-matrix = "0", "-1", "0",
"1", "0", "0",
"0", "0", "1";
};
};
&i2c_3 {
status = "okay";
@ -513,7 +552,6 @@
regulator-name = "TOUCH_2.8V";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
};
vpll_reg: LDO10 {
@ -527,6 +565,14 @@
regulator-name = "VT_CAM_1.8V";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
/*
* Force-enable this regulator; otherwise the
* kernel hangs very early in the boot process
* for about 12 seconds, without apparent
* reason.
*/
regulator-always-on;
};
vcclcd_reg: LDO13 {

View File

@ -451,14 +451,15 @@
};
&camera {
ranges = <0x0 0x11800000 0xba1000>;
clocks = <&clock CLK_SCLK_CAM0>, <&clock CLK_SCLK_CAM1>,
<&clock CLK_PIXELASYNCM0>, <&clock CLK_PIXELASYNCM1>;
clock-names = "sclk_cam0", "sclk_cam1", "pxl_async0", "pxl_async1";
/* fimc_[0-3] are configured outside, under phandles */
fimc_lite_0: fimc-lite@12390000 {
fimc_lite_0: fimc-lite@b90000 {
compatible = "samsung,exynos4212-fimc-lite";
reg = <0x12390000 0x1000>;
reg = <0x00b90000 0x1000>;
interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&pd_isp>;
clocks = <&isp_clock CLK_ISP_FIMC_LITE0>;
@ -467,9 +468,9 @@
status = "disabled";
};
fimc_lite_1: fimc-lite@123a0000 {
fimc_lite_1: fimc-lite@ba0000 {
compatible = "samsung,exynos4212-fimc-lite";
reg = <0x123a0000 0x1000>;
reg = <0x00ba0000 0x1000>;
interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&pd_isp>;
clocks = <&isp_clock CLK_ISP_FIMC_LITE1>;
@ -478,9 +479,9 @@
status = "disabled";
};
fimc_is: fimc-is@12000000 {
fimc_is: fimc-is@800000 {
compatible = "samsung,exynos4212-fimc-is";
reg = <0x12000000 0x260000>;
reg = <0x00800000 0x260000>;
interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&pd_isp>;
@ -516,18 +517,15 @@
iommus = <&sysmmu_fimc_isp>, <&sysmmu_fimc_drc>,
<&sysmmu_fimc_fd>, <&sysmmu_fimc_mcuctl>;
iommu-names = "isp", "drc", "fd", "mcuctl";
samsung,pmu-syscon = <&pmu_system_controller>;
#address-cells = <1>;
#size-cells = <1>;
ranges;
status = "disabled";
pmu@10020000 {
reg = <0x10020000 0x3000>;
};
i2c1_isp: i2c-isp@12140000 {
i2c1_isp: i2c-isp@940000 {
compatible = "samsung,exynos4212-i2c-isp";
reg = <0x12140000 0x100>;
reg = <0x00940000 0x100>;
clocks = <&isp_clock CLK_ISP_I2C1_ISP>;
clock-names = "i2c_isp";
#address-cells = <1>;

View File

@ -549,17 +549,17 @@
camera: camera@fa600000 {
compatible = "samsung,fimc";
ranges = <0x0 0xfa600000 0xe01000>;
clocks = <&clocks SCLK_CAM0>, <&clocks SCLK_CAM1>;
clock-names = "sclk_cam0", "sclk_cam1";
#address-cells = <1>;
#size-cells = <1>;
#clock-cells = <1>;
clock-output-names = "cam_a_clkout", "cam_b_clkout";
ranges;
csis0: csis@fa600000 {
csis0: csis@0 {
compatible = "samsung,s5pv210-csis";
reg = <0xfa600000 0x4000>;
reg = <0x00000000 0x4000>;
interrupt-parent = <&vic2>;
interrupts = <29>;
clocks = <&clocks CLK_CSIS>,
@ -572,9 +572,9 @@
#size-cells = <0>;
};
fimc0: fimc@fb200000 {
fimc0: fimc@c00000 {
compatible = "samsung,s5pv210-fimc";
reg = <0xfb200000 0x1000>;
reg = <0x00c00000 0x1000>;
interrupts = <5>;
interrupt-parent = <&vic2>;
clocks = <&clocks CLK_FIMC0>,
@ -586,9 +586,9 @@
samsung,cam-if;
};
fimc1: fimc@fb300000 {
fimc1: fimc@d00000 {
compatible = "samsung,s5pv210-fimc";
reg = <0xfb300000 0x1000>;
reg = <0x00d00000 0x1000>;
interrupt-parent = <&vic2>;
interrupts = <6>;
clocks = <&clocks CLK_FIMC1>,
@ -602,9 +602,9 @@
samsung,lcd-wb;
};
fimc2: fimc@fb400000 {
fimc2: fimc@e00000 {
compatible = "samsung,s5pv210-fimc";
reg = <0xfb400000 0x1000>;
reg = <0x00e00000 0x1000>;
interrupt-parent = <&vic2>;
interrupts = <7>;
clocks = <&clocks CLK_FIMC2>,