Commit 9bc75fe5 authored by Arnd Bergmann's avatar Arnd Bergmann

Merge tag 'samsung-dt-6.8' of...

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.orgSigned-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 2dfe48a8 50c7cdc9
......@@ -203,16 +203,16 @@ dsi_0: dsi@11c80000 {
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 @@ fimc_0: fimc@11800000 {
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 @@ fimc_1: fimc@11810000 {
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 @@ fimc_2: fimc@11820000 {
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 @@ fimc_3: fimc@11830000 {
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 @@ csis_0: csis@11880000 {
#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>;
......
......@@ -184,6 +184,28 @@ s5k5bafx_ep: endpoint {
};
};
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 @@ &hsotg {
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 @@ vtouch_reg: LDO11 {
regulator-name = "TOUCH_2.8V";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-always-on;
};
vpll_reg: LDO10 {
......@@ -527,6 +565,14 @@ vtcam_reg: LDO12 {
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 {
......
......@@ -451,14 +451,15 @@ &combiner {
};
&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 @@ fimc_lite_0: fimc-lite@12390000 {
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 @@ fimc_lite_1: fimc-lite@123a0000 {
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 @@ fimc_is: fimc-is@12000000 {
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>;
......
......@@ -549,17 +549,17 @@ i2c1: i2c@fab00000 {
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 @@ csis0: csis@fa600000 {
#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 @@ fimc0: fimc@fb200000 {
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 @@ fimc1: fimc@fb300000 {
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>,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment