All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] dt-bindings: arm/samsung: Add compatible string for the Galaxy S2
@ 2020-03-12 15:34 ` Paul Cercueil
  0 siblings, 0 replies; 35+ messages in thread
From: Paul Cercueil @ 2020-03-12 15:34 UTC (permalink / raw)
  To: Kukjin Kim, Krzysztof Kozlowski, Rob Herring, Mark Rutland
  Cc: Stenkin Evgeniy, linux-arm-kernel, linux-samsung-soc, devicetree,
	linux-kernel, Paul Cercueil

Add compatible string for the Samsung Galaxy S2 (i9100 version), which
is an Exynos 4210 based device.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
---
 .../devicetree/bindings/arm/samsung/samsung-boards.yaml          | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
index 63acd57c4799..e2b19caac795 100644
--- a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
+++ b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
@@ -55,6 +55,7 @@ properties:
               - samsung,smdkv310                # Samsung SMDKV310 eval
               - samsung,trats                   # Samsung Tizen Reference
               - samsung,universal_c210          # Samsung C210
+              - samsung,i9100                   # Samsung Galaxy S2
           - const: samsung,exynos4210
           - const: samsung,exynos4
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH 1/2] dt-bindings: arm/samsung: Add compatible string for the Galaxy S2
@ 2020-03-12 15:34 ` Paul Cercueil
  0 siblings, 0 replies; 35+ messages in thread
From: Paul Cercueil @ 2020-03-12 15:34 UTC (permalink / raw)
  To: Kukjin Kim, Krzysztof Kozlowski, Rob Herring, Mark Rutland
  Cc: devicetree, Stenkin Evgeniy, linux-samsung-soc, linux-kernel,
	Paul Cercueil, linux-arm-kernel

Add compatible string for the Samsung Galaxy S2 (i9100 version), which
is an Exynos 4210 based device.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
---
 .../devicetree/bindings/arm/samsung/samsung-boards.yaml          | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
index 63acd57c4799..e2b19caac795 100644
--- a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
+++ b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
@@ -55,6 +55,7 @@ properties:
               - samsung,smdkv310                # Samsung SMDKV310 eval
               - samsung,trats                   # Samsung Tizen Reference
               - samsung,universal_c210          # Samsung C210
+              - samsung,i9100                   # Samsung Galaxy S2
           - const: samsung,exynos4210
           - const: samsung,exynos4
 
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
  2020-03-12 15:34 ` Paul Cercueil
@ 2020-03-12 15:34   ` Paul Cercueil
  -1 siblings, 0 replies; 35+ messages in thread
From: Paul Cercueil @ 2020-03-12 15:34 UTC (permalink / raw)
  To: Kukjin Kim, Krzysztof Kozlowski, Rob Herring, Mark Rutland
  Cc: Stenkin Evgeniy, linux-arm-kernel, linux-samsung-soc, devicetree,
	linux-kernel, Paul Cercueil

From: Stenkin Evgeniy <stenkinevgeniy@gmail.com>

Add devicetree file for the Exynos 4210 based Galaxy S2 (i9100 version).

Signed-off-by: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
---
 arch/arm/boot/dts/Makefile             |   1 +
 arch/arm/boot/dts/exynos4210-i9100.dts | 816 +++++++++++++++++++++++++
 2 files changed, 817 insertions(+)
 create mode 100644 arch/arm/boot/dts/exynos4210-i9100.dts

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index d6546d2676b9..522436d30690 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -181,6 +181,7 @@ dtb-$(CONFIG_ARCH_EXYNOS3) += \
 	exynos3250-monk.dtb \
 	exynos3250-rinato.dtb
 dtb-$(CONFIG_ARCH_EXYNOS4) += \
+	exynos4210-i9100.dtb \
 	exynos4210-origen.dtb \
 	exynos4210-smdkv310.dtb \
 	exynos4210-trats.dtb \
diff --git a/arch/arm/boot/dts/exynos4210-i9100.dts b/arch/arm/boot/dts/exynos4210-i9100.dts
new file mode 100644
index 000000000000..c218e34959be
--- /dev/null
+++ b/arch/arm/boot/dts/exynos4210-i9100.dts
@@ -0,0 +1,816 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Samsung's Exynos4210 based Galaxy S2 (i9100 version) device tree
+ *
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd.
+ *		http://www.samsung.com
+ * Copyright (c) 2020 Stenkin Evgeniy <stenkinevgeniy@gmail.com>
+ * Copyright (c) 2020 Paul Cercueil <paul@crapouillou.net>
+ *
+ * Device tree source file for Samsung's Galaxy S2 smartphone (i9100 version),
+ * which is based on Samsung's Exynos4210 SoC.
+ */
+
+/dts-v1/;
+#include "exynos4210.dtsi"
+#include "exynos4412-ppmu-common.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/linux-event-codes.h>
+
+/ {
+	model = "Samsung Galaxy S2 (i9100)";
+	compatible = "samsung,i9100", "samsung,exynos4210", "samsung,exynos4";
+
+
+	memory@40000000 {
+		device_type = "memory";
+		reg = <0x40000000 0x40000000>;
+	};
+
+	vemmc_reg: regulator-0 {
+		compatible = "regulator-fixed";
+		regulator-name = "VMEM_VDD_2.8V";
+		regulator-min-microvolt = <2800000>;
+		regulator-max-microvolt = <2800000>;
+		gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	tsp_reg: regulator-1 {
+		compatible = "regulator-fixed";
+		regulator-name = "TSP_FIXED_VOLTAGES";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
+		startup-delay-us = <70000>;
+		enable-active-high;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	cam_af_28v_reg: regulator-3 {
+		compatible = "regulator-fixed";
+		regulator-name = "8M_AF_2.8V_EN";
+		regulator-min-microvolt = <2800000>;
+		regulator-max-microvolt = <2800000>;
+		gpio = <&gpk1 1 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	cam_io_en_reg: regulator-4 {
+		compatible = "regulator-fixed";
+		regulator-name = "CAM_IO_EN";
+		regulator-min-microvolt = <2800000>;
+		regulator-max-microvolt = <2800000>;
+		gpio = <&gpe2 1 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	cam_io_12v_reg: regulator-5 {
+		compatible = "regulator-fixed";
+		regulator-name = "8M_1.2V_EN";
+		regulator-min-microvolt = <1200000>;
+		regulator-max-microvolt = <1200000>;
+		gpio = <&gpe2 5 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	vt_core_15v_reg: regulator-6 {
+		compatible = "regulator-fixed";
+		regulator-name = "VT_CORE_1.5V";
+		regulator-min-microvolt = <1500000>;
+		regulator-max-microvolt = <1500000>;
+		gpio = <&gpe2 2 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		vol-down {
+			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_VOLUMEDOWN>;
+			label = "volume down";
+			debounce-interval = <10>;
+		};
+
+		vol-up {
+			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_VOLUMEUP>;
+			label = "volume up";
+			debounce-interval = <10>;
+		};
+
+		power {
+			gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_POWER>;
+			label = "power";
+			debounce-interval = <10>;
+			wakeup-source;
+		};
+
+		ok {
+			gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_OK>;
+			label = "ok";
+			debounce-interval = <10>;
+		};
+	};
+
+	wlan_pwrseq: sdhci3-pwrseq {
+		compatible = "mmc-pwrseq-simple";
+		reset-gpios = <&gpl1 2 GPIO_ACTIVE_LOW>;
+	};
+
+	i2c_max17042_fuel: i2c-gpio-3 {
+		compatible = "i2c-gpio";
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		sda-gpios = <&gpy4 0 GPIO_ACTIVE_HIGH>;
+		scl-gpios = <&gpy4 1 GPIO_ACTIVE_HIGH>;
+		i2c-gpio,delay-us = <5>;
+
+		battery@36 {
+			compatible = "maxim,max17042";
+
+			interrupt-parent = <&gpx2>;
+			interrupts = <3 2>;
+
+			pinctrl-0 = <&max17042_fuel_irq>;
+			pinctrl-names = "default";
+
+			reg = <0x36>;
+			maxim,over-heat-temp = <700>;
+			maxim,over-volt = <4500>;
+
+		};
+	};
+
+	spi-lcd {
+		compatible = "spi-gpio";
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		num-chipselects = <1>;
+		cs-gpios = <&gpy4 3 GPIO_ACTIVE_HIGH>;
+		sck-gpios = <&gpy3 1 GPIO_ACTIVE_HIGH>;
+		mosi-gpios = <&gpy3 3 GPIO_ACTIVE_HIGH>;
+
+		lcd@0 {
+			compatible = "samsung,ld9040";
+			reg = <0>;
+
+			spi-max-frequency = <1200000>;
+			spi-cpol;
+			spi-cpha;
+
+			vdd3-supply = <&vmipi_reg>;
+			vci-supply = <&vcclcd_reg>;
+
+			reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
+			power-on-delay = <10>;
+			reset-delay = <10>;
+
+			panel-width-mm = <90>;
+			panel-height-mm = <154>;
+
+			display-timings {
+				timing {
+					clock-frequency = <23492370>;
+					hactive = <480>;
+					vactive = <800>;
+					hback-porch = <16>;
+					hfront-porch = <16>;
+					vback-porch = <2>;
+					vfront-porch = <28>;
+					hsync-len = <2>;
+					vsync-len = <1>;
+					hsync-active = <0>;
+					vsync-active = <0>;
+					de-active = <0>;
+					pixelclk-active = <0>;
+				};
+			};
+
+			port {
+				lcd_ep: endpoint {
+					remote-endpoint = <&fimd_dpi_ep>;
+				};
+			};
+		};
+	};
+
+	fixed-rate-clocks {
+		xxti {
+			compatible = "samsung,clock-xxti";
+			clock-frequency = <0>;
+		};
+
+		xusbxti {
+			compatible = "samsung,clock-xusbxti";
+			clock-frequency = <24000000>;
+		};
+	};
+
+	thermal-zones {
+		cpu_thermal: cpu-thermal {
+			cooling-maps {
+				map0 {
+					/* Corresponds to 800MHz */
+					cooling-device = <&cpu0 2 2>;
+				};
+				map1 {
+					/* Corresponds to 200MHz */
+					cooling-device = <&cpu0 4 4>;
+				};
+			};
+		};
+	};
+
+};
+
+&camera {
+	status = "okay";
+};
+
+&cpu0 {
+	cpu0-supply = <&varm_breg>;
+};
+
+&exynos_usbphy {
+	status = "okay";
+
+	vbus-supply = <&safe1_sreg>;
+};
+
+&fimc_0 {
+	status = "okay";
+
+	assigned-clocks = <&clock CLK_MOUT_FIMC0>, <&clock CLK_SCLK_FIMC0>;
+	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
+	assigned-clock-rates = <0>, <160000000>;
+};
+
+&fimc_1 {
+	status = "okay";
+
+	assigned-clocks = <&clock CLK_MOUT_FIMC1>, <&clock CLK_SCLK_FIMC1>;
+	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
+	assigned-clock-rates = <0>, <160000000>;
+};
+
+&fimc_2 {
+	status = "okay";
+
+	assigned-clocks = <&clock CLK_MOUT_FIMC2>, <&clock CLK_SCLK_FIMC2>;
+	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
+	assigned-clock-rates = <0>, <160000000>;
+};
+
+&fimc_3 {
+	status = "okay";
+
+	assigned-clocks = <&clock CLK_MOUT_FIMC3>, <&clock CLK_SCLK_FIMC3>;
+	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
+	assigned-clock-rates = <0>, <160000000>;
+};
+
+&fimd {
+	status = "okay";
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	samsung,invert-vden;
+	samsung,invert-vclk;
+
+	pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
+	pinctrl-names = "default";
+
+	port@3 {
+		reg = <3>;
+
+		fimd_dpi_ep: endpoint {
+			remote-endpoint = <&lcd_ep>;
+		};
+	};
+};
+
+&hsotg {
+	status = "okay";
+
+	dr_mode = "otg";
+	vusb_d-supply = <&vusb_reg>;
+	vusb_a-supply = <&vusbdac_reg>;
+};
+
+&ehci {
+	status = "okay";
+
+	port@0 {
+		status = "okay";
+	};
+
+	port@1 {
+		status = "okay";
+	};
+
+	port@2 {
+		status = "okay";
+	};
+};
+
+
+&i2c_3 {
+	status = "okay";
+
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-slave-addr = <0x10>;
+	samsung,i2c-max-bus-freq = <100000>;
+
+	pinctrl-0 = <&i2c3_bus>;
+	pinctrl-names = "default";
+
+	mxt224-touchscreen@4a {
+		compatible = "atmel,maxtouch";
+		reg = <0x4a>;
+
+		interrupt-parent = <&gpx0>;
+		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
+
+		avdd-supply = <&tsp_reg>;
+		vdd-supply = <&tsp_reg>;
+	};
+};
+
+&i2c_7 {
+	status = "okay";
+
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-slave-addr = <0x10>;
+	samsung,i2c-max-bus-freq = <400000>;
+
+	pinctrl-0 = <&i2c7_bus>;
+	pinctrl-names = "default";
+
+	ak8975@c {
+		compatible = "asahi-kasei,ak8975";
+		reg = <0x0c>;
+
+		gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+
+&i2c_5 {
+	status = "okay";
+
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-slave-addr = <0x10>;
+	samsung,i2c-max-bus-freq = <100000>;
+
+	pinctrl-0 = <&i2c5_bus>;
+	pinctrl-names = "default";
+
+	max8997_pmic@66 {
+		compatible = "maxim,max8997-pmic";
+		reg = <0x66>;
+
+		interrupts-extended = <&gpx0 7 0>, <&gpx2 3 2>;
+		interrupt-parent = <&gpx0>;
+		interrupts = <7 IRQ_TYPE_NONE>;
+
+		otg_en-gpios = <&gpx3 3 0>;
+		usb_sel-gpios = <&gpl0 6 0>;
+
+		max8997,pmic-buck1-uses-gpio-dvs;
+		max8997,pmic-buck2-uses-gpio-dvs;
+		max8997,pmic-buck5-uses-gpio-dvs;
+
+		max8997,pmic-ignore-gpiodvs-side-effect;
+		max8997,pmic-buck125-default-dvs-idx = <0>;
+
+		max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
+						 <&gpx0 6 GPIO_ACTIVE_HIGH>,
+						 <&gpl0 0 GPIO_ACTIVE_HIGH>;
+
+		max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
+						 <1250000>, <1200000>,
+						 <1150000>, <1100000>,
+						 <1000000>, <950000>;
+
+		max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
+						 <950000>,  <900000>,
+						 <1100000>, <1000000>,
+						 <950000>,  <900000>;
+
+		max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
+						 <1200000>, <1200000>,
+						 <1200000>, <1200000>,
+						 <1200000>, <1200000>;
+
+		pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
+		pinctrl-names = "default";
+
+		regulators {
+			vadc_reg: LDO1 {
+				regulator-name = "VADC_3.3V_C210";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+
+			};
+			valive_reg: LDO2 {
+				regulator-name = "VALIVE_1.1V_C210";
+				regulator-min-microvolt = <1100000>;
+				regulator-max-microvolt = <1100000>;
+				regulator-always-on;
+
+			};
+
+			vusb_reg: LDO3 {
+				regulator-name = "VUSB_1.1V_C210";
+				regulator-min-microvolt = <1100000>;
+				regulator-max-microvolt = <1100000>;
+			};
+
+			vmipi_reg: LDO4 {
+				regulator-name = "VMIPI_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+			};
+
+			vhsic_reg: LDO5 {
+				regulator-name = "VHSIC_1.2V";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1200000>;
+				regulator-always-on;
+			};
+
+			vpda_reg: LDO6 {
+				regulator-name = "VCC_1.8V_PDA";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+			};
+
+			vcam_reg: LDO7 {
+				regulator-name = "CAM_ISP_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
+
+			vusbdac_reg: LDO8 {
+				regulator-name = "VUSB+VDAC_3.3V_C210";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+			};
+
+			vccpda_reg: LDO9 {
+				regulator-name = "VCC_2.8V_PDA";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-always-on;
+			};
+
+			vtouch_reg: LDO11 {
+				regulator-name = "TOUCH_2.8V";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-always-on;
+			};
+
+			vpll_reg: LDO10 {
+				regulator-name = "VPLL_1.1V";
+				regulator-min-microvolt = <1100000>;
+				regulator-max-microvolt = <1100000>;
+				regulator-always-on;
+			};
+
+			vtcam_reg: LDO12 {
+				regulator-name = "VT_CAM_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
+
+			vcclcd_reg: LDO13 {
+				regulator-name = "VCC_3.0V_LCD";
+				regulator-min-microvolt = <3000000>;
+				regulator-max-microvolt = <3000000>;
+			};
+
+			vmotor_reg: LDO14 {
+				regulator-name = "VCC_2.8V_MOTOR";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+			};
+
+			vled_reg: LDO15 {
+				regulator-name = "LED_A_2.8V";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+			};
+
+			camsensor_reg: LDO16 {
+				regulator-name = "CAM_SENSOR_IO_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
+
+			vtf_reg: LDO17 {
+				regulator-name = "VTF_2.8V";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+			};
+
+			vtouchled_reg: LDO18 {
+				regulator-name = "TOUCH_LED_3.3V";
+				regulator-min-microvolt = <2500000>;
+				regulator-max-microvolt = <3300000>;
+			};
+
+			vddq_reg: LDO21 {
+				regulator-name = "VDDQ_M1M2_1.2V";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1200000>;
+				regulator-always-on;
+			};
+
+			varm_breg: BUCK1 {
+				//regulator-name = "VARM_1.2V_C210";
+				regulator-name = "vdd_arm";
+				regulator-min-microvolt = <65000>;
+				regulator-max-microvolt = <2225000>;
+				regulator-always-on;
+			};
+
+			vint_breg: BUCK2 {
+				regulator-name = "VINT_1.1V_C210";
+				regulator-min-microvolt = <65000>;
+				regulator-max-microvolt = <2225000>;
+				regulator-always-on;
+			};
+
+			vg3d_breg: BUCK3 {
+				regulator-name = "G3D_1.1V";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1200000>;
+				regulator-always-on;
+			};
+
+			camisp_breg: BUCK4 {
+				regulator-name = "CAM_ISP_CORE_1.2V";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1200000>;
+			};
+
+			vmem_breg: BUCK5 {
+				regulator-name = "VMEM_1.2V";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1200000>;
+				regulator-always-on;
+			};
+
+			vccsub_breg: BUCK7 {
+				regulator-name = "VCC_SUB_2.0V";
+				regulator-min-microvolt = <2000000>;
+				regulator-max-microvolt = <2000000>;
+				regulator-always-on;
+			};
+
+			safe1_sreg: ESAFEOUT1 {
+				regulator-name = "SAFEOUT1";
+			};
+
+			safe2_sreg: ESAFEOUT2 {
+				regulator-name = "SAFEOUT2";
+				regulator-boot-on;
+			};
+
+			charger_reg: CHARGER {
+				regulator-name = "CHARGER";
+				regulator-min-microamp = <60000>;
+				regulator-max-microamp = <2580000>;
+				regulator-always-on;
+			};
+
+			chargercv_reg: CHARGER_CV {
+				regulator-name = "CHARGER_CV";
+				regulator-min-microvolt = <3800000>;
+				regulator-max-microvolt = <4100000>;
+				regulator-always-on;
+			};
+
+		};
+
+	};
+};
+
+
+&gpu {
+	status = "okay";
+
+	mali-supply = <&vg3d_breg>;
+	regulator-microvolt-offset = <50000>;
+	regulator-microsecs-delay = <50>;
+};
+
+
+&sdhci_0 {
+	status = "okay";
+
+	bus-width = <8>;
+	non-removable;
+	vmmc-supply = <&vemmc_reg>;
+
+	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_bus8>;
+	pinctrl-names = "default";
+};
+
+&sdhci_2 {
+	status = "okay";
+
+	bus-width = <4>;
+	cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
+	vmmc-supply = <&vtf_reg>;
+
+	pinctrl-0 = <&sd2_clk>, <&sd2_cmd>, <&sd2_bus4>;
+	pinctrl-names = "default";
+};
+
+&ehci {
+	port@0 {
+		status = "okay";
+	};
+
+	port@1 {
+		status = "okay";
+	};
+
+	port@2 {
+		status = "okay";
+	};
+
+};
+
+
+&sdhci_3 {
+	status = "okay";
+
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	non-removable;
+	bus-width = <4>;
+	mmc-pwrseq = <&wlan_pwrseq>;
+	vmmc-supply = <&vtf_reg>;
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&sd3_clk>, <&sd3_cmd>, <&sd3_bus4>;
+
+	brcmf: wifi@1 {
+		compatible = "brcm,bcm4330-fmac";
+		reg = <1>;
+
+		interrupt-parent = <&gpx2>;
+		interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "host-wake";
+	};
+};
+
+
+&serial_0 {
+	status = "okay";
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&bt_en>, <&bt_res>, <&uart0_data>, <&uart0_fctl>;
+
+	bluetooth {
+		compatible = "brcm,bcm4330-bt";
+
+		shutdown-gpios = <&gpl0 4 GPIO_ACTIVE_HIGH>;
+		reset-gpios = <&gpl1 0 GPIO_ACTIVE_HIGH>;
+		device-wakeup-gpios = <&gpx3 1 GPIO_ACTIVE_HIGH>;
+		host-wakeup-gpios = <&gpx2 6 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+&serial_1 {
+	status = "okay";
+};
+
+&serial_2 {
+	status = "okay";
+};
+
+&serial_3 {
+	status = "okay";
+};
+
+&tmu {
+	status = "okay";
+};
+
+
+&pinctrl_0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&sleep0>;
+
+
+	sleep0: sleep-states {
+		gpa0-0 {
+			samsung,pins = "gpa0-0";
+			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
+			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
+		};
+
+		gpa0-1 {
+			samsung,pins = "gpa0-1";
+			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT0>;
+			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
+		};
+
+		gpa0-2 {
+			samsung,pins = "gpa0-2";
+			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
+			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
+		};
+
+		gpa0-3 {
+			samsung,pins = "gpa0-3";
+			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT1>;
+			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
+		};
+	};
+};
+
+&pinctrl_1 {
+	mhl_int: mhl-int {
+		samsung,pins = "gpf3-5";
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+	};
+
+	i2c_mhl_bus: i2c-mhl-bus {
+		samsung,pins = "gpf0-4", "gpf0-6";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
+	};
+
+	usb_sel: usb-sel {
+		samsung,pins = "gpl0-6";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
+		samsung,pin-val = <0>;
+	};
+
+	bt_en: bt-en {
+		samsung,pins = "gpl0-4";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
+		samsung,pin-val = <0>;
+	};
+
+	bt_res: bt-res {
+		samsung,pins = "gpl1-0";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
+		samsung,pin-val = <0>;
+	};
+
+
+	otg_gp: otg-gp {
+		samsung,pins = "gpx3-3";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
+		samsung,pin-val = <0>;
+	};
+
+	mag_mhl_gpio: mag-mhl-gpio {
+		samsung,pins = "gpd0-2";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+	};
+
+
+	max8997_irq: max8997-irq {
+		samsung,pins = "gpx0-7";
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+	};
+
+	max17042_fuel_irq: max17042-fuel-irq {
+		samsung,pins = "gpx2-3";
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+	};
+
+	tsp224_irq: tsp224-irq {
+		samsung,pins = "gpx0-4";
+		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+	};
+};
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 35+ messages in thread

* [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
@ 2020-03-12 15:34   ` Paul Cercueil
  0 siblings, 0 replies; 35+ messages in thread
From: Paul Cercueil @ 2020-03-12 15:34 UTC (permalink / raw)
  To: Kukjin Kim, Krzysztof Kozlowski, Rob Herring, Mark Rutland
  Cc: devicetree, Stenkin Evgeniy, linux-samsung-soc, linux-kernel,
	Paul Cercueil, linux-arm-kernel

From: Stenkin Evgeniy <stenkinevgeniy@gmail.com>

Add devicetree file for the Exynos 4210 based Galaxy S2 (i9100 version).

Signed-off-by: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
---
 arch/arm/boot/dts/Makefile             |   1 +
 arch/arm/boot/dts/exynos4210-i9100.dts | 816 +++++++++++++++++++++++++
 2 files changed, 817 insertions(+)
 create mode 100644 arch/arm/boot/dts/exynos4210-i9100.dts

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index d6546d2676b9..522436d30690 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -181,6 +181,7 @@ dtb-$(CONFIG_ARCH_EXYNOS3) += \
 	exynos3250-monk.dtb \
 	exynos3250-rinato.dtb
 dtb-$(CONFIG_ARCH_EXYNOS4) += \
+	exynos4210-i9100.dtb \
 	exynos4210-origen.dtb \
 	exynos4210-smdkv310.dtb \
 	exynos4210-trats.dtb \
diff --git a/arch/arm/boot/dts/exynos4210-i9100.dts b/arch/arm/boot/dts/exynos4210-i9100.dts
new file mode 100644
index 000000000000..c218e34959be
--- /dev/null
+++ b/arch/arm/boot/dts/exynos4210-i9100.dts
@@ -0,0 +1,816 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Samsung's Exynos4210 based Galaxy S2 (i9100 version) device tree
+ *
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd.
+ *		http://www.samsung.com
+ * Copyright (c) 2020 Stenkin Evgeniy <stenkinevgeniy@gmail.com>
+ * Copyright (c) 2020 Paul Cercueil <paul@crapouillou.net>
+ *
+ * Device tree source file for Samsung's Galaxy S2 smartphone (i9100 version),
+ * which is based on Samsung's Exynos4210 SoC.
+ */
+
+/dts-v1/;
+#include "exynos4210.dtsi"
+#include "exynos4412-ppmu-common.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/linux-event-codes.h>
+
+/ {
+	model = "Samsung Galaxy S2 (i9100)";
+	compatible = "samsung,i9100", "samsung,exynos4210", "samsung,exynos4";
+
+
+	memory@40000000 {
+		device_type = "memory";
+		reg = <0x40000000 0x40000000>;
+	};
+
+	vemmc_reg: regulator-0 {
+		compatible = "regulator-fixed";
+		regulator-name = "VMEM_VDD_2.8V";
+		regulator-min-microvolt = <2800000>;
+		regulator-max-microvolt = <2800000>;
+		gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	tsp_reg: regulator-1 {
+		compatible = "regulator-fixed";
+		regulator-name = "TSP_FIXED_VOLTAGES";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
+		startup-delay-us = <70000>;
+		enable-active-high;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	cam_af_28v_reg: regulator-3 {
+		compatible = "regulator-fixed";
+		regulator-name = "8M_AF_2.8V_EN";
+		regulator-min-microvolt = <2800000>;
+		regulator-max-microvolt = <2800000>;
+		gpio = <&gpk1 1 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	cam_io_en_reg: regulator-4 {
+		compatible = "regulator-fixed";
+		regulator-name = "CAM_IO_EN";
+		regulator-min-microvolt = <2800000>;
+		regulator-max-microvolt = <2800000>;
+		gpio = <&gpe2 1 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	cam_io_12v_reg: regulator-5 {
+		compatible = "regulator-fixed";
+		regulator-name = "8M_1.2V_EN";
+		regulator-min-microvolt = <1200000>;
+		regulator-max-microvolt = <1200000>;
+		gpio = <&gpe2 5 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	vt_core_15v_reg: regulator-6 {
+		compatible = "regulator-fixed";
+		regulator-name = "VT_CORE_1.5V";
+		regulator-min-microvolt = <1500000>;
+		regulator-max-microvolt = <1500000>;
+		gpio = <&gpe2 2 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys";
+
+		vol-down {
+			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_VOLUMEDOWN>;
+			label = "volume down";
+			debounce-interval = <10>;
+		};
+
+		vol-up {
+			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_VOLUMEUP>;
+			label = "volume up";
+			debounce-interval = <10>;
+		};
+
+		power {
+			gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_POWER>;
+			label = "power";
+			debounce-interval = <10>;
+			wakeup-source;
+		};
+
+		ok {
+			gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_OK>;
+			label = "ok";
+			debounce-interval = <10>;
+		};
+	};
+
+	wlan_pwrseq: sdhci3-pwrseq {
+		compatible = "mmc-pwrseq-simple";
+		reset-gpios = <&gpl1 2 GPIO_ACTIVE_LOW>;
+	};
+
+	i2c_max17042_fuel: i2c-gpio-3 {
+		compatible = "i2c-gpio";
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		sda-gpios = <&gpy4 0 GPIO_ACTIVE_HIGH>;
+		scl-gpios = <&gpy4 1 GPIO_ACTIVE_HIGH>;
+		i2c-gpio,delay-us = <5>;
+
+		battery@36 {
+			compatible = "maxim,max17042";
+
+			interrupt-parent = <&gpx2>;
+			interrupts = <3 2>;
+
+			pinctrl-0 = <&max17042_fuel_irq>;
+			pinctrl-names = "default";
+
+			reg = <0x36>;
+			maxim,over-heat-temp = <700>;
+			maxim,over-volt = <4500>;
+
+		};
+	};
+
+	spi-lcd {
+		compatible = "spi-gpio";
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		num-chipselects = <1>;
+		cs-gpios = <&gpy4 3 GPIO_ACTIVE_HIGH>;
+		sck-gpios = <&gpy3 1 GPIO_ACTIVE_HIGH>;
+		mosi-gpios = <&gpy3 3 GPIO_ACTIVE_HIGH>;
+
+		lcd@0 {
+			compatible = "samsung,ld9040";
+			reg = <0>;
+
+			spi-max-frequency = <1200000>;
+			spi-cpol;
+			spi-cpha;
+
+			vdd3-supply = <&vmipi_reg>;
+			vci-supply = <&vcclcd_reg>;
+
+			reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
+			power-on-delay = <10>;
+			reset-delay = <10>;
+
+			panel-width-mm = <90>;
+			panel-height-mm = <154>;
+
+			display-timings {
+				timing {
+					clock-frequency = <23492370>;
+					hactive = <480>;
+					vactive = <800>;
+					hback-porch = <16>;
+					hfront-porch = <16>;
+					vback-porch = <2>;
+					vfront-porch = <28>;
+					hsync-len = <2>;
+					vsync-len = <1>;
+					hsync-active = <0>;
+					vsync-active = <0>;
+					de-active = <0>;
+					pixelclk-active = <0>;
+				};
+			};
+
+			port {
+				lcd_ep: endpoint {
+					remote-endpoint = <&fimd_dpi_ep>;
+				};
+			};
+		};
+	};
+
+	fixed-rate-clocks {
+		xxti {
+			compatible = "samsung,clock-xxti";
+			clock-frequency = <0>;
+		};
+
+		xusbxti {
+			compatible = "samsung,clock-xusbxti";
+			clock-frequency = <24000000>;
+		};
+	};
+
+	thermal-zones {
+		cpu_thermal: cpu-thermal {
+			cooling-maps {
+				map0 {
+					/* Corresponds to 800MHz */
+					cooling-device = <&cpu0 2 2>;
+				};
+				map1 {
+					/* Corresponds to 200MHz */
+					cooling-device = <&cpu0 4 4>;
+				};
+			};
+		};
+	};
+
+};
+
+&camera {
+	status = "okay";
+};
+
+&cpu0 {
+	cpu0-supply = <&varm_breg>;
+};
+
+&exynos_usbphy {
+	status = "okay";
+
+	vbus-supply = <&safe1_sreg>;
+};
+
+&fimc_0 {
+	status = "okay";
+
+	assigned-clocks = <&clock CLK_MOUT_FIMC0>, <&clock CLK_SCLK_FIMC0>;
+	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
+	assigned-clock-rates = <0>, <160000000>;
+};
+
+&fimc_1 {
+	status = "okay";
+
+	assigned-clocks = <&clock CLK_MOUT_FIMC1>, <&clock CLK_SCLK_FIMC1>;
+	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
+	assigned-clock-rates = <0>, <160000000>;
+};
+
+&fimc_2 {
+	status = "okay";
+
+	assigned-clocks = <&clock CLK_MOUT_FIMC2>, <&clock CLK_SCLK_FIMC2>;
+	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
+	assigned-clock-rates = <0>, <160000000>;
+};
+
+&fimc_3 {
+	status = "okay";
+
+	assigned-clocks = <&clock CLK_MOUT_FIMC3>, <&clock CLK_SCLK_FIMC3>;
+	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
+	assigned-clock-rates = <0>, <160000000>;
+};
+
+&fimd {
+	status = "okay";
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	samsung,invert-vden;
+	samsung,invert-vclk;
+
+	pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
+	pinctrl-names = "default";
+
+	port@3 {
+		reg = <3>;
+
+		fimd_dpi_ep: endpoint {
+			remote-endpoint = <&lcd_ep>;
+		};
+	};
+};
+
+&hsotg {
+	status = "okay";
+
+	dr_mode = "otg";
+	vusb_d-supply = <&vusb_reg>;
+	vusb_a-supply = <&vusbdac_reg>;
+};
+
+&ehci {
+	status = "okay";
+
+	port@0 {
+		status = "okay";
+	};
+
+	port@1 {
+		status = "okay";
+	};
+
+	port@2 {
+		status = "okay";
+	};
+};
+
+
+&i2c_3 {
+	status = "okay";
+
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-slave-addr = <0x10>;
+	samsung,i2c-max-bus-freq = <100000>;
+
+	pinctrl-0 = <&i2c3_bus>;
+	pinctrl-names = "default";
+
+	mxt224-touchscreen@4a {
+		compatible = "atmel,maxtouch";
+		reg = <0x4a>;
+
+		interrupt-parent = <&gpx0>;
+		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
+
+		avdd-supply = <&tsp_reg>;
+		vdd-supply = <&tsp_reg>;
+	};
+};
+
+&i2c_7 {
+	status = "okay";
+
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-slave-addr = <0x10>;
+	samsung,i2c-max-bus-freq = <400000>;
+
+	pinctrl-0 = <&i2c7_bus>;
+	pinctrl-names = "default";
+
+	ak8975@c {
+		compatible = "asahi-kasei,ak8975";
+		reg = <0x0c>;
+
+		gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+
+&i2c_5 {
+	status = "okay";
+
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-slave-addr = <0x10>;
+	samsung,i2c-max-bus-freq = <100000>;
+
+	pinctrl-0 = <&i2c5_bus>;
+	pinctrl-names = "default";
+
+	max8997_pmic@66 {
+		compatible = "maxim,max8997-pmic";
+		reg = <0x66>;
+
+		interrupts-extended = <&gpx0 7 0>, <&gpx2 3 2>;
+		interrupt-parent = <&gpx0>;
+		interrupts = <7 IRQ_TYPE_NONE>;
+
+		otg_en-gpios = <&gpx3 3 0>;
+		usb_sel-gpios = <&gpl0 6 0>;
+
+		max8997,pmic-buck1-uses-gpio-dvs;
+		max8997,pmic-buck2-uses-gpio-dvs;
+		max8997,pmic-buck5-uses-gpio-dvs;
+
+		max8997,pmic-ignore-gpiodvs-side-effect;
+		max8997,pmic-buck125-default-dvs-idx = <0>;
+
+		max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
+						 <&gpx0 6 GPIO_ACTIVE_HIGH>,
+						 <&gpl0 0 GPIO_ACTIVE_HIGH>;
+
+		max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
+						 <1250000>, <1200000>,
+						 <1150000>, <1100000>,
+						 <1000000>, <950000>;
+
+		max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
+						 <950000>,  <900000>,
+						 <1100000>, <1000000>,
+						 <950000>,  <900000>;
+
+		max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
+						 <1200000>, <1200000>,
+						 <1200000>, <1200000>,
+						 <1200000>, <1200000>;
+
+		pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
+		pinctrl-names = "default";
+
+		regulators {
+			vadc_reg: LDO1 {
+				regulator-name = "VADC_3.3V_C210";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+				regulator-always-on;
+
+			};
+			valive_reg: LDO2 {
+				regulator-name = "VALIVE_1.1V_C210";
+				regulator-min-microvolt = <1100000>;
+				regulator-max-microvolt = <1100000>;
+				regulator-always-on;
+
+			};
+
+			vusb_reg: LDO3 {
+				regulator-name = "VUSB_1.1V_C210";
+				regulator-min-microvolt = <1100000>;
+				regulator-max-microvolt = <1100000>;
+			};
+
+			vmipi_reg: LDO4 {
+				regulator-name = "VMIPI_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+			};
+
+			vhsic_reg: LDO5 {
+				regulator-name = "VHSIC_1.2V";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1200000>;
+				regulator-always-on;
+			};
+
+			vpda_reg: LDO6 {
+				regulator-name = "VCC_1.8V_PDA";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+			};
+
+			vcam_reg: LDO7 {
+				regulator-name = "CAM_ISP_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
+
+			vusbdac_reg: LDO8 {
+				regulator-name = "VUSB+VDAC_3.3V_C210";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+			};
+
+			vccpda_reg: LDO9 {
+				regulator-name = "VCC_2.8V_PDA";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-always-on;
+			};
+
+			vtouch_reg: LDO11 {
+				regulator-name = "TOUCH_2.8V";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-always-on;
+			};
+
+			vpll_reg: LDO10 {
+				regulator-name = "VPLL_1.1V";
+				regulator-min-microvolt = <1100000>;
+				regulator-max-microvolt = <1100000>;
+				regulator-always-on;
+			};
+
+			vtcam_reg: LDO12 {
+				regulator-name = "VT_CAM_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
+
+			vcclcd_reg: LDO13 {
+				regulator-name = "VCC_3.0V_LCD";
+				regulator-min-microvolt = <3000000>;
+				regulator-max-microvolt = <3000000>;
+			};
+
+			vmotor_reg: LDO14 {
+				regulator-name = "VCC_2.8V_MOTOR";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+			};
+
+			vled_reg: LDO15 {
+				regulator-name = "LED_A_2.8V";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+			};
+
+			camsensor_reg: LDO16 {
+				regulator-name = "CAM_SENSOR_IO_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
+
+			vtf_reg: LDO17 {
+				regulator-name = "VTF_2.8V";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+			};
+
+			vtouchled_reg: LDO18 {
+				regulator-name = "TOUCH_LED_3.3V";
+				regulator-min-microvolt = <2500000>;
+				regulator-max-microvolt = <3300000>;
+			};
+
+			vddq_reg: LDO21 {
+				regulator-name = "VDDQ_M1M2_1.2V";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1200000>;
+				regulator-always-on;
+			};
+
+			varm_breg: BUCK1 {
+				//regulator-name = "VARM_1.2V_C210";
+				regulator-name = "vdd_arm";
+				regulator-min-microvolt = <65000>;
+				regulator-max-microvolt = <2225000>;
+				regulator-always-on;
+			};
+
+			vint_breg: BUCK2 {
+				regulator-name = "VINT_1.1V_C210";
+				regulator-min-microvolt = <65000>;
+				regulator-max-microvolt = <2225000>;
+				regulator-always-on;
+			};
+
+			vg3d_breg: BUCK3 {
+				regulator-name = "G3D_1.1V";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1200000>;
+				regulator-always-on;
+			};
+
+			camisp_breg: BUCK4 {
+				regulator-name = "CAM_ISP_CORE_1.2V";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1200000>;
+			};
+
+			vmem_breg: BUCK5 {
+				regulator-name = "VMEM_1.2V";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1200000>;
+				regulator-always-on;
+			};
+
+			vccsub_breg: BUCK7 {
+				regulator-name = "VCC_SUB_2.0V";
+				regulator-min-microvolt = <2000000>;
+				regulator-max-microvolt = <2000000>;
+				regulator-always-on;
+			};
+
+			safe1_sreg: ESAFEOUT1 {
+				regulator-name = "SAFEOUT1";
+			};
+
+			safe2_sreg: ESAFEOUT2 {
+				regulator-name = "SAFEOUT2";
+				regulator-boot-on;
+			};
+
+			charger_reg: CHARGER {
+				regulator-name = "CHARGER";
+				regulator-min-microamp = <60000>;
+				regulator-max-microamp = <2580000>;
+				regulator-always-on;
+			};
+
+			chargercv_reg: CHARGER_CV {
+				regulator-name = "CHARGER_CV";
+				regulator-min-microvolt = <3800000>;
+				regulator-max-microvolt = <4100000>;
+				regulator-always-on;
+			};
+
+		};
+
+	};
+};
+
+
+&gpu {
+	status = "okay";
+
+	mali-supply = <&vg3d_breg>;
+	regulator-microvolt-offset = <50000>;
+	regulator-microsecs-delay = <50>;
+};
+
+
+&sdhci_0 {
+	status = "okay";
+
+	bus-width = <8>;
+	non-removable;
+	vmmc-supply = <&vemmc_reg>;
+
+	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_bus8>;
+	pinctrl-names = "default";
+};
+
+&sdhci_2 {
+	status = "okay";
+
+	bus-width = <4>;
+	cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
+	vmmc-supply = <&vtf_reg>;
+
+	pinctrl-0 = <&sd2_clk>, <&sd2_cmd>, <&sd2_bus4>;
+	pinctrl-names = "default";
+};
+
+&ehci {
+	port@0 {
+		status = "okay";
+	};
+
+	port@1 {
+		status = "okay";
+	};
+
+	port@2 {
+		status = "okay";
+	};
+
+};
+
+
+&sdhci_3 {
+	status = "okay";
+
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	non-removable;
+	bus-width = <4>;
+	mmc-pwrseq = <&wlan_pwrseq>;
+	vmmc-supply = <&vtf_reg>;
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&sd3_clk>, <&sd3_cmd>, <&sd3_bus4>;
+
+	brcmf: wifi@1 {
+		compatible = "brcm,bcm4330-fmac";
+		reg = <1>;
+
+		interrupt-parent = <&gpx2>;
+		interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "host-wake";
+	};
+};
+
+
+&serial_0 {
+	status = "okay";
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&bt_en>, <&bt_res>, <&uart0_data>, <&uart0_fctl>;
+
+	bluetooth {
+		compatible = "brcm,bcm4330-bt";
+
+		shutdown-gpios = <&gpl0 4 GPIO_ACTIVE_HIGH>;
+		reset-gpios = <&gpl1 0 GPIO_ACTIVE_HIGH>;
+		device-wakeup-gpios = <&gpx3 1 GPIO_ACTIVE_HIGH>;
+		host-wakeup-gpios = <&gpx2 6 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+&serial_1 {
+	status = "okay";
+};
+
+&serial_2 {
+	status = "okay";
+};
+
+&serial_3 {
+	status = "okay";
+};
+
+&tmu {
+	status = "okay";
+};
+
+
+&pinctrl_0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&sleep0>;
+
+
+	sleep0: sleep-states {
+		gpa0-0 {
+			samsung,pins = "gpa0-0";
+			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
+			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
+		};
+
+		gpa0-1 {
+			samsung,pins = "gpa0-1";
+			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT0>;
+			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
+		};
+
+		gpa0-2 {
+			samsung,pins = "gpa0-2";
+			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
+			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
+		};
+
+		gpa0-3 {
+			samsung,pins = "gpa0-3";
+			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT1>;
+			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
+		};
+	};
+};
+
+&pinctrl_1 {
+	mhl_int: mhl-int {
+		samsung,pins = "gpf3-5";
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+	};
+
+	i2c_mhl_bus: i2c-mhl-bus {
+		samsung,pins = "gpf0-4", "gpf0-6";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
+	};
+
+	usb_sel: usb-sel {
+		samsung,pins = "gpl0-6";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
+		samsung,pin-val = <0>;
+	};
+
+	bt_en: bt-en {
+		samsung,pins = "gpl0-4";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
+		samsung,pin-val = <0>;
+	};
+
+	bt_res: bt-res {
+		samsung,pins = "gpl1-0";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
+		samsung,pin-val = <0>;
+	};
+
+
+	otg_gp: otg-gp {
+		samsung,pins = "gpx3-3";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
+		samsung,pin-val = <0>;
+	};
+
+	mag_mhl_gpio: mag-mhl-gpio {
+		samsung,pins = "gpd0-2";
+		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+	};
+
+
+	max8997_irq: max8997-irq {
+		samsung,pins = "gpx0-7";
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+	};
+
+	max17042_fuel_irq: max17042-fuel-irq {
+		samsung,pins = "gpx2-3";
+		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+	};
+
+	tsp224_irq: tsp224-irq {
+		samsung,pins = "gpx0-4";
+		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+	};
+};
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
  2020-03-12 15:34   ` Paul Cercueil
@ 2020-03-13  8:03     ` Marek Szyprowski
  -1 siblings, 0 replies; 35+ messages in thread
From: Marek Szyprowski @ 2020-03-13  8:03 UTC (permalink / raw)
  To: Paul Cercueil, Kukjin Kim, Krzysztof Kozlowski, Rob Herring,
	Mark Rutland
  Cc: Stenkin Evgeniy, linux-arm-kernel, linux-samsung-soc, devicetree,
	linux-kernel


On 12.03.2020 16:34, Paul Cercueil wrote:
> From: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>
> Add devicetree file for the Exynos 4210 based Galaxy S2 (i9100 version).
>
> Signed-off-by: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>   arch/arm/boot/dts/Makefile             |   1 +
>   arch/arm/boot/dts/exynos4210-i9100.dts | 816 +++++++++++++++++++++++++
>   2 files changed, 817 insertions(+)
>   create mode 100644 arch/arm/boot/dts/exynos4210-i9100.dts
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index d6546d2676b9..522436d30690 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -181,6 +181,7 @@ dtb-$(CONFIG_ARCH_EXYNOS3) += \
>   	exynos3250-monk.dtb \
>   	exynos3250-rinato.dtb
>   dtb-$(CONFIG_ARCH_EXYNOS4) += \
> +	exynos4210-i9100.dtb \
>   	exynos4210-origen.dtb \
>   	exynos4210-smdkv310.dtb \
>   	exynos4210-trats.dtb \
> diff --git a/arch/arm/boot/dts/exynos4210-i9100.dts b/arch/arm/boot/dts/exynos4210-i9100.dts
> new file mode 100644
> index 000000000000..c218e34959be
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos4210-i9100.dts
> @@ -0,0 +1,816 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Samsung's Exynos4210 based Galaxy S2 (i9100 version) device tree
> + *
> + * Copyright (c) 2012 Samsung Electronics Co., Ltd.
> + *		http://www.samsung.com
> + * Copyright (c) 2020 Stenkin Evgeniy <stenkinevgeniy@gmail.com>
> + * Copyright (c) 2020 Paul Cercueil <paul@crapouillou.net>
> + *
> + * Device tree source file for Samsung's Galaxy S2 smartphone (i9100 version),
> + * which is based on Samsung's Exynos4210 SoC.
> + */
> +
> +/dts-v1/;
> +#include "exynos4210.dtsi"
> +#include "exynos4412-ppmu-common.dtsi"
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/linux-event-codes.h>
> +
> +/ {
> +	model = "Samsung Galaxy S2 (i9100)";
> +	compatible = "samsung,i9100", "samsung,exynos4210", "samsung,exynos4";
> +
> +
> +	memory@40000000 {
> +		device_type = "memory";
> +		reg = <0x40000000 0x40000000>;
> +	};
> +
> +	vemmc_reg: regulator-0 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "VMEM_VDD_2.8V";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	tsp_reg: regulator-1 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "TSP_FIXED_VOLTAGES";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
> +		startup-delay-us = <70000>;
> +		enable-active-high;
> +		regulator-boot-on;
> +		regulator-always-on;
> +	};
> +
> +	cam_af_28v_reg: regulator-3 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "8M_AF_2.8V_EN";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		gpio = <&gpk1 1 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	cam_io_en_reg: regulator-4 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "CAM_IO_EN";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		gpio = <&gpe2 1 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	cam_io_12v_reg: regulator-5 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "8M_1.2V_EN";
> +		regulator-min-microvolt = <1200000>;
> +		regulator-max-microvolt = <1200000>;
> +		gpio = <&gpe2 5 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	vt_core_15v_reg: regulator-6 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "VT_CORE_1.5V";
> +		regulator-min-microvolt = <1500000>;
> +		regulator-max-microvolt = <1500000>;
> +		gpio = <&gpe2 2 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	gpio-keys {
> +		compatible = "gpio-keys";
> +
> +		vol-down {
> +			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_VOLUMEDOWN>;
> +			label = "volume down";
> +			debounce-interval = <10>;
> +		};
> +
> +		vol-up {
> +			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_VOLUMEUP>;
> +			label = "volume up";
> +			debounce-interval = <10>;
> +		};
> +
> +		power {
> +			gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_POWER>;
> +			label = "power";
> +			debounce-interval = <10>;
> +			wakeup-source;
> +		};
> +
> +		ok {
> +			gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_OK>;
> +			label = "ok";
> +			debounce-interval = <10>;
> +		};
> +	};
> +
> +	wlan_pwrseq: sdhci3-pwrseq {
> +		compatible = "mmc-pwrseq-simple";
> +		reset-gpios = <&gpl1 2 GPIO_ACTIVE_LOW>;
> +	};
> +
> +	i2c_max17042_fuel: i2c-gpio-3 {
> +		compatible = "i2c-gpio";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		sda-gpios = <&gpy4 0 GPIO_ACTIVE_HIGH>;
> +		scl-gpios = <&gpy4 1 GPIO_ACTIVE_HIGH>;
> +		i2c-gpio,delay-us = <5>;
> +
> +		battery@36 {
> +			compatible = "maxim,max17042";
> +
> +			interrupt-parent = <&gpx2>;
> +			interrupts = <3 2>;
> +
> +			pinctrl-0 = <&max17042_fuel_irq>;
> +			pinctrl-names = "default";
> +
> +			reg = <0x36>;
> +			maxim,over-heat-temp = <700>;
> +			maxim,over-volt = <4500>;
> +
> +		};
> +	};
> +
> +	spi-lcd {
> +		compatible = "spi-gpio";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		num-chipselects = <1>;
> +		cs-gpios = <&gpy4 3 GPIO_ACTIVE_HIGH>;
LD9040 CS is active low, so this board needs probably the same fix a 
Universal C210 board: https://patchwork.kernel.org/patch/11420231/ Are 
you sure it really works now with v5.6-rcX kernels? Or you just got the 
panel working only because the bootloader enabled it?
> +		sck-gpios = <&gpy3 1 GPIO_ACTIVE_HIGH>;
> +		mosi-gpios = <&gpy3 3 GPIO_ACTIVE_HIGH>;
> +
> +		lcd@0 {
> +			compatible = "samsung,ld9040";
> +			reg = <0>;
> +
> +			spi-max-frequency = <1200000>;
> +			spi-cpol;
> +			spi-cpha;
> +
> +			vdd3-supply = <&vmipi_reg>;
> +			vci-supply = <&vcclcd_reg>;
> +
> +			reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
> +			power-on-delay = <10>;
> +			reset-delay = <10>;
> +
> +			panel-width-mm = <90>;
> +			panel-height-mm = <154>;
> +
> +			display-timings {
> +				timing {
> +					clock-frequency = <23492370>;
> +					hactive = <480>;
> +					vactive = <800>;
> +					hback-porch = <16>;
> +					hfront-porch = <16>;
> +					vback-porch = <2>;
> +					vfront-porch = <28>;
> +					hsync-len = <2>;
> +					vsync-len = <1>;
> +					hsync-active = <0>;
> +					vsync-active = <0>;
> +					de-active = <0>;
> +					pixelclk-active = <0>;
> +				};
> +			};
> +
> +			port {
> +				lcd_ep: endpoint {
> +					remote-endpoint = <&fimd_dpi_ep>;
> +				};
> +			};
> +		};
> +	};
> +
> +	fixed-rate-clocks {
> +		xxti {
> +			compatible = "samsung,clock-xxti";
> +			clock-frequency = <0>;
> +		};
> +
> +		xusbxti {
> +			compatible = "samsung,clock-xusbxti";
> +			clock-frequency = <24000000>;
> +		};
> +	};
> +
> +	thermal-zones {
> +		cpu_thermal: cpu-thermal {
> +			cooling-maps {
> +				map0 {
> +					/* Corresponds to 800MHz */
> +					cooling-device = <&cpu0 2 2>;
> +				};
> +				map1 {
> +					/* Corresponds to 200MHz */
> +					cooling-device = <&cpu0 4 4>;
> +				};
> +			};
> +		};
> +	};
> +
> +};
> +
> +&camera {
> +	status = "okay";
> +};
> +
> +&cpu0 {
> +	cpu0-supply = <&varm_breg>;
> +};
> +
> +&exynos_usbphy {
> +	status = "okay";
> +
> +	vbus-supply = <&safe1_sreg>;
> +};
> +
> +&fimc_0 {
> +	status = "okay";
> +
> +	assigned-clocks = <&clock CLK_MOUT_FIMC0>, <&clock CLK_SCLK_FIMC0>;
> +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
> +	assigned-clock-rates = <0>, <160000000>;
> +};
> +
> +&fimc_1 {
> +	status = "okay";
> +
> +	assigned-clocks = <&clock CLK_MOUT_FIMC1>, <&clock CLK_SCLK_FIMC1>;
> +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
> +	assigned-clock-rates = <0>, <160000000>;
> +};
> +
> +&fimc_2 {
> +	status = "okay";
> +
> +	assigned-clocks = <&clock CLK_MOUT_FIMC2>, <&clock CLK_SCLK_FIMC2>;
> +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
> +	assigned-clock-rates = <0>, <160000000>;
> +};
> +
> +&fimc_3 {
> +	status = "okay";
> +
> +	assigned-clocks = <&clock CLK_MOUT_FIMC3>, <&clock CLK_SCLK_FIMC3>;
> +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
> +	assigned-clock-rates = <0>, <160000000>;
> +};
> +
> +&fimd {
> +	status = "okay";
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +
> +	samsung,invert-vden;
> +	samsung,invert-vclk;
> +
> +	pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
> +	pinctrl-names = "default";
> +
> +	port@3 {
> +		reg = <3>;
> +
> +		fimd_dpi_ep: endpoint {
> +			remote-endpoint = <&lcd_ep>;
> +		};
> +	};
> +};
> +
> +&hsotg {
> +	status = "okay";
> +
> +	dr_mode = "otg";
The the host mode really works with DWC2? Afair the host mode worked 
only when it was rerouted by PHY to the EHCI (at least on UniversalC210 
board, which is very similar to GS2).
> +	vusb_d-supply = <&vusb_reg>;
> +	vusb_a-supply = <&vusbdac_reg>;
> +};
> +
> +&ehci {
> +	status = "okay";
> +
> +	port@0 {
> +		status = "okay";
> +	};
> +
> +	port@1 {
> +		status = "okay";
> +	};
> +
> +	port@2 {
> +		status = "okay";
> +	};
> +};

This is the old, obsolete exynos-ehci binding. Please remove 'port' 
nodes and use standard USB phy bindings like it has been done in the 
following patch: https://patchwork.kernel.org/patch/11060465/

BTW, do you really need all 3 phys/ports?

> +
> +
> +&i2c_3 {
> +	status = "okay";
> +
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-slave-addr = <0x10>;
> +	samsung,i2c-max-bus-freq = <100000>;
> +
> +	pinctrl-0 = <&i2c3_bus>;
> +	pinctrl-names = "default";
> +
> +	mxt224-touchscreen@4a {
> +		compatible = "atmel,maxtouch";
> +		reg = <0x4a>;
> +
> +		interrupt-parent = <&gpx0>;
> +		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
> +
> +		avdd-supply = <&tsp_reg>;
> +		vdd-supply = <&tsp_reg>;
> +	};
> +};
> +
> +&i2c_7 {
> +	status = "okay";
> +
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-slave-addr = <0x10>;
> +	samsung,i2c-max-bus-freq = <400000>;
> +
> +	pinctrl-0 = <&i2c7_bus>;
> +	pinctrl-names = "default";
> +
> +	ak8975@c {
> +		compatible = "asahi-kasei,ak8975";
> +		reg = <0x0c>;
> +
> +		gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
> +	};
> +};
> +
> +
> +&i2c_5 {
> +	status = "okay";
> +
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-slave-addr = <0x10>;
> +	samsung,i2c-max-bus-freq = <100000>;
> +
> +	pinctrl-0 = <&i2c5_bus>;
> +	pinctrl-names = "default";
> +
> +	max8997_pmic@66 {
> +		compatible = "maxim,max8997-pmic";
> +		reg = <0x66>;
> +
> +		interrupts-extended = <&gpx0 7 0>, <&gpx2 3 2>;
> +		interrupt-parent = <&gpx0>;
> +		interrupts = <7 IRQ_TYPE_NONE>;
> +
> +		otg_en-gpios = <&gpx3 3 0>;
> +		usb_sel-gpios = <&gpl0 6 0>;
> +
> +		max8997,pmic-buck1-uses-gpio-dvs;
> +		max8997,pmic-buck2-uses-gpio-dvs;
> +		max8997,pmic-buck5-uses-gpio-dvs;
> +
> +		max8997,pmic-ignore-gpiodvs-side-effect;
> +		max8997,pmic-buck125-default-dvs-idx = <0>;
> +
> +		max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
> +						 <&gpx0 6 GPIO_ACTIVE_HIGH>,
> +						 <&gpl0 0 GPIO_ACTIVE_HIGH>;
> +
> +		max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
> +						 <1250000>, <1200000>,
> +						 <1150000>, <1100000>,
> +						 <1000000>, <950000>;
> +
> +		max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
> +						 <950000>,  <900000>,
> +						 <1100000>, <1000000>,
> +						 <950000>,  <900000>;
> +
> +		max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
> +						 <1200000>, <1200000>,
> +						 <1200000>, <1200000>,
> +						 <1200000>, <1200000>;
> +
> +		pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
> +		pinctrl-names = "default";
> +
> +		regulators {
> +			vadc_reg: LDO1 {
> +				regulator-name = "VADC_3.3V_C210";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +
> +			};
> +			valive_reg: LDO2 {
> +				regulator-name = "VALIVE_1.1V_C210";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +				regulator-always-on;
> +
> +			};
> +
> +			vusb_reg: LDO3 {
> +				regulator-name = "VUSB_1.1V_C210";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +			};
> +
> +			vmipi_reg: LDO4 {
> +				regulator-name = "VMIPI_1.8V";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			vhsic_reg: LDO5 {
> +				regulator-name = "VHSIC_1.2V";
> +				regulator-min-microvolt = <1200000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +			};
> +
> +			vpda_reg: LDO6 {
> +				regulator-name = "VCC_1.8V_PDA";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			vcam_reg: LDO7 {
> +				regulator-name = "CAM_ISP_1.8V";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +			};
> +
> +			vusbdac_reg: LDO8 {
> +				regulator-name = "VUSB+VDAC_3.3V_C210";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +			};
> +
> +			vccpda_reg: LDO9 {
> +				regulator-name = "VCC_2.8V_PDA";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +				regulator-always-on;
> +			};
> +
> +			vtouch_reg: LDO11 {
> +				regulator-name = "TOUCH_2.8V";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +				regulator-always-on;
> +			};
> +
> +			vpll_reg: LDO10 {
> +				regulator-name = "VPLL_1.1V";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +				regulator-always-on;
> +			};
> +
> +			vtcam_reg: LDO12 {
> +				regulator-name = "VT_CAM_1.8V";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +			};
> +
> +			vcclcd_reg: LDO13 {
> +				regulator-name = "VCC_3.0V_LCD";
> +				regulator-min-microvolt = <3000000>;
> +				regulator-max-microvolt = <3000000>;
> +			};
> +
> +			vmotor_reg: LDO14 {
> +				regulator-name = "VCC_2.8V_MOTOR";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +			};
> +
> +			vled_reg: LDO15 {
> +				regulator-name = "LED_A_2.8V";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +			};
> +
> +			camsensor_reg: LDO16 {
> +				regulator-name = "CAM_SENSOR_IO_1.8V";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +			};
> +
> +			vtf_reg: LDO17 {
> +				regulator-name = "VTF_2.8V";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +			};
> +
> +			vtouchled_reg: LDO18 {
> +				regulator-name = "TOUCH_LED_3.3V";
> +				regulator-min-microvolt = <2500000>;
> +				regulator-max-microvolt = <3300000>;
> +			};
> +
> +			vddq_reg: LDO21 {
> +				regulator-name = "VDDQ_M1M2_1.2V";
> +				regulator-min-microvolt = <1200000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +			};
> +
> +			varm_breg: BUCK1 {
> +				//regulator-name = "VARM_1.2V_C210";
> +				regulator-name = "vdd_arm";
> +				regulator-min-microvolt = <65000>;
> +				regulator-max-microvolt = <2225000>;
> +				regulator-always-on;
> +			};
> +
> +			vint_breg: BUCK2 {
> +				regulator-name = "VINT_1.1V_C210";
> +				regulator-min-microvolt = <65000>;
> +				regulator-max-microvolt = <2225000>;
> +				regulator-always-on;
> +			};
> +
> +			vg3d_breg: BUCK3 {
> +				regulator-name = "G3D_1.1V";
> +				regulator-min-microvolt = <900000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +			};
> +
> +			camisp_breg: BUCK4 {
> +				regulator-name = "CAM_ISP_CORE_1.2V";
> +				regulator-min-microvolt = <1200000>;
> +				regulator-max-microvolt = <1200000>;
> +			};
> +
> +			vmem_breg: BUCK5 {
> +				regulator-name = "VMEM_1.2V";
> +				regulator-min-microvolt = <1200000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +			};
> +
> +			vccsub_breg: BUCK7 {
> +				regulator-name = "VCC_SUB_2.0V";
> +				regulator-min-microvolt = <2000000>;
> +				regulator-max-microvolt = <2000000>;
> +				regulator-always-on;
> +			};
> +
> +			safe1_sreg: ESAFEOUT1 {
> +				regulator-name = "SAFEOUT1";
> +			};
> +
> +			safe2_sreg: ESAFEOUT2 {
> +				regulator-name = "SAFEOUT2";
> +				regulator-boot-on;
> +			};
> +
> +			charger_reg: CHARGER {
> +				regulator-name = "CHARGER";
> +				regulator-min-microamp = <60000>;
> +				regulator-max-microamp = <2580000>;
> +				regulator-always-on;
> +			};
> +
> +			chargercv_reg: CHARGER_CV {
> +				regulator-name = "CHARGER_CV";
> +				regulator-min-microvolt = <3800000>;
> +				regulator-max-microvolt = <4100000>;
> +				regulator-always-on;
> +			};
> +
> +		};
> +
> +	};
> +};
> +
> +
> +&gpu {
> +	status = "okay";
> +
> +	mali-supply = <&vg3d_breg>;
> +	regulator-microvolt-offset = <50000>;
> +	regulator-microsecs-delay = <50>;
> +};
> +
> +
> +&sdhci_0 {
> +	status = "okay";
> +
> +	bus-width = <8>;
> +	non-removable;
> +	vmmc-supply = <&vemmc_reg>;
> +
> +	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_bus8>;
> +	pinctrl-names = "default";
> +};
> +
> +&sdhci_2 {
> +	status = "okay";
> +
> +	bus-width = <4>;
> +	cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
> +	vmmc-supply = <&vtf_reg>;
> +
> +	pinctrl-0 = <&sd2_clk>, <&sd2_cmd>, <&sd2_bus4>;
> +	pinctrl-names = "default";
> +};
> +
> +&ehci {
> +	port@0 {
> +		status = "okay";
> +	};
> +
> +	port@1 {
> +		status = "okay";
> +	};
> +
> +	port@2 {
> +		status = "okay";
> +	};
> +
> +};

This is duplicated 'ehci' node, probable an artifact from the earlier 
rebase. Please remove it.

> +
> +
> +&sdhci_3 {
> +	status = "okay";
> +
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +
> +	non-removable;
> +	bus-width = <4>;
> +	mmc-pwrseq = <&wlan_pwrseq>;
> +	vmmc-supply = <&vtf_reg>;
> +
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&sd3_clk>, <&sd3_cmd>, <&sd3_bus4>;
> +
> +	brcmf: wifi@1 {
> +		compatible = "brcm,bcm4330-fmac";
> +		reg = <1>;
> +
> +		interrupt-parent = <&gpx2>;
> +		interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
> +		interrupt-names = "host-wake";
> +	};
> +};
> +
> +
> +&serial_0 {
> +	status = "okay";
> +
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&bt_en>, <&bt_res>, <&uart0_data>, <&uart0_fctl>;
> +
> +	bluetooth {
> +		compatible = "brcm,bcm4330-bt";
> +
> +		shutdown-gpios = <&gpl0 4 GPIO_ACTIVE_HIGH>;
> +		reset-gpios = <&gpl1 0 GPIO_ACTIVE_HIGH>;
> +		device-wakeup-gpios = <&gpx3 1 GPIO_ACTIVE_HIGH>;
> +		host-wakeup-gpios = <&gpx2 6 GPIO_ACTIVE_HIGH>;
> +	};
> +};
> +
> +&serial_1 {
> +	status = "okay";
> +};
> +
> +&serial_2 {
> +	status = "okay";
> +};
> +
> +&serial_3 {
> +	status = "okay";
> +};
> +
> +&tmu {
> +	status = "okay";
> +};
> +
> +
> +&pinctrl_0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&sleep0>;
> +
> +
> +	sleep0: sleep-states {
> +		gpa0-0 {
> +			samsung,pins = "gpa0-0";
> +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
> +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
> +		};
> +
> +		gpa0-1 {
> +			samsung,pins = "gpa0-1";
> +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT0>;
> +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
> +		};
> +
> +		gpa0-2 {
> +			samsung,pins = "gpa0-2";
> +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
> +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
> +		};
> +
> +		gpa0-3 {
> +			samsung,pins = "gpa0-3";
> +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT1>;
> +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
> +		};
> +	};
> +};
> +
> +&pinctrl_1 {
> +	mhl_int: mhl-int {
> +		samsung,pins = "gpf3-5";
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +	};
> +
> +	i2c_mhl_bus: i2c-mhl-bus {
> +		samsung,pins = "gpf0-4", "gpf0-6";
> +		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
> +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
> +	};
> +
> +	usb_sel: usb-sel {
> +		samsung,pins = "gpl0-6";
> +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
> +		samsung,pin-val = <0>;
> +	};
> +
> +	bt_en: bt-en {
> +		samsung,pins = "gpl0-4";
> +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
> +		samsung,pin-val = <0>;
> +	};
> +
> +	bt_res: bt-res {
> +		samsung,pins = "gpl1-0";
> +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
> +		samsung,pin-val = <0>;
> +	};
> +
> +
> +	otg_gp: otg-gp {
> +		samsung,pins = "gpx3-3";
> +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
> +		samsung,pin-val = <0>;
> +	};
> +
> +	mag_mhl_gpio: mag-mhl-gpio {
> +		samsung,pins = "gpd0-2";
> +		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +	};
> +
> +
> +	max8997_irq: max8997-irq {
> +		samsung,pins = "gpx0-7";
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +	};
> +
> +	max17042_fuel_irq: max17042-fuel-irq {
> +		samsung,pins = "gpx2-3";
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +	};
> +
> +	tsp224_irq: tsp224-irq {
> +		samsung,pins = "gpx0-4";
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
> +	};
> +};

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
@ 2020-03-13  8:03     ` Marek Szyprowski
  0 siblings, 0 replies; 35+ messages in thread
From: Marek Szyprowski @ 2020-03-13  8:03 UTC (permalink / raw)
  To: Paul Cercueil, Kukjin Kim, Krzysztof Kozlowski, Rob Herring,
	Mark Rutland
  Cc: devicetree, Stenkin Evgeniy, linux-samsung-soc, linux-kernel,
	linux-arm-kernel


On 12.03.2020 16:34, Paul Cercueil wrote:
> From: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>
> Add devicetree file for the Exynos 4210 based Galaxy S2 (i9100 version).
>
> Signed-off-by: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>   arch/arm/boot/dts/Makefile             |   1 +
>   arch/arm/boot/dts/exynos4210-i9100.dts | 816 +++++++++++++++++++++++++
>   2 files changed, 817 insertions(+)
>   create mode 100644 arch/arm/boot/dts/exynos4210-i9100.dts
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index d6546d2676b9..522436d30690 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -181,6 +181,7 @@ dtb-$(CONFIG_ARCH_EXYNOS3) += \
>   	exynos3250-monk.dtb \
>   	exynos3250-rinato.dtb
>   dtb-$(CONFIG_ARCH_EXYNOS4) += \
> +	exynos4210-i9100.dtb \
>   	exynos4210-origen.dtb \
>   	exynos4210-smdkv310.dtb \
>   	exynos4210-trats.dtb \
> diff --git a/arch/arm/boot/dts/exynos4210-i9100.dts b/arch/arm/boot/dts/exynos4210-i9100.dts
> new file mode 100644
> index 000000000000..c218e34959be
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos4210-i9100.dts
> @@ -0,0 +1,816 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Samsung's Exynos4210 based Galaxy S2 (i9100 version) device tree
> + *
> + * Copyright (c) 2012 Samsung Electronics Co., Ltd.
> + *		http://www.samsung.com
> + * Copyright (c) 2020 Stenkin Evgeniy <stenkinevgeniy@gmail.com>
> + * Copyright (c) 2020 Paul Cercueil <paul@crapouillou.net>
> + *
> + * Device tree source file for Samsung's Galaxy S2 smartphone (i9100 version),
> + * which is based on Samsung's Exynos4210 SoC.
> + */
> +
> +/dts-v1/;
> +#include "exynos4210.dtsi"
> +#include "exynos4412-ppmu-common.dtsi"
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/linux-event-codes.h>
> +
> +/ {
> +	model = "Samsung Galaxy S2 (i9100)";
> +	compatible = "samsung,i9100", "samsung,exynos4210", "samsung,exynos4";
> +
> +
> +	memory@40000000 {
> +		device_type = "memory";
> +		reg = <0x40000000 0x40000000>;
> +	};
> +
> +	vemmc_reg: regulator-0 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "VMEM_VDD_2.8V";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	tsp_reg: regulator-1 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "TSP_FIXED_VOLTAGES";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
> +		startup-delay-us = <70000>;
> +		enable-active-high;
> +		regulator-boot-on;
> +		regulator-always-on;
> +	};
> +
> +	cam_af_28v_reg: regulator-3 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "8M_AF_2.8V_EN";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		gpio = <&gpk1 1 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	cam_io_en_reg: regulator-4 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "CAM_IO_EN";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		gpio = <&gpe2 1 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	cam_io_12v_reg: regulator-5 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "8M_1.2V_EN";
> +		regulator-min-microvolt = <1200000>;
> +		regulator-max-microvolt = <1200000>;
> +		gpio = <&gpe2 5 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	vt_core_15v_reg: regulator-6 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "VT_CORE_1.5V";
> +		regulator-min-microvolt = <1500000>;
> +		regulator-max-microvolt = <1500000>;
> +		gpio = <&gpe2 2 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	gpio-keys {
> +		compatible = "gpio-keys";
> +
> +		vol-down {
> +			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_VOLUMEDOWN>;
> +			label = "volume down";
> +			debounce-interval = <10>;
> +		};
> +
> +		vol-up {
> +			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_VOLUMEUP>;
> +			label = "volume up";
> +			debounce-interval = <10>;
> +		};
> +
> +		power {
> +			gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_POWER>;
> +			label = "power";
> +			debounce-interval = <10>;
> +			wakeup-source;
> +		};
> +
> +		ok {
> +			gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_OK>;
> +			label = "ok";
> +			debounce-interval = <10>;
> +		};
> +	};
> +
> +	wlan_pwrseq: sdhci3-pwrseq {
> +		compatible = "mmc-pwrseq-simple";
> +		reset-gpios = <&gpl1 2 GPIO_ACTIVE_LOW>;
> +	};
> +
> +	i2c_max17042_fuel: i2c-gpio-3 {
> +		compatible = "i2c-gpio";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		sda-gpios = <&gpy4 0 GPIO_ACTIVE_HIGH>;
> +		scl-gpios = <&gpy4 1 GPIO_ACTIVE_HIGH>;
> +		i2c-gpio,delay-us = <5>;
> +
> +		battery@36 {
> +			compatible = "maxim,max17042";
> +
> +			interrupt-parent = <&gpx2>;
> +			interrupts = <3 2>;
> +
> +			pinctrl-0 = <&max17042_fuel_irq>;
> +			pinctrl-names = "default";
> +
> +			reg = <0x36>;
> +			maxim,over-heat-temp = <700>;
> +			maxim,over-volt = <4500>;
> +
> +		};
> +	};
> +
> +	spi-lcd {
> +		compatible = "spi-gpio";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		num-chipselects = <1>;
> +		cs-gpios = <&gpy4 3 GPIO_ACTIVE_HIGH>;
LD9040 CS is active low, so this board needs probably the same fix a 
Universal C210 board: https://patchwork.kernel.org/patch/11420231/ Are 
you sure it really works now with v5.6-rcX kernels? Or you just got the 
panel working only because the bootloader enabled it?
> +		sck-gpios = <&gpy3 1 GPIO_ACTIVE_HIGH>;
> +		mosi-gpios = <&gpy3 3 GPIO_ACTIVE_HIGH>;
> +
> +		lcd@0 {
> +			compatible = "samsung,ld9040";
> +			reg = <0>;
> +
> +			spi-max-frequency = <1200000>;
> +			spi-cpol;
> +			spi-cpha;
> +
> +			vdd3-supply = <&vmipi_reg>;
> +			vci-supply = <&vcclcd_reg>;
> +
> +			reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
> +			power-on-delay = <10>;
> +			reset-delay = <10>;
> +
> +			panel-width-mm = <90>;
> +			panel-height-mm = <154>;
> +
> +			display-timings {
> +				timing {
> +					clock-frequency = <23492370>;
> +					hactive = <480>;
> +					vactive = <800>;
> +					hback-porch = <16>;
> +					hfront-porch = <16>;
> +					vback-porch = <2>;
> +					vfront-porch = <28>;
> +					hsync-len = <2>;
> +					vsync-len = <1>;
> +					hsync-active = <0>;
> +					vsync-active = <0>;
> +					de-active = <0>;
> +					pixelclk-active = <0>;
> +				};
> +			};
> +
> +			port {
> +				lcd_ep: endpoint {
> +					remote-endpoint = <&fimd_dpi_ep>;
> +				};
> +			};
> +		};
> +	};
> +
> +	fixed-rate-clocks {
> +		xxti {
> +			compatible = "samsung,clock-xxti";
> +			clock-frequency = <0>;
> +		};
> +
> +		xusbxti {
> +			compatible = "samsung,clock-xusbxti";
> +			clock-frequency = <24000000>;
> +		};
> +	};
> +
> +	thermal-zones {
> +		cpu_thermal: cpu-thermal {
> +			cooling-maps {
> +				map0 {
> +					/* Corresponds to 800MHz */
> +					cooling-device = <&cpu0 2 2>;
> +				};
> +				map1 {
> +					/* Corresponds to 200MHz */
> +					cooling-device = <&cpu0 4 4>;
> +				};
> +			};
> +		};
> +	};
> +
> +};
> +
> +&camera {
> +	status = "okay";
> +};
> +
> +&cpu0 {
> +	cpu0-supply = <&varm_breg>;
> +};
> +
> +&exynos_usbphy {
> +	status = "okay";
> +
> +	vbus-supply = <&safe1_sreg>;
> +};
> +
> +&fimc_0 {
> +	status = "okay";
> +
> +	assigned-clocks = <&clock CLK_MOUT_FIMC0>, <&clock CLK_SCLK_FIMC0>;
> +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
> +	assigned-clock-rates = <0>, <160000000>;
> +};
> +
> +&fimc_1 {
> +	status = "okay";
> +
> +	assigned-clocks = <&clock CLK_MOUT_FIMC1>, <&clock CLK_SCLK_FIMC1>;
> +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
> +	assigned-clock-rates = <0>, <160000000>;
> +};
> +
> +&fimc_2 {
> +	status = "okay";
> +
> +	assigned-clocks = <&clock CLK_MOUT_FIMC2>, <&clock CLK_SCLK_FIMC2>;
> +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
> +	assigned-clock-rates = <0>, <160000000>;
> +};
> +
> +&fimc_3 {
> +	status = "okay";
> +
> +	assigned-clocks = <&clock CLK_MOUT_FIMC3>, <&clock CLK_SCLK_FIMC3>;
> +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
> +	assigned-clock-rates = <0>, <160000000>;
> +};
> +
> +&fimd {
> +	status = "okay";
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +
> +	samsung,invert-vden;
> +	samsung,invert-vclk;
> +
> +	pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
> +	pinctrl-names = "default";
> +
> +	port@3 {
> +		reg = <3>;
> +
> +		fimd_dpi_ep: endpoint {
> +			remote-endpoint = <&lcd_ep>;
> +		};
> +	};
> +};
> +
> +&hsotg {
> +	status = "okay";
> +
> +	dr_mode = "otg";
The the host mode really works with DWC2? Afair the host mode worked 
only when it was rerouted by PHY to the EHCI (at least on UniversalC210 
board, which is very similar to GS2).
> +	vusb_d-supply = <&vusb_reg>;
> +	vusb_a-supply = <&vusbdac_reg>;
> +};
> +
> +&ehci {
> +	status = "okay";
> +
> +	port@0 {
> +		status = "okay";
> +	};
> +
> +	port@1 {
> +		status = "okay";
> +	};
> +
> +	port@2 {
> +		status = "okay";
> +	};
> +};

This is the old, obsolete exynos-ehci binding. Please remove 'port' 
nodes and use standard USB phy bindings like it has been done in the 
following patch: https://patchwork.kernel.org/patch/11060465/

BTW, do you really need all 3 phys/ports?

> +
> +
> +&i2c_3 {
> +	status = "okay";
> +
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-slave-addr = <0x10>;
> +	samsung,i2c-max-bus-freq = <100000>;
> +
> +	pinctrl-0 = <&i2c3_bus>;
> +	pinctrl-names = "default";
> +
> +	mxt224-touchscreen@4a {
> +		compatible = "atmel,maxtouch";
> +		reg = <0x4a>;
> +
> +		interrupt-parent = <&gpx0>;
> +		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
> +
> +		avdd-supply = <&tsp_reg>;
> +		vdd-supply = <&tsp_reg>;
> +	};
> +};
> +
> +&i2c_7 {
> +	status = "okay";
> +
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-slave-addr = <0x10>;
> +	samsung,i2c-max-bus-freq = <400000>;
> +
> +	pinctrl-0 = <&i2c7_bus>;
> +	pinctrl-names = "default";
> +
> +	ak8975@c {
> +		compatible = "asahi-kasei,ak8975";
> +		reg = <0x0c>;
> +
> +		gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
> +	};
> +};
> +
> +
> +&i2c_5 {
> +	status = "okay";
> +
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-slave-addr = <0x10>;
> +	samsung,i2c-max-bus-freq = <100000>;
> +
> +	pinctrl-0 = <&i2c5_bus>;
> +	pinctrl-names = "default";
> +
> +	max8997_pmic@66 {
> +		compatible = "maxim,max8997-pmic";
> +		reg = <0x66>;
> +
> +		interrupts-extended = <&gpx0 7 0>, <&gpx2 3 2>;
> +		interrupt-parent = <&gpx0>;
> +		interrupts = <7 IRQ_TYPE_NONE>;
> +
> +		otg_en-gpios = <&gpx3 3 0>;
> +		usb_sel-gpios = <&gpl0 6 0>;
> +
> +		max8997,pmic-buck1-uses-gpio-dvs;
> +		max8997,pmic-buck2-uses-gpio-dvs;
> +		max8997,pmic-buck5-uses-gpio-dvs;
> +
> +		max8997,pmic-ignore-gpiodvs-side-effect;
> +		max8997,pmic-buck125-default-dvs-idx = <0>;
> +
> +		max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
> +						 <&gpx0 6 GPIO_ACTIVE_HIGH>,
> +						 <&gpl0 0 GPIO_ACTIVE_HIGH>;
> +
> +		max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
> +						 <1250000>, <1200000>,
> +						 <1150000>, <1100000>,
> +						 <1000000>, <950000>;
> +
> +		max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
> +						 <950000>,  <900000>,
> +						 <1100000>, <1000000>,
> +						 <950000>,  <900000>;
> +
> +		max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
> +						 <1200000>, <1200000>,
> +						 <1200000>, <1200000>,
> +						 <1200000>, <1200000>;
> +
> +		pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
> +		pinctrl-names = "default";
> +
> +		regulators {
> +			vadc_reg: LDO1 {
> +				regulator-name = "VADC_3.3V_C210";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +
> +			};
> +			valive_reg: LDO2 {
> +				regulator-name = "VALIVE_1.1V_C210";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +				regulator-always-on;
> +
> +			};
> +
> +			vusb_reg: LDO3 {
> +				regulator-name = "VUSB_1.1V_C210";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +			};
> +
> +			vmipi_reg: LDO4 {
> +				regulator-name = "VMIPI_1.8V";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			vhsic_reg: LDO5 {
> +				regulator-name = "VHSIC_1.2V";
> +				regulator-min-microvolt = <1200000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +			};
> +
> +			vpda_reg: LDO6 {
> +				regulator-name = "VCC_1.8V_PDA";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			vcam_reg: LDO7 {
> +				regulator-name = "CAM_ISP_1.8V";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +			};
> +
> +			vusbdac_reg: LDO8 {
> +				regulator-name = "VUSB+VDAC_3.3V_C210";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +			};
> +
> +			vccpda_reg: LDO9 {
> +				regulator-name = "VCC_2.8V_PDA";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +				regulator-always-on;
> +			};
> +
> +			vtouch_reg: LDO11 {
> +				regulator-name = "TOUCH_2.8V";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +				regulator-always-on;
> +			};
> +
> +			vpll_reg: LDO10 {
> +				regulator-name = "VPLL_1.1V";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +				regulator-always-on;
> +			};
> +
> +			vtcam_reg: LDO12 {
> +				regulator-name = "VT_CAM_1.8V";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +			};
> +
> +			vcclcd_reg: LDO13 {
> +				regulator-name = "VCC_3.0V_LCD";
> +				regulator-min-microvolt = <3000000>;
> +				regulator-max-microvolt = <3000000>;
> +			};
> +
> +			vmotor_reg: LDO14 {
> +				regulator-name = "VCC_2.8V_MOTOR";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +			};
> +
> +			vled_reg: LDO15 {
> +				regulator-name = "LED_A_2.8V";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +			};
> +
> +			camsensor_reg: LDO16 {
> +				regulator-name = "CAM_SENSOR_IO_1.8V";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +			};
> +
> +			vtf_reg: LDO17 {
> +				regulator-name = "VTF_2.8V";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +			};
> +
> +			vtouchled_reg: LDO18 {
> +				regulator-name = "TOUCH_LED_3.3V";
> +				regulator-min-microvolt = <2500000>;
> +				regulator-max-microvolt = <3300000>;
> +			};
> +
> +			vddq_reg: LDO21 {
> +				regulator-name = "VDDQ_M1M2_1.2V";
> +				regulator-min-microvolt = <1200000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +			};
> +
> +			varm_breg: BUCK1 {
> +				//regulator-name = "VARM_1.2V_C210";
> +				regulator-name = "vdd_arm";
> +				regulator-min-microvolt = <65000>;
> +				regulator-max-microvolt = <2225000>;
> +				regulator-always-on;
> +			};
> +
> +			vint_breg: BUCK2 {
> +				regulator-name = "VINT_1.1V_C210";
> +				regulator-min-microvolt = <65000>;
> +				regulator-max-microvolt = <2225000>;
> +				regulator-always-on;
> +			};
> +
> +			vg3d_breg: BUCK3 {
> +				regulator-name = "G3D_1.1V";
> +				regulator-min-microvolt = <900000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +			};
> +
> +			camisp_breg: BUCK4 {
> +				regulator-name = "CAM_ISP_CORE_1.2V";
> +				regulator-min-microvolt = <1200000>;
> +				regulator-max-microvolt = <1200000>;
> +			};
> +
> +			vmem_breg: BUCK5 {
> +				regulator-name = "VMEM_1.2V";
> +				regulator-min-microvolt = <1200000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +			};
> +
> +			vccsub_breg: BUCK7 {
> +				regulator-name = "VCC_SUB_2.0V";
> +				regulator-min-microvolt = <2000000>;
> +				regulator-max-microvolt = <2000000>;
> +				regulator-always-on;
> +			};
> +
> +			safe1_sreg: ESAFEOUT1 {
> +				regulator-name = "SAFEOUT1";
> +			};
> +
> +			safe2_sreg: ESAFEOUT2 {
> +				regulator-name = "SAFEOUT2";
> +				regulator-boot-on;
> +			};
> +
> +			charger_reg: CHARGER {
> +				regulator-name = "CHARGER";
> +				regulator-min-microamp = <60000>;
> +				regulator-max-microamp = <2580000>;
> +				regulator-always-on;
> +			};
> +
> +			chargercv_reg: CHARGER_CV {
> +				regulator-name = "CHARGER_CV";
> +				regulator-min-microvolt = <3800000>;
> +				regulator-max-microvolt = <4100000>;
> +				regulator-always-on;
> +			};
> +
> +		};
> +
> +	};
> +};
> +
> +
> +&gpu {
> +	status = "okay";
> +
> +	mali-supply = <&vg3d_breg>;
> +	regulator-microvolt-offset = <50000>;
> +	regulator-microsecs-delay = <50>;
> +};
> +
> +
> +&sdhci_0 {
> +	status = "okay";
> +
> +	bus-width = <8>;
> +	non-removable;
> +	vmmc-supply = <&vemmc_reg>;
> +
> +	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_bus8>;
> +	pinctrl-names = "default";
> +};
> +
> +&sdhci_2 {
> +	status = "okay";
> +
> +	bus-width = <4>;
> +	cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
> +	vmmc-supply = <&vtf_reg>;
> +
> +	pinctrl-0 = <&sd2_clk>, <&sd2_cmd>, <&sd2_bus4>;
> +	pinctrl-names = "default";
> +};
> +
> +&ehci {
> +	port@0 {
> +		status = "okay";
> +	};
> +
> +	port@1 {
> +		status = "okay";
> +	};
> +
> +	port@2 {
> +		status = "okay";
> +	};
> +
> +};

This is duplicated 'ehci' node, probable an artifact from the earlier 
rebase. Please remove it.

> +
> +
> +&sdhci_3 {
> +	status = "okay";
> +
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +
> +	non-removable;
> +	bus-width = <4>;
> +	mmc-pwrseq = <&wlan_pwrseq>;
> +	vmmc-supply = <&vtf_reg>;
> +
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&sd3_clk>, <&sd3_cmd>, <&sd3_bus4>;
> +
> +	brcmf: wifi@1 {
> +		compatible = "brcm,bcm4330-fmac";
> +		reg = <1>;
> +
> +		interrupt-parent = <&gpx2>;
> +		interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
> +		interrupt-names = "host-wake";
> +	};
> +};
> +
> +
> +&serial_0 {
> +	status = "okay";
> +
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&bt_en>, <&bt_res>, <&uart0_data>, <&uart0_fctl>;
> +
> +	bluetooth {
> +		compatible = "brcm,bcm4330-bt";
> +
> +		shutdown-gpios = <&gpl0 4 GPIO_ACTIVE_HIGH>;
> +		reset-gpios = <&gpl1 0 GPIO_ACTIVE_HIGH>;
> +		device-wakeup-gpios = <&gpx3 1 GPIO_ACTIVE_HIGH>;
> +		host-wakeup-gpios = <&gpx2 6 GPIO_ACTIVE_HIGH>;
> +	};
> +};
> +
> +&serial_1 {
> +	status = "okay";
> +};
> +
> +&serial_2 {
> +	status = "okay";
> +};
> +
> +&serial_3 {
> +	status = "okay";
> +};
> +
> +&tmu {
> +	status = "okay";
> +};
> +
> +
> +&pinctrl_0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&sleep0>;
> +
> +
> +	sleep0: sleep-states {
> +		gpa0-0 {
> +			samsung,pins = "gpa0-0";
> +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
> +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
> +		};
> +
> +		gpa0-1 {
> +			samsung,pins = "gpa0-1";
> +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT0>;
> +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
> +		};
> +
> +		gpa0-2 {
> +			samsung,pins = "gpa0-2";
> +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
> +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
> +		};
> +
> +		gpa0-3 {
> +			samsung,pins = "gpa0-3";
> +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT1>;
> +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
> +		};
> +	};
> +};
> +
> +&pinctrl_1 {
> +	mhl_int: mhl-int {
> +		samsung,pins = "gpf3-5";
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +	};
> +
> +	i2c_mhl_bus: i2c-mhl-bus {
> +		samsung,pins = "gpf0-4", "gpf0-6";
> +		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
> +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
> +	};
> +
> +	usb_sel: usb-sel {
> +		samsung,pins = "gpl0-6";
> +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
> +		samsung,pin-val = <0>;
> +	};
> +
> +	bt_en: bt-en {
> +		samsung,pins = "gpl0-4";
> +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
> +		samsung,pin-val = <0>;
> +	};
> +
> +	bt_res: bt-res {
> +		samsung,pins = "gpl1-0";
> +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
> +		samsung,pin-val = <0>;
> +	};
> +
> +
> +	otg_gp: otg-gp {
> +		samsung,pins = "gpx3-3";
> +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
> +		samsung,pin-val = <0>;
> +	};
> +
> +	mag_mhl_gpio: mag-mhl-gpio {
> +		samsung,pins = "gpd0-2";
> +		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +	};
> +
> +
> +	max8997_irq: max8997-irq {
> +		samsung,pins = "gpx0-7";
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +	};
> +
> +	max17042_fuel_irq: max17042-fuel-irq {
> +		samsung,pins = "gpx2-3";
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +	};
> +
> +	tsp224_irq: tsp224-irq {
> +		samsung,pins = "gpx0-4";
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
> +	};
> +};

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 1/2] dt-bindings: arm/samsung: Add compatible string for the Galaxy S2
  2020-03-12 15:34 ` Paul Cercueil
@ 2020-03-13  8:29   ` Krzysztof Kozlowski
  -1 siblings, 0 replies; 35+ messages in thread
From: Krzysztof Kozlowski @ 2020-03-13  8:29 UTC (permalink / raw)
  To: Paul Cercueil
  Cc: Kukjin Kim, Rob Herring, Mark Rutland, Stenkin Evgeniy,
	linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel

On Thu, Mar 12, 2020 at 04:34:10PM +0100, Paul Cercueil wrote:
> Add compatible string for the Samsung Galaxy S2 (i9100 version), which
> is an Exynos 4210 based device.
> 
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>  .../devicetree/bindings/arm/samsung/samsung-boards.yaml          | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
> index 63acd57c4799..e2b19caac795 100644
> --- a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
> +++ b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
> @@ -55,6 +55,7 @@ properties:
>                - samsung,smdkv310                # Samsung SMDKV310 eval
>                - samsung,trats                   # Samsung Tizen Reference
>                - samsung,universal_c210          # Samsung C210
> +              - samsung,i9100                   # Samsung Galaxy S2

Put it in alphabetical order please so with this change:
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>

(Optionally I can take it through samsung-soc tree)

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 1/2] dt-bindings: arm/samsung: Add compatible string for the Galaxy S2
@ 2020-03-13  8:29   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 35+ messages in thread
From: Krzysztof Kozlowski @ 2020-03-13  8:29 UTC (permalink / raw)
  To: Paul Cercueil
  Cc: Mark Rutland, devicetree, Stenkin Evgeniy, linux-samsung-soc,
	linux-kernel, Rob Herring, Kukjin Kim, linux-arm-kernel

On Thu, Mar 12, 2020 at 04:34:10PM +0100, Paul Cercueil wrote:
> Add compatible string for the Samsung Galaxy S2 (i9100 version), which
> is an Exynos 4210 based device.
> 
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>  .../devicetree/bindings/arm/samsung/samsung-boards.yaml          | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
> index 63acd57c4799..e2b19caac795 100644
> --- a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
> +++ b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
> @@ -55,6 +55,7 @@ properties:
>                - samsung,smdkv310                # Samsung SMDKV310 eval
>                - samsung,trats                   # Samsung Tizen Reference
>                - samsung,universal_c210          # Samsung C210
> +              - samsung,i9100                   # Samsung Galaxy S2

Put it in alphabetical order please so with this change:
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>

(Optionally I can take it through samsung-soc tree)

Best regards,
Krzysztof

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
  2020-03-12 15:34   ` Paul Cercueil
@ 2020-03-13  9:00     ` Krzysztof Kozlowski
  -1 siblings, 0 replies; 35+ messages in thread
From: Krzysztof Kozlowski @ 2020-03-13  9:00 UTC (permalink / raw)
  To: Paul Cercueil, Marek Szyprowski
  Cc: Kukjin Kim, Rob Herring, Mark Rutland, Stenkin Evgeniy,
	linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel

On Thu, Mar 12, 2020 at 04:34:11PM +0100, Paul Cercueil wrote:
> From: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
> 
> Add devicetree file for the Exynos 4210 based Galaxy S2 (i9100 version).

Thanks for the patch!

It is an GT-I9100.

+Cc Marek (I have few questions further)


> 
> Signed-off-by: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>  arch/arm/boot/dts/Makefile             |   1 +
>  arch/arm/boot/dts/exynos4210-i9100.dts | 816 +++++++++++++++++++++++++
>  2 files changed, 817 insertions(+)
>  create mode 100644 arch/arm/boot/dts/exynos4210-i9100.dts
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index d6546d2676b9..522436d30690 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -181,6 +181,7 @@ dtb-$(CONFIG_ARCH_EXYNOS3) += \
>  	exynos3250-monk.dtb \
>  	exynos3250-rinato.dtb
>  dtb-$(CONFIG_ARCH_EXYNOS4) += \
> +	exynos4210-i9100.dtb \
>  	exynos4210-origen.dtb \
>  	exynos4210-smdkv310.dtb \
>  	exynos4210-trats.dtb \
> diff --git a/arch/arm/boot/dts/exynos4210-i9100.dts b/arch/arm/boot/dts/exynos4210-i9100.dts
> new file mode 100644
> index 000000000000..c218e34959be
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos4210-i9100.dts
> @@ -0,0 +1,816 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Samsung's Exynos4210 based Galaxy S2 (i9100 version) device tree

Ditto

> + *
> + * Copyright (c) 2012 Samsung Electronics Co., Ltd.
> + *		http://www.samsung.com
> + * Copyright (c) 2020 Stenkin Evgeniy <stenkinevgeniy@gmail.com>
> + * Copyright (c) 2020 Paul Cercueil <paul@crapouillou.net>
> + *
> + * Device tree source file for Samsung's Galaxy S2 smartphone (i9100 version),
> + * which is based on Samsung's Exynos4210 SoC.

Duplicated description, you mentioned it before.

> + */
> +
> +/dts-v1/;
> +#include "exynos4210.dtsi"
> +#include "exynos4412-ppmu-common.dtsi"
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/linux-event-codes.h>
> +
> +/ {
> +	model = "Samsung Galaxy S2 (i9100)";

GT-I9100

> +	compatible = "samsung,i9100", "samsung,exynos4210", "samsung,exynos4";

I think it shares a lot with Trats board...

Marek, how similar these
designs are? Maybe it is worth to split some parts and make common part?

> +
> +
> +	memory@40000000 {
> +		device_type = "memory";
> +		reg = <0x40000000 0x40000000>;
> +	};
> +

You do not have a chosen node, at least for stdout serial selection.
Probably you should have one... bootargs I guess could come from
bootloader.


> +	vemmc_reg: regulator-0 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "VMEM_VDD_2.8V";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;

This looks like a stub/fake regulator. Probably it shoould be replaced
with proper regulator coming from PMIC (few seems to be missing there).

I don't have the schematics so I cannot judge... I see Trats has the
same.

Marek, mayybe you know, is it really a separate regulator?

> +	};
> +
> +	tsp_reg: regulator-1 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "TSP_FIXED_VOLTAGES";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
> +		startup-delay-us = <70000>;
> +		enable-active-high;
> +		regulator-boot-on;
> +		regulator-always-on;

always-on and boot-on should not be needed. You have a consumer for this
regulator.

> +	};
> +
> +	cam_af_28v_reg: regulator-3 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "8M_AF_2.8V_EN";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		gpio = <&gpk1 1 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	cam_io_en_reg: regulator-4 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "CAM_IO_EN";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		gpio = <&gpe2 1 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	cam_io_12v_reg: regulator-5 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "8M_1.2V_EN";
> +		regulator-min-microvolt = <1200000>;
> +		regulator-max-microvolt = <1200000>;
> +		gpio = <&gpe2 5 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	vt_core_15v_reg: regulator-6 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "VT_CORE_1.5V";
> +		regulator-min-microvolt = <1500000>;
> +		regulator-max-microvolt = <1500000>;
> +		gpio = <&gpe2 2 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	gpio-keys {
> +		compatible = "gpio-keys";
> +
> +		vol-down {
> +			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_VOLUMEDOWN>;
> +			label = "volume down";
> +			debounce-interval = <10>;
> +		};
> +
> +		vol-up {
> +			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_VOLUMEUP>;
> +			label = "volume up";
> +			debounce-interval = <10>;
> +		};
> +
> +		power {
> +			gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_POWER>;
> +			label = "power";
> +			debounce-interval = <10>;
> +			wakeup-source;
> +		};
> +
> +		ok {
> +			gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_OK>;
> +			label = "ok";
> +			debounce-interval = <10>;
> +		};
> +	};
> +
> +	wlan_pwrseq: sdhci3-pwrseq {
> +		compatible = "mmc-pwrseq-simple";
> +		reset-gpios = <&gpl1 2 GPIO_ACTIVE_LOW>;
> +	};
> +
> +	i2c_max17042_fuel: i2c-gpio-3 {

i2c-gpio-3 -> i2c-gpio

> +		compatible = "i2c-gpio";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		sda-gpios = <&gpy4 0 GPIO_ACTIVE_HIGH>;
> +		scl-gpios = <&gpy4 1 GPIO_ACTIVE_HIGH>;
> +		i2c-gpio,delay-us = <5>;
> +
> +		battery@36 {
> +			compatible = "maxim,max17042";
> +
> +			interrupt-parent = <&gpx2>;
> +			interrupts = <3 2>;

s/2/IRQ_TYPE_EDGE_FALLING/

> +
> +			pinctrl-0 = <&max17042_fuel_irq>;
> +			pinctrl-names = "default";
> +
> +			reg = <0x36>;
> +			maxim,over-heat-temp = <700>;
> +			maxim,over-volt = <4500>;
> +

Remove empty line.

> +		};
> +	};
> +
> +	spi-lcd {
> +		compatible = "spi-gpio";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		num-chipselects = <1>;
> +		cs-gpios = <&gpy4 3 GPIO_ACTIVE_HIGH>;
> +		sck-gpios = <&gpy3 1 GPIO_ACTIVE_HIGH>;
> +		mosi-gpios = <&gpy3 3 GPIO_ACTIVE_HIGH>;
> +
> +		lcd@0 {
> +			compatible = "samsung,ld9040";
> +			reg = <0>;
> +
> +			spi-max-frequency = <1200000>;
> +			spi-cpol;
> +			spi-cpha;
> +
> +			vdd3-supply = <&vmipi_reg>;
> +			vci-supply = <&vcclcd_reg>;
> +
> +			reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
> +			power-on-delay = <10>;
> +			reset-delay = <10>;
> +
> +			panel-width-mm = <90>;
> +			panel-height-mm = <154>;
> +
> +			display-timings {
> +				timing {
> +					clock-frequency = <23492370>;
> +					hactive = <480>;
> +					vactive = <800>;
> +					hback-porch = <16>;
> +					hfront-porch = <16>;
> +					vback-porch = <2>;
> +					vfront-porch = <28>;
> +					hsync-len = <2>;
> +					vsync-len = <1>;
> +					hsync-active = <0>;
> +					vsync-active = <0>;
> +					de-active = <0>;
> +					pixelclk-active = <0>;
> +				};
> +			};
> +
> +			port {
> +				lcd_ep: endpoint {
> +					remote-endpoint = <&fimd_dpi_ep>;
> +				};
> +			};
> +		};
> +	};
> +
> +	fixed-rate-clocks {
> +		xxti {
> +			compatible = "samsung,clock-xxti";
> +			clock-frequency = <0>;
> +		};
> +
> +		xusbxti {
> +			compatible = "samsung,clock-xusbxti";
> +			clock-frequency = <24000000>;
> +		};
> +	};
> +
> +	thermal-zones {
> +		cpu_thermal: cpu-thermal {
> +			cooling-maps {
> +				map0 {
> +					/* Corresponds to 800MHz */
> +					cooling-device = <&cpu0 2 2>;
> +				};
> +				map1 {
> +					/* Corresponds to 200MHz */
> +					cooling-device = <&cpu0 4 4>;
> +				};
> +			};
> +		};
> +	};
> +
> +};
> +
> +&camera {
> +	status = "okay";
> +};
> +
> +&cpu0 {
> +	cpu0-supply = <&varm_breg>;
> +};
> +
> +&exynos_usbphy {
> +	status = "okay";
> +
> +	vbus-supply = <&safe1_sreg>;
> +};
> +
> +&fimc_0 {
> +	status = "okay";
> +
> +	assigned-clocks = <&clock CLK_MOUT_FIMC0>, <&clock CLK_SCLK_FIMC0>;
> +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
> +	assigned-clock-rates = <0>, <160000000>;
> +};
> +
> +&fimc_1 {
> +	status = "okay";
> +
> +	assigned-clocks = <&clock CLK_MOUT_FIMC1>, <&clock CLK_SCLK_FIMC1>;
> +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
> +	assigned-clock-rates = <0>, <160000000>;
> +};
> +
> +&fimc_2 {
> +	status = "okay";
> +
> +	assigned-clocks = <&clock CLK_MOUT_FIMC2>, <&clock CLK_SCLK_FIMC2>;
> +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
> +	assigned-clock-rates = <0>, <160000000>;
> +};
> +
> +&fimc_3 {
> +	status = "okay";
> +
> +	assigned-clocks = <&clock CLK_MOUT_FIMC3>, <&clock CLK_SCLK_FIMC3>;
> +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
> +	assigned-clock-rates = <0>, <160000000>;
> +};
> +
> +&fimd {
> +	status = "okay";
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +
> +	samsung,invert-vden;
> +	samsung,invert-vclk;
> +
> +	pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
> +	pinctrl-names = "default";
> +
> +	port@3 {
> +		reg = <3>;
> +
> +		fimd_dpi_ep: endpoint {
> +			remote-endpoint = <&lcd_ep>;
> +		};
> +	};
> +};
> +
> +&hsotg {
> +	status = "okay";
> +
> +	dr_mode = "otg";
> +	vusb_d-supply = <&vusb_reg>;
> +	vusb_a-supply = <&vusbdac_reg>;
> +};
> +
> +&ehci {

Order the phandle/nodes in alphabetical order, please. So:

&ehci ...
&hsoth ...
&i2c ...

etc.

> +	status = "okay";
> +
> +	port@0 {
> +		status = "okay";
> +	};
> +
> +	port@1 {
> +		status = "okay";
> +	};
> +
> +	port@2 {
> +		status = "okay";
> +	};
> +};
> +

Double empty line.

> +
> +&i2c_3 {
> +	status = "okay";
> +
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-slave-addr = <0x10>;
> +	samsung,i2c-max-bus-freq = <100000>;
> +
> +	pinctrl-0 = <&i2c3_bus>;
> +	pinctrl-names = "default";
> +
> +	mxt224-touchscreen@4a {
> +		compatible = "atmel,maxtouch";
> +		reg = <0x4a>;
> +
> +		interrupt-parent = <&gpx0>;
> +		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
> +
> +		avdd-supply = <&tsp_reg>;
> +		vdd-supply = <&tsp_reg>;
> +	};
> +};
> +
> +&i2c_7 {
> +	status = "okay";
> +
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-slave-addr = <0x10>;
> +	samsung,i2c-max-bus-freq = <400000>;
> +
> +	pinctrl-0 = <&i2c7_bus>;
> +	pinctrl-names = "default";
> +
> +	ak8975@c {
> +		compatible = "asahi-kasei,ak8975";
> +		reg = <0x0c>;
> +
> +		gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
> +	};
> +};
> +
> +
> +&i2c_5 {
> +	status = "okay";
> +
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-slave-addr = <0x10>;
> +	samsung,i2c-max-bus-freq = <100000>;
> +
> +	pinctrl-0 = <&i2c5_bus>;
> +	pinctrl-names = "default";
> +
> +	max8997_pmic@66 {
> +		compatible = "maxim,max8997-pmic";
> +		reg = <0x66>;
> +
> +		interrupts-extended = <&gpx0 7 0>, <&gpx2 3 2>;
> +		interrupt-parent = <&gpx0>;
> +		interrupts = <7 IRQ_TYPE_NONE>;
> +
> +		otg_en-gpios = <&gpx3 3 0>;
> +		usb_sel-gpios = <&gpl0 6 0>;
> +
> +		max8997,pmic-buck1-uses-gpio-dvs;
> +		max8997,pmic-buck2-uses-gpio-dvs;
> +		max8997,pmic-buck5-uses-gpio-dvs;
> +
> +		max8997,pmic-ignore-gpiodvs-side-effect;
> +		max8997,pmic-buck125-default-dvs-idx = <0>;
> +
> +		max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
> +						 <&gpx0 6 GPIO_ACTIVE_HIGH>,
> +						 <&gpl0 0 GPIO_ACTIVE_HIGH>;
> +
> +		max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
> +						 <1250000>, <1200000>,
> +						 <1150000>, <1100000>,
> +						 <1000000>, <950000>;
> +
> +		max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
> +						 <950000>,  <900000>,
> +						 <1100000>, <1000000>,
> +						 <950000>,  <900000>;
> +
> +		max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
> +						 <1200000>, <1200000>,
> +						 <1200000>, <1200000>,
> +						 <1200000>, <1200000>;
> +
> +		pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
> +		pinctrl-names = "default";
> +
> +		regulators {
> +			vadc_reg: LDO1 {
> +				regulator-name = "VADC_3.3V_C210";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +
> +			};

Add empty line.

> +			valive_reg: LDO2 {
> +				regulator-name = "VALIVE_1.1V_C210";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +				regulator-always-on;
> +
> +			};
> +
> +			vusb_reg: LDO3 {
> +				regulator-name = "VUSB_1.1V_C210";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +			};
> +
> +			vmipi_reg: LDO4 {
> +				regulator-name = "VMIPI_1.8V";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			vhsic_reg: LDO5 {
> +				regulator-name = "VHSIC_1.2V";
> +				regulator-min-microvolt = <1200000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +			};
> +
> +			vpda_reg: LDO6 {
> +				regulator-name = "VCC_1.8V_PDA";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			vcam_reg: LDO7 {
> +				regulator-name = "CAM_ISP_1.8V";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +			};
> +
> +			vusbdac_reg: LDO8 {
> +				regulator-name = "VUSB+VDAC_3.3V_C210";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +			};
> +
> +			vccpda_reg: LDO9 {
> +				regulator-name = "VCC_2.8V_PDA";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +				regulator-always-on;
> +			};
> +
> +			vtouch_reg: LDO11 {
> +				regulator-name = "TOUCH_2.8V";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +				regulator-always-on;
> +			};
> +
> +			vpll_reg: LDO10 {
> +				regulator-name = "VPLL_1.1V";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +				regulator-always-on;
> +			};
> +
> +			vtcam_reg: LDO12 {
> +				regulator-name = "VT_CAM_1.8V";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +			};
> +
> +			vcclcd_reg: LDO13 {
> +				regulator-name = "VCC_3.0V_LCD";
> +				regulator-min-microvolt = <3000000>;
> +				regulator-max-microvolt = <3000000>;
> +			};
> +
> +			vmotor_reg: LDO14 {
> +				regulator-name = "VCC_2.8V_MOTOR";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +			};
> +
> +			vled_reg: LDO15 {
> +				regulator-name = "LED_A_2.8V";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +			};
> +
> +			camsensor_reg: LDO16 {
> +				regulator-name = "CAM_SENSOR_IO_1.8V";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +			};
> +
> +			vtf_reg: LDO17 {
> +				regulator-name = "VTF_2.8V";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +			};
> +
> +			vtouchled_reg: LDO18 {
> +				regulator-name = "TOUCH_LED_3.3V";
> +				regulator-min-microvolt = <2500000>;
> +				regulator-max-microvolt = <3300000>;
> +			};
> +
> +			vddq_reg: LDO21 {
> +				regulator-name = "VDDQ_M1M2_1.2V";
> +				regulator-min-microvolt = <1200000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +			};
> +
> +			varm_breg: BUCK1 {
> +				//regulator-name = "VARM_1.2V_C210";
> +				regulator-name = "vdd_arm";
> +				regulator-min-microvolt = <65000>;
> +				regulator-max-microvolt = <2225000>;
> +				regulator-always-on;
> +			};
> +
> +			vint_breg: BUCK2 {
> +				regulator-name = "VINT_1.1V_C210";
> +				regulator-min-microvolt = <65000>;
> +				regulator-max-microvolt = <2225000>;
> +				regulator-always-on;
> +			};
> +
> +			vg3d_breg: BUCK3 {
> +				regulator-name = "G3D_1.1V";
> +				regulator-min-microvolt = <900000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +			};
> +
> +			camisp_breg: BUCK4 {
> +				regulator-name = "CAM_ISP_CORE_1.2V";
> +				regulator-min-microvolt = <1200000>;
> +				regulator-max-microvolt = <1200000>;
> +			};
> +
> +			vmem_breg: BUCK5 {
> +				regulator-name = "VMEM_1.2V";
> +				regulator-min-microvolt = <1200000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +			};
> +
> +			vccsub_breg: BUCK7 {
> +				regulator-name = "VCC_SUB_2.0V";
> +				regulator-min-microvolt = <2000000>;
> +				regulator-max-microvolt = <2000000>;
> +				regulator-always-on;
> +			};
> +
> +			safe1_sreg: ESAFEOUT1 {
> +				regulator-name = "SAFEOUT1";
> +			};
> +
> +			safe2_sreg: ESAFEOUT2 {
> +				regulator-name = "SAFEOUT2";
> +				regulator-boot-on;
> +			};
> +
> +			charger_reg: CHARGER {
> +				regulator-name = "CHARGER";
> +				regulator-min-microamp = <60000>;
> +				regulator-max-microamp = <2580000>;
> +				regulator-always-on;
> +			};
> +
> +			chargercv_reg: CHARGER_CV {
> +				regulator-name = "CHARGER_CV";
> +				regulator-min-microvolt = <3800000>;
> +				regulator-max-microvolt = <4100000>;
> +				regulator-always-on;
> +			};
> +

Empty line, not needed.

> +		};
> +

Empty line, not needed.

> +	};
> +};
> +
> +

Empty line, not needed. Please fix them in all places.

> +&gpu {
> +	status = "okay";
> +
> +	mali-supply = <&vg3d_breg>;
> +	regulator-microvolt-offset = <50000>;
> +	regulator-microsecs-delay = <50>;
> +};
> +

and more...

> +
> +&sdhci_0 {
> +	status = "okay";
> +
> +	bus-width = <8>;
> +	non-removable;
> +	vmmc-supply = <&vemmc_reg>;
> +
> +	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_bus8>;
> +	pinctrl-names = "default";
> +};
> +
> +&sdhci_2 {
> +	status = "okay";
> +
> +	bus-width = <4>;
> +	cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
> +	vmmc-supply = <&vtf_reg>;
> +
> +	pinctrl-0 = <&sd2_clk>, <&sd2_cmd>, <&sd2_bus4>;
> +	pinctrl-names = "default";
> +};
> +
> +&ehci {

Duplicated.

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
@ 2020-03-13  9:00     ` Krzysztof Kozlowski
  0 siblings, 0 replies; 35+ messages in thread
From: Krzysztof Kozlowski @ 2020-03-13  9:00 UTC (permalink / raw)
  To: Paul Cercueil, Marek Szyprowski
  Cc: Mark Rutland, devicetree, Stenkin Evgeniy, linux-samsung-soc,
	linux-kernel, Rob Herring, Kukjin Kim, linux-arm-kernel

On Thu, Mar 12, 2020 at 04:34:11PM +0100, Paul Cercueil wrote:
> From: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
> 
> Add devicetree file for the Exynos 4210 based Galaxy S2 (i9100 version).

Thanks for the patch!

It is an GT-I9100.

+Cc Marek (I have few questions further)


> 
> Signed-off-by: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>  arch/arm/boot/dts/Makefile             |   1 +
>  arch/arm/boot/dts/exynos4210-i9100.dts | 816 +++++++++++++++++++++++++
>  2 files changed, 817 insertions(+)
>  create mode 100644 arch/arm/boot/dts/exynos4210-i9100.dts
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index d6546d2676b9..522436d30690 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -181,6 +181,7 @@ dtb-$(CONFIG_ARCH_EXYNOS3) += \
>  	exynos3250-monk.dtb \
>  	exynos3250-rinato.dtb
>  dtb-$(CONFIG_ARCH_EXYNOS4) += \
> +	exynos4210-i9100.dtb \
>  	exynos4210-origen.dtb \
>  	exynos4210-smdkv310.dtb \
>  	exynos4210-trats.dtb \
> diff --git a/arch/arm/boot/dts/exynos4210-i9100.dts b/arch/arm/boot/dts/exynos4210-i9100.dts
> new file mode 100644
> index 000000000000..c218e34959be
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos4210-i9100.dts
> @@ -0,0 +1,816 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Samsung's Exynos4210 based Galaxy S2 (i9100 version) device tree

Ditto

> + *
> + * Copyright (c) 2012 Samsung Electronics Co., Ltd.
> + *		http://www.samsung.com
> + * Copyright (c) 2020 Stenkin Evgeniy <stenkinevgeniy@gmail.com>
> + * Copyright (c) 2020 Paul Cercueil <paul@crapouillou.net>
> + *
> + * Device tree source file for Samsung's Galaxy S2 smartphone (i9100 version),
> + * which is based on Samsung's Exynos4210 SoC.

Duplicated description, you mentioned it before.

> + */
> +
> +/dts-v1/;
> +#include "exynos4210.dtsi"
> +#include "exynos4412-ppmu-common.dtsi"
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/linux-event-codes.h>
> +
> +/ {
> +	model = "Samsung Galaxy S2 (i9100)";

GT-I9100

> +	compatible = "samsung,i9100", "samsung,exynos4210", "samsung,exynos4";

I think it shares a lot with Trats board...

Marek, how similar these
designs are? Maybe it is worth to split some parts and make common part?

> +
> +
> +	memory@40000000 {
> +		device_type = "memory";
> +		reg = <0x40000000 0x40000000>;
> +	};
> +

You do not have a chosen node, at least for stdout serial selection.
Probably you should have one... bootargs I guess could come from
bootloader.


> +	vemmc_reg: regulator-0 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "VMEM_VDD_2.8V";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;

This looks like a stub/fake regulator. Probably it shoould be replaced
with proper regulator coming from PMIC (few seems to be missing there).

I don't have the schematics so I cannot judge... I see Trats has the
same.

Marek, mayybe you know, is it really a separate regulator?

> +	};
> +
> +	tsp_reg: regulator-1 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "TSP_FIXED_VOLTAGES";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
> +		startup-delay-us = <70000>;
> +		enable-active-high;
> +		regulator-boot-on;
> +		regulator-always-on;

always-on and boot-on should not be needed. You have a consumer for this
regulator.

> +	};
> +
> +	cam_af_28v_reg: regulator-3 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "8M_AF_2.8V_EN";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		gpio = <&gpk1 1 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	cam_io_en_reg: regulator-4 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "CAM_IO_EN";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		gpio = <&gpe2 1 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	cam_io_12v_reg: regulator-5 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "8M_1.2V_EN";
> +		regulator-min-microvolt = <1200000>;
> +		regulator-max-microvolt = <1200000>;
> +		gpio = <&gpe2 5 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	vt_core_15v_reg: regulator-6 {
> +		compatible = "regulator-fixed";
> +		regulator-name = "VT_CORE_1.5V";
> +		regulator-min-microvolt = <1500000>;
> +		regulator-max-microvolt = <1500000>;
> +		gpio = <&gpe2 2 GPIO_ACTIVE_HIGH>;
> +		enable-active-high;
> +	};
> +
> +	gpio-keys {
> +		compatible = "gpio-keys";
> +
> +		vol-down {
> +			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_VOLUMEDOWN>;
> +			label = "volume down";
> +			debounce-interval = <10>;
> +		};
> +
> +		vol-up {
> +			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_VOLUMEUP>;
> +			label = "volume up";
> +			debounce-interval = <10>;
> +		};
> +
> +		power {
> +			gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_POWER>;
> +			label = "power";
> +			debounce-interval = <10>;
> +			wakeup-source;
> +		};
> +
> +		ok {
> +			gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_OK>;
> +			label = "ok";
> +			debounce-interval = <10>;
> +		};
> +	};
> +
> +	wlan_pwrseq: sdhci3-pwrseq {
> +		compatible = "mmc-pwrseq-simple";
> +		reset-gpios = <&gpl1 2 GPIO_ACTIVE_LOW>;
> +	};
> +
> +	i2c_max17042_fuel: i2c-gpio-3 {

i2c-gpio-3 -> i2c-gpio

> +		compatible = "i2c-gpio";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		sda-gpios = <&gpy4 0 GPIO_ACTIVE_HIGH>;
> +		scl-gpios = <&gpy4 1 GPIO_ACTIVE_HIGH>;
> +		i2c-gpio,delay-us = <5>;
> +
> +		battery@36 {
> +			compatible = "maxim,max17042";
> +
> +			interrupt-parent = <&gpx2>;
> +			interrupts = <3 2>;

s/2/IRQ_TYPE_EDGE_FALLING/

> +
> +			pinctrl-0 = <&max17042_fuel_irq>;
> +			pinctrl-names = "default";
> +
> +			reg = <0x36>;
> +			maxim,over-heat-temp = <700>;
> +			maxim,over-volt = <4500>;
> +

Remove empty line.

> +		};
> +	};
> +
> +	spi-lcd {
> +		compatible = "spi-gpio";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		num-chipselects = <1>;
> +		cs-gpios = <&gpy4 3 GPIO_ACTIVE_HIGH>;
> +		sck-gpios = <&gpy3 1 GPIO_ACTIVE_HIGH>;
> +		mosi-gpios = <&gpy3 3 GPIO_ACTIVE_HIGH>;
> +
> +		lcd@0 {
> +			compatible = "samsung,ld9040";
> +			reg = <0>;
> +
> +			spi-max-frequency = <1200000>;
> +			spi-cpol;
> +			spi-cpha;
> +
> +			vdd3-supply = <&vmipi_reg>;
> +			vci-supply = <&vcclcd_reg>;
> +
> +			reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
> +			power-on-delay = <10>;
> +			reset-delay = <10>;
> +
> +			panel-width-mm = <90>;
> +			panel-height-mm = <154>;
> +
> +			display-timings {
> +				timing {
> +					clock-frequency = <23492370>;
> +					hactive = <480>;
> +					vactive = <800>;
> +					hback-porch = <16>;
> +					hfront-porch = <16>;
> +					vback-porch = <2>;
> +					vfront-porch = <28>;
> +					hsync-len = <2>;
> +					vsync-len = <1>;
> +					hsync-active = <0>;
> +					vsync-active = <0>;
> +					de-active = <0>;
> +					pixelclk-active = <0>;
> +				};
> +			};
> +
> +			port {
> +				lcd_ep: endpoint {
> +					remote-endpoint = <&fimd_dpi_ep>;
> +				};
> +			};
> +		};
> +	};
> +
> +	fixed-rate-clocks {
> +		xxti {
> +			compatible = "samsung,clock-xxti";
> +			clock-frequency = <0>;
> +		};
> +
> +		xusbxti {
> +			compatible = "samsung,clock-xusbxti";
> +			clock-frequency = <24000000>;
> +		};
> +	};
> +
> +	thermal-zones {
> +		cpu_thermal: cpu-thermal {
> +			cooling-maps {
> +				map0 {
> +					/* Corresponds to 800MHz */
> +					cooling-device = <&cpu0 2 2>;
> +				};
> +				map1 {
> +					/* Corresponds to 200MHz */
> +					cooling-device = <&cpu0 4 4>;
> +				};
> +			};
> +		};
> +	};
> +
> +};
> +
> +&camera {
> +	status = "okay";
> +};
> +
> +&cpu0 {
> +	cpu0-supply = <&varm_breg>;
> +};
> +
> +&exynos_usbphy {
> +	status = "okay";
> +
> +	vbus-supply = <&safe1_sreg>;
> +};
> +
> +&fimc_0 {
> +	status = "okay";
> +
> +	assigned-clocks = <&clock CLK_MOUT_FIMC0>, <&clock CLK_SCLK_FIMC0>;
> +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
> +	assigned-clock-rates = <0>, <160000000>;
> +};
> +
> +&fimc_1 {
> +	status = "okay";
> +
> +	assigned-clocks = <&clock CLK_MOUT_FIMC1>, <&clock CLK_SCLK_FIMC1>;
> +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
> +	assigned-clock-rates = <0>, <160000000>;
> +};
> +
> +&fimc_2 {
> +	status = "okay";
> +
> +	assigned-clocks = <&clock CLK_MOUT_FIMC2>, <&clock CLK_SCLK_FIMC2>;
> +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
> +	assigned-clock-rates = <0>, <160000000>;
> +};
> +
> +&fimc_3 {
> +	status = "okay";
> +
> +	assigned-clocks = <&clock CLK_MOUT_FIMC3>, <&clock CLK_SCLK_FIMC3>;
> +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
> +	assigned-clock-rates = <0>, <160000000>;
> +};
> +
> +&fimd {
> +	status = "okay";
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +
> +	samsung,invert-vden;
> +	samsung,invert-vclk;
> +
> +	pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
> +	pinctrl-names = "default";
> +
> +	port@3 {
> +		reg = <3>;
> +
> +		fimd_dpi_ep: endpoint {
> +			remote-endpoint = <&lcd_ep>;
> +		};
> +	};
> +};
> +
> +&hsotg {
> +	status = "okay";
> +
> +	dr_mode = "otg";
> +	vusb_d-supply = <&vusb_reg>;
> +	vusb_a-supply = <&vusbdac_reg>;
> +};
> +
> +&ehci {

Order the phandle/nodes in alphabetical order, please. So:

&ehci ...
&hsoth ...
&i2c ...

etc.

> +	status = "okay";
> +
> +	port@0 {
> +		status = "okay";
> +	};
> +
> +	port@1 {
> +		status = "okay";
> +	};
> +
> +	port@2 {
> +		status = "okay";
> +	};
> +};
> +

Double empty line.

> +
> +&i2c_3 {
> +	status = "okay";
> +
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-slave-addr = <0x10>;
> +	samsung,i2c-max-bus-freq = <100000>;
> +
> +	pinctrl-0 = <&i2c3_bus>;
> +	pinctrl-names = "default";
> +
> +	mxt224-touchscreen@4a {
> +		compatible = "atmel,maxtouch";
> +		reg = <0x4a>;
> +
> +		interrupt-parent = <&gpx0>;
> +		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
> +
> +		avdd-supply = <&tsp_reg>;
> +		vdd-supply = <&tsp_reg>;
> +	};
> +};
> +
> +&i2c_7 {
> +	status = "okay";
> +
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-slave-addr = <0x10>;
> +	samsung,i2c-max-bus-freq = <400000>;
> +
> +	pinctrl-0 = <&i2c7_bus>;
> +	pinctrl-names = "default";
> +
> +	ak8975@c {
> +		compatible = "asahi-kasei,ak8975";
> +		reg = <0x0c>;
> +
> +		gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
> +	};
> +};
> +
> +
> +&i2c_5 {
> +	status = "okay";
> +
> +	samsung,i2c-sda-delay = <100>;
> +	samsung,i2c-slave-addr = <0x10>;
> +	samsung,i2c-max-bus-freq = <100000>;
> +
> +	pinctrl-0 = <&i2c5_bus>;
> +	pinctrl-names = "default";
> +
> +	max8997_pmic@66 {
> +		compatible = "maxim,max8997-pmic";
> +		reg = <0x66>;
> +
> +		interrupts-extended = <&gpx0 7 0>, <&gpx2 3 2>;
> +		interrupt-parent = <&gpx0>;
> +		interrupts = <7 IRQ_TYPE_NONE>;
> +
> +		otg_en-gpios = <&gpx3 3 0>;
> +		usb_sel-gpios = <&gpl0 6 0>;
> +
> +		max8997,pmic-buck1-uses-gpio-dvs;
> +		max8997,pmic-buck2-uses-gpio-dvs;
> +		max8997,pmic-buck5-uses-gpio-dvs;
> +
> +		max8997,pmic-ignore-gpiodvs-side-effect;
> +		max8997,pmic-buck125-default-dvs-idx = <0>;
> +
> +		max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
> +						 <&gpx0 6 GPIO_ACTIVE_HIGH>,
> +						 <&gpl0 0 GPIO_ACTIVE_HIGH>;
> +
> +		max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
> +						 <1250000>, <1200000>,
> +						 <1150000>, <1100000>,
> +						 <1000000>, <950000>;
> +
> +		max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
> +						 <950000>,  <900000>,
> +						 <1100000>, <1000000>,
> +						 <950000>,  <900000>;
> +
> +		max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
> +						 <1200000>, <1200000>,
> +						 <1200000>, <1200000>,
> +						 <1200000>, <1200000>;
> +
> +		pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
> +		pinctrl-names = "default";
> +
> +		regulators {
> +			vadc_reg: LDO1 {
> +				regulator-name = "VADC_3.3V_C210";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +
> +			};

Add empty line.

> +			valive_reg: LDO2 {
> +				regulator-name = "VALIVE_1.1V_C210";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +				regulator-always-on;
> +
> +			};
> +
> +			vusb_reg: LDO3 {
> +				regulator-name = "VUSB_1.1V_C210";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +			};
> +
> +			vmipi_reg: LDO4 {
> +				regulator-name = "VMIPI_1.8V";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			vhsic_reg: LDO5 {
> +				regulator-name = "VHSIC_1.2V";
> +				regulator-min-microvolt = <1200000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +			};
> +
> +			vpda_reg: LDO6 {
> +				regulator-name = "VCC_1.8V_PDA";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			vcam_reg: LDO7 {
> +				regulator-name = "CAM_ISP_1.8V";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +			};
> +
> +			vusbdac_reg: LDO8 {
> +				regulator-name = "VUSB+VDAC_3.3V_C210";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +			};
> +
> +			vccpda_reg: LDO9 {
> +				regulator-name = "VCC_2.8V_PDA";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +				regulator-always-on;
> +			};
> +
> +			vtouch_reg: LDO11 {
> +				regulator-name = "TOUCH_2.8V";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +				regulator-always-on;
> +			};
> +
> +			vpll_reg: LDO10 {
> +				regulator-name = "VPLL_1.1V";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +				regulator-always-on;
> +			};
> +
> +			vtcam_reg: LDO12 {
> +				regulator-name = "VT_CAM_1.8V";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +			};
> +
> +			vcclcd_reg: LDO13 {
> +				regulator-name = "VCC_3.0V_LCD";
> +				regulator-min-microvolt = <3000000>;
> +				regulator-max-microvolt = <3000000>;
> +			};
> +
> +			vmotor_reg: LDO14 {
> +				regulator-name = "VCC_2.8V_MOTOR";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +			};
> +
> +			vled_reg: LDO15 {
> +				regulator-name = "LED_A_2.8V";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +			};
> +
> +			camsensor_reg: LDO16 {
> +				regulator-name = "CAM_SENSOR_IO_1.8V";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +			};
> +
> +			vtf_reg: LDO17 {
> +				regulator-name = "VTF_2.8V";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +			};
> +
> +			vtouchled_reg: LDO18 {
> +				regulator-name = "TOUCH_LED_3.3V";
> +				regulator-min-microvolt = <2500000>;
> +				regulator-max-microvolt = <3300000>;
> +			};
> +
> +			vddq_reg: LDO21 {
> +				regulator-name = "VDDQ_M1M2_1.2V";
> +				regulator-min-microvolt = <1200000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +			};
> +
> +			varm_breg: BUCK1 {
> +				//regulator-name = "VARM_1.2V_C210";
> +				regulator-name = "vdd_arm";
> +				regulator-min-microvolt = <65000>;
> +				regulator-max-microvolt = <2225000>;
> +				regulator-always-on;
> +			};
> +
> +			vint_breg: BUCK2 {
> +				regulator-name = "VINT_1.1V_C210";
> +				regulator-min-microvolt = <65000>;
> +				regulator-max-microvolt = <2225000>;
> +				regulator-always-on;
> +			};
> +
> +			vg3d_breg: BUCK3 {
> +				regulator-name = "G3D_1.1V";
> +				regulator-min-microvolt = <900000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +			};
> +
> +			camisp_breg: BUCK4 {
> +				regulator-name = "CAM_ISP_CORE_1.2V";
> +				regulator-min-microvolt = <1200000>;
> +				regulator-max-microvolt = <1200000>;
> +			};
> +
> +			vmem_breg: BUCK5 {
> +				regulator-name = "VMEM_1.2V";
> +				regulator-min-microvolt = <1200000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +			};
> +
> +			vccsub_breg: BUCK7 {
> +				regulator-name = "VCC_SUB_2.0V";
> +				regulator-min-microvolt = <2000000>;
> +				regulator-max-microvolt = <2000000>;
> +				regulator-always-on;
> +			};
> +
> +			safe1_sreg: ESAFEOUT1 {
> +				regulator-name = "SAFEOUT1";
> +			};
> +
> +			safe2_sreg: ESAFEOUT2 {
> +				regulator-name = "SAFEOUT2";
> +				regulator-boot-on;
> +			};
> +
> +			charger_reg: CHARGER {
> +				regulator-name = "CHARGER";
> +				regulator-min-microamp = <60000>;
> +				regulator-max-microamp = <2580000>;
> +				regulator-always-on;
> +			};
> +
> +			chargercv_reg: CHARGER_CV {
> +				regulator-name = "CHARGER_CV";
> +				regulator-min-microvolt = <3800000>;
> +				regulator-max-microvolt = <4100000>;
> +				regulator-always-on;
> +			};
> +

Empty line, not needed.

> +		};
> +

Empty line, not needed.

> +	};
> +};
> +
> +

Empty line, not needed. Please fix them in all places.

> +&gpu {
> +	status = "okay";
> +
> +	mali-supply = <&vg3d_breg>;
> +	regulator-microvolt-offset = <50000>;
> +	regulator-microsecs-delay = <50>;
> +};
> +

and more...

> +
> +&sdhci_0 {
> +	status = "okay";
> +
> +	bus-width = <8>;
> +	non-removable;
> +	vmmc-supply = <&vemmc_reg>;
> +
> +	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_bus8>;
> +	pinctrl-names = "default";
> +};
> +
> +&sdhci_2 {
> +	status = "okay";
> +
> +	bus-width = <4>;
> +	cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
> +	vmmc-supply = <&vtf_reg>;
> +
> +	pinctrl-0 = <&sd2_clk>, <&sd2_cmd>, <&sd2_bus4>;
> +	pinctrl-names = "default";
> +};
> +
> +&ehci {

Duplicated.

Best regards,
Krzysztof


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
  2020-03-13  8:03     ` Marek Szyprowski
@ 2020-03-13 14:29       ` Paul Cercueil
  -1 siblings, 0 replies; 35+ messages in thread
From: Paul Cercueil @ 2020-03-13 14:29 UTC (permalink / raw)
  To: Marek Szyprowski
  Cc: Kukjin Kim, Krzysztof Kozlowski, Rob Herring, Mark Rutland,
	Stenkin Evgeniy, linux-arm-kernel, linux-samsung-soc, devicetree,
	linux-kernel

Hi Marek,


Le ven., mars 13, 2020 at 09:03, Marek Szyprowski 
<m.szyprowski@samsung.com> a écrit :
> 
> On 12.03.2020 16:34, Paul Cercueil wrote:
>>  From: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>> 
>>  Add devicetree file for the Exynos 4210 based Galaxy S2 (i9100 
>> version).
>> 
>>  Signed-off-by: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>>  Signed-off-by: Paul Cercueil <paul@crapouillou.net>
>>  ---
>>    arch/arm/boot/dts/Makefile             |   1 +
>>    arch/arm/boot/dts/exynos4210-i9100.dts | 816 
>> +++++++++++++++++++++++++
>>    2 files changed, 817 insertions(+)
>>    create mode 100644 arch/arm/boot/dts/exynos4210-i9100.dts
>> 
>>  diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
>>  index d6546d2676b9..522436d30690 100644
>>  --- a/arch/arm/boot/dts/Makefile
>>  +++ b/arch/arm/boot/dts/Makefile
>>  @@ -181,6 +181,7 @@ dtb-$(CONFIG_ARCH_EXYNOS3) += \
>>    	exynos3250-monk.dtb \
>>    	exynos3250-rinato.dtb
>>    dtb-$(CONFIG_ARCH_EXYNOS4) += \
>>  +	exynos4210-i9100.dtb \
>>    	exynos4210-origen.dtb \
>>    	exynos4210-smdkv310.dtb \
>>    	exynos4210-trats.dtb \
>>  diff --git a/arch/arm/boot/dts/exynos4210-i9100.dts 
>> b/arch/arm/boot/dts/exynos4210-i9100.dts
>>  new file mode 100644
>>  index 000000000000..c218e34959be
>>  --- /dev/null
>>  +++ b/arch/arm/boot/dts/exynos4210-i9100.dts
>>  @@ -0,0 +1,816 @@
>>  +// SPDX-License-Identifier: GPL-2.0
>>  +/*
>>  + * Samsung's Exynos4210 based Galaxy S2 (i9100 version) device tree
>>  + *
>>  + * Copyright (c) 2012 Samsung Electronics Co., Ltd.
>>  + *		http://www.samsung.com
>>  + * Copyright (c) 2020 Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>>  + * Copyright (c) 2020 Paul Cercueil <paul@crapouillou.net>
>>  + *
>>  + * Device tree source file for Samsung's Galaxy S2 smartphone 
>> (i9100 version),
>>  + * which is based on Samsung's Exynos4210 SoC.
>>  + */
>>  +
>>  +/dts-v1/;
>>  +#include "exynos4210.dtsi"
>>  +#include "exynos4412-ppmu-common.dtsi"
>>  +
>>  +#include <dt-bindings/gpio/gpio.h>
>>  +#include <dt-bindings/input/linux-event-codes.h>
>>  +
>>  +/ {
>>  +	model = "Samsung Galaxy S2 (i9100)";
>>  +	compatible = "samsung,i9100", "samsung,exynos4210", 
>> "samsung,exynos4";
>>  +
>>  +
>>  +	memory@40000000 {
>>  +		device_type = "memory";
>>  +		reg = <0x40000000 0x40000000>;
>>  +	};
>>  +
>>  +	vemmc_reg: regulator-0 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "VMEM_VDD_2.8V";
>>  +		regulator-min-microvolt = <2800000>;
>>  +		regulator-max-microvolt = <2800000>;
>>  +		gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	tsp_reg: regulator-1 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "TSP_FIXED_VOLTAGES";
>>  +		regulator-min-microvolt = <3300000>;
>>  +		regulator-max-microvolt = <3300000>;
>>  +		gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
>>  +		startup-delay-us = <70000>;
>>  +		enable-active-high;
>>  +		regulator-boot-on;
>>  +		regulator-always-on;
>>  +	};
>>  +
>>  +	cam_af_28v_reg: regulator-3 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "8M_AF_2.8V_EN";
>>  +		regulator-min-microvolt = <2800000>;
>>  +		regulator-max-microvolt = <2800000>;
>>  +		gpio = <&gpk1 1 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	cam_io_en_reg: regulator-4 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "CAM_IO_EN";
>>  +		regulator-min-microvolt = <2800000>;
>>  +		regulator-max-microvolt = <2800000>;
>>  +		gpio = <&gpe2 1 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	cam_io_12v_reg: regulator-5 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "8M_1.2V_EN";
>>  +		regulator-min-microvolt = <1200000>;
>>  +		regulator-max-microvolt = <1200000>;
>>  +		gpio = <&gpe2 5 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	vt_core_15v_reg: regulator-6 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "VT_CORE_1.5V";
>>  +		regulator-min-microvolt = <1500000>;
>>  +		regulator-max-microvolt = <1500000>;
>>  +		gpio = <&gpe2 2 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	gpio-keys {
>>  +		compatible = "gpio-keys";
>>  +
>>  +		vol-down {
>>  +			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_VOLUMEDOWN>;
>>  +			label = "volume down";
>>  +			debounce-interval = <10>;
>>  +		};
>>  +
>>  +		vol-up {
>>  +			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_VOLUMEUP>;
>>  +			label = "volume up";
>>  +			debounce-interval = <10>;
>>  +		};
>>  +
>>  +		power {
>>  +			gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_POWER>;
>>  +			label = "power";
>>  +			debounce-interval = <10>;
>>  +			wakeup-source;
>>  +		};
>>  +
>>  +		ok {
>>  +			gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_OK>;
>>  +			label = "ok";
>>  +			debounce-interval = <10>;
>>  +		};
>>  +	};
>>  +
>>  +	wlan_pwrseq: sdhci3-pwrseq {
>>  +		compatible = "mmc-pwrseq-simple";
>>  +		reset-gpios = <&gpl1 2 GPIO_ACTIVE_LOW>;
>>  +	};
>>  +
>>  +	i2c_max17042_fuel: i2c-gpio-3 {
>>  +		compatible = "i2c-gpio";
>>  +		#address-cells = <1>;
>>  +		#size-cells = <0>;
>>  +
>>  +		sda-gpios = <&gpy4 0 GPIO_ACTIVE_HIGH>;
>>  +		scl-gpios = <&gpy4 1 GPIO_ACTIVE_HIGH>;
>>  +		i2c-gpio,delay-us = <5>;
>>  +
>>  +		battery@36 {
>>  +			compatible = "maxim,max17042";
>>  +
>>  +			interrupt-parent = <&gpx2>;
>>  +			interrupts = <3 2>;
>>  +
>>  +			pinctrl-0 = <&max17042_fuel_irq>;
>>  +			pinctrl-names = "default";
>>  +
>>  +			reg = <0x36>;
>>  +			maxim,over-heat-temp = <700>;
>>  +			maxim,over-volt = <4500>;
>>  +
>>  +		};
>>  +	};
>>  +
>>  +	spi-lcd {
>>  +		compatible = "spi-gpio";
>>  +		#address-cells = <1>;
>>  +		#size-cells = <0>;
>>  +
>>  +		num-chipselects = <1>;
>>  +		cs-gpios = <&gpy4 3 GPIO_ACTIVE_HIGH>;
> LD9040 CS is active low, so this board needs probably the same fix a
> Universal C210 board: https://patchwork.kernel.org/patch/11420231/ Are
> you sure it really works now with v5.6-rcX kernels? Or you just got 
> the
> panel working only because the bootloader enabled it?

Sorry but the fix looks bogus to me. The spi-gpio driver calls 
gpiod_set_value(0) when the CS is going *active*, and 
gpiod_set_value(1) when the CS is going *inactive*. If you use the 
GPIO_ACTIVE_LOW flag, the levels are inverted, and the CS is high when 
active, which is the opposite of what you want.


>>  +		sck-gpios = <&gpy3 1 GPIO_ACTIVE_HIGH>;
>>  +		mosi-gpios = <&gpy3 3 GPIO_ACTIVE_HIGH>;
>>  +
>>  +		lcd@0 {
>>  +			compatible = "samsung,ld9040";
>>  +			reg = <0>;
>>  +
>>  +			spi-max-frequency = <1200000>;
>>  +			spi-cpol;
>>  +			spi-cpha;
>>  +
>>  +			vdd3-supply = <&vmipi_reg>;
>>  +			vci-supply = <&vcclcd_reg>;
>>  +
>>  +			reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
>>  +			power-on-delay = <10>;
>>  +			reset-delay = <10>;
>>  +
>>  +			panel-width-mm = <90>;
>>  +			panel-height-mm = <154>;
>>  +
>>  +			display-timings {
>>  +				timing {
>>  +					clock-frequency = <23492370>;
>>  +					hactive = <480>;
>>  +					vactive = <800>;
>>  +					hback-porch = <16>;
>>  +					hfront-porch = <16>;
>>  +					vback-porch = <2>;
>>  +					vfront-porch = <28>;
>>  +					hsync-len = <2>;
>>  +					vsync-len = <1>;
>>  +					hsync-active = <0>;
>>  +					vsync-active = <0>;
>>  +					de-active = <0>;
>>  +					pixelclk-active = <0>;
>>  +				};
>>  +			};
>>  +
>>  +			port {
>>  +				lcd_ep: endpoint {
>>  +					remote-endpoint = <&fimd_dpi_ep>;
>>  +				};
>>  +			};
>>  +		};
>>  +	};
>>  +
>>  +	fixed-rate-clocks {
>>  +		xxti {
>>  +			compatible = "samsung,clock-xxti";
>>  +			clock-frequency = <0>;
>>  +		};
>>  +
>>  +		xusbxti {
>>  +			compatible = "samsung,clock-xusbxti";
>>  +			clock-frequency = <24000000>;
>>  +		};
>>  +	};
>>  +
>>  +	thermal-zones {
>>  +		cpu_thermal: cpu-thermal {
>>  +			cooling-maps {
>>  +				map0 {
>>  +					/* Corresponds to 800MHz */
>>  +					cooling-device = <&cpu0 2 2>;
>>  +				};
>>  +				map1 {
>>  +					/* Corresponds to 200MHz */
>>  +					cooling-device = <&cpu0 4 4>;
>>  +				};
>>  +			};
>>  +		};
>>  +	};
>>  +
>>  +};
>>  +
>>  +&camera {
>>  +	status = "okay";
>>  +};
>>  +
>>  +&cpu0 {
>>  +	cpu0-supply = <&varm_breg>;
>>  +};
>>  +
>>  +&exynos_usbphy {
>>  +	status = "okay";
>>  +
>>  +	vbus-supply = <&safe1_sreg>;
>>  +};
>>  +
>>  +&fimc_0 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC0>, <&clock 
>> CLK_SCLK_FIMC0>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimc_1 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC1>, <&clock 
>> CLK_SCLK_FIMC1>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimc_2 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC2>, <&clock 
>> CLK_SCLK_FIMC2>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimc_3 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC3>, <&clock 
>> CLK_SCLK_FIMC3>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimd {
>>  +	status = "okay";
>>  +	#address-cells = <1>;
>>  +	#size-cells = <0>;
>>  +
>>  +	samsung,invert-vden;
>>  +	samsung,invert-vclk;
>>  +
>>  +	pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	port@3 {
>>  +		reg = <3>;
>>  +
>>  +		fimd_dpi_ep: endpoint {
>>  +			remote-endpoint = <&lcd_ep>;
>>  +		};
>>  +	};
>>  +};
>>  +
>>  +&hsotg {
>>  +	status = "okay";
>>  +
>>  +	dr_mode = "otg";
> The the host mode really works with DWC2? Afair the host mode worked
> only when it was rerouted by PHY to the EHCI (at least on 
> UniversalC210
> board, which is very similar to GS2).

I have to say that I didn't try OTG / host, but it does work fine in 
gadget mode.
I can change it to dr_mode = "peripheral" for now, if you prefer.

>>  +	vusb_d-supply = <&vusb_reg>;
>>  +	vusb_a-supply = <&vusbdac_reg>;
>>  +};
>>  +
>>  +&ehci {
>>  +	status = "okay";
>>  +
>>  +	port@0 {
>>  +		status = "okay";
>>  +	};
>>  +
>>  +	port@1 {
>>  +		status = "okay";
>>  +	};
>>  +
>>  +	port@2 {
>>  +		status = "okay";
>>  +	};
>>  +};
> 
> This is the old, obsolete exynos-ehci binding. Please remove 'port'
> nodes and use standard USB phy bindings like it has been done in the
> following patch: https://patchwork.kernel.org/patch/11060465/

Will do.

> BTW, do you really need all 3 phys/ports?

No idea!

>>  +
>>  +
>>  +&i2c_3 {
>>  +	status = "okay";
>>  +
>>  +	samsung,i2c-sda-delay = <100>;
>>  +	samsung,i2c-slave-addr = <0x10>;
>>  +	samsung,i2c-max-bus-freq = <100000>;
>>  +
>>  +	pinctrl-0 = <&i2c3_bus>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	mxt224-touchscreen@4a {
>>  +		compatible = "atmel,maxtouch";
>>  +		reg = <0x4a>;
>>  +
>>  +		interrupt-parent = <&gpx0>;
>>  +		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
>>  +
>>  +		avdd-supply = <&tsp_reg>;
>>  +		vdd-supply = <&tsp_reg>;
>>  +	};
>>  +};
>>  +
>>  +&i2c_7 {
>>  +	status = "okay";
>>  +
>>  +	samsung,i2c-sda-delay = <100>;
>>  +	samsung,i2c-slave-addr = <0x10>;
>>  +	samsung,i2c-max-bus-freq = <400000>;
>>  +
>>  +	pinctrl-0 = <&i2c7_bus>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	ak8975@c {
>>  +		compatible = "asahi-kasei,ak8975";
>>  +		reg = <0x0c>;
>>  +
>>  +		gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
>>  +	};
>>  +};
>>  +
>>  +
>>  +&i2c_5 {
>>  +	status = "okay";
>>  +
>>  +	samsung,i2c-sda-delay = <100>;
>>  +	samsung,i2c-slave-addr = <0x10>;
>>  +	samsung,i2c-max-bus-freq = <100000>;
>>  +
>>  +	pinctrl-0 = <&i2c5_bus>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	max8997_pmic@66 {
>>  +		compatible = "maxim,max8997-pmic";
>>  +		reg = <0x66>;
>>  +
>>  +		interrupts-extended = <&gpx0 7 0>, <&gpx2 3 2>;
>>  +		interrupt-parent = <&gpx0>;
>>  +		interrupts = <7 IRQ_TYPE_NONE>;
>>  +
>>  +		otg_en-gpios = <&gpx3 3 0>;
>>  +		usb_sel-gpios = <&gpl0 6 0>;
>>  +
>>  +		max8997,pmic-buck1-uses-gpio-dvs;
>>  +		max8997,pmic-buck2-uses-gpio-dvs;
>>  +		max8997,pmic-buck5-uses-gpio-dvs;
>>  +
>>  +		max8997,pmic-ignore-gpiodvs-side-effect;
>>  +		max8997,pmic-buck125-default-dvs-idx = <0>;
>>  +
>>  +		max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
>>  +						 <&gpx0 6 GPIO_ACTIVE_HIGH>,
>>  +						 <&gpl0 0 GPIO_ACTIVE_HIGH>;
>>  +
>>  +		max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
>>  +						 <1250000>, <1200000>,
>>  +						 <1150000>, <1100000>,
>>  +						 <1000000>, <950000>;
>>  +
>>  +		max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
>>  +						 <950000>,  <900000>,
>>  +						 <1100000>, <1000000>,
>>  +						 <950000>,  <900000>;
>>  +
>>  +		max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
>>  +						 <1200000>, <1200000>,
>>  +						 <1200000>, <1200000>,
>>  +						 <1200000>, <1200000>;
>>  +
>>  +		pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
>>  +		pinctrl-names = "default";
>>  +
>>  +		regulators {
>>  +			vadc_reg: LDO1 {
>>  +				regulator-name = "VADC_3.3V_C210";
>>  +				regulator-min-microvolt = <3300000>;
>>  +				regulator-max-microvolt = <3300000>;
>>  +				regulator-always-on;
>>  +
>>  +			};
>>  +			valive_reg: LDO2 {
>>  +				regulator-name = "VALIVE_1.1V_C210";
>>  +				regulator-min-microvolt = <1100000>;
>>  +				regulator-max-microvolt = <1100000>;
>>  +				regulator-always-on;
>>  +
>>  +			};
>>  +
>>  +			vusb_reg: LDO3 {
>>  +				regulator-name = "VUSB_1.1V_C210";
>>  +				regulator-min-microvolt = <1100000>;
>>  +				regulator-max-microvolt = <1100000>;
>>  +			};
>>  +
>>  +			vmipi_reg: LDO4 {
>>  +				regulator-name = "VMIPI_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vhsic_reg: LDO5 {
>>  +				regulator-name = "VHSIC_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vpda_reg: LDO6 {
>>  +				regulator-name = "VCC_1.8V_PDA";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vcam_reg: LDO7 {
>>  +				regulator-name = "CAM_ISP_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +			};
>>  +
>>  +			vusbdac_reg: LDO8 {
>>  +				regulator-name = "VUSB+VDAC_3.3V_C210";
>>  +				regulator-min-microvolt = <3300000>;
>>  +				regulator-max-microvolt = <3300000>;
>>  +			};
>>  +
>>  +			vccpda_reg: LDO9 {
>>  +				regulator-name = "VCC_2.8V_PDA";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vtouch_reg: LDO11 {
>>  +				regulator-name = "TOUCH_2.8V";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vpll_reg: LDO10 {
>>  +				regulator-name = "VPLL_1.1V";
>>  +				regulator-min-microvolt = <1100000>;
>>  +				regulator-max-microvolt = <1100000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vtcam_reg: LDO12 {
>>  +				regulator-name = "VT_CAM_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +			};
>>  +
>>  +			vcclcd_reg: LDO13 {
>>  +				regulator-name = "VCC_3.0V_LCD";
>>  +				regulator-min-microvolt = <3000000>;
>>  +				regulator-max-microvolt = <3000000>;
>>  +			};
>>  +
>>  +			vmotor_reg: LDO14 {
>>  +				regulator-name = "VCC_2.8V_MOTOR";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +			};
>>  +
>>  +			vled_reg: LDO15 {
>>  +				regulator-name = "LED_A_2.8V";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +			};
>>  +
>>  +			camsensor_reg: LDO16 {
>>  +				regulator-name = "CAM_SENSOR_IO_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +			};
>>  +
>>  +			vtf_reg: LDO17 {
>>  +				regulator-name = "VTF_2.8V";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +			};
>>  +
>>  +			vtouchled_reg: LDO18 {
>>  +				regulator-name = "TOUCH_LED_3.3V";
>>  +				regulator-min-microvolt = <2500000>;
>>  +				regulator-max-microvolt = <3300000>;
>>  +			};
>>  +
>>  +			vddq_reg: LDO21 {
>>  +				regulator-name = "VDDQ_M1M2_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			varm_breg: BUCK1 {
>>  +				//regulator-name = "VARM_1.2V_C210";
>>  +				regulator-name = "vdd_arm";
>>  +				regulator-min-microvolt = <65000>;
>>  +				regulator-max-microvolt = <2225000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vint_breg: BUCK2 {
>>  +				regulator-name = "VINT_1.1V_C210";
>>  +				regulator-min-microvolt = <65000>;
>>  +				regulator-max-microvolt = <2225000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vg3d_breg: BUCK3 {
>>  +				regulator-name = "G3D_1.1V";
>>  +				regulator-min-microvolt = <900000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			camisp_breg: BUCK4 {
>>  +				regulator-name = "CAM_ISP_CORE_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +			};
>>  +
>>  +			vmem_breg: BUCK5 {
>>  +				regulator-name = "VMEM_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vccsub_breg: BUCK7 {
>>  +				regulator-name = "VCC_SUB_2.0V";
>>  +				regulator-min-microvolt = <2000000>;
>>  +				regulator-max-microvolt = <2000000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			safe1_sreg: ESAFEOUT1 {
>>  +				regulator-name = "SAFEOUT1";
>>  +			};
>>  +
>>  +			safe2_sreg: ESAFEOUT2 {
>>  +				regulator-name = "SAFEOUT2";
>>  +				regulator-boot-on;
>>  +			};
>>  +
>>  +			charger_reg: CHARGER {
>>  +				regulator-name = "CHARGER";
>>  +				regulator-min-microamp = <60000>;
>>  +				regulator-max-microamp = <2580000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			chargercv_reg: CHARGER_CV {
>>  +				regulator-name = "CHARGER_CV";
>>  +				regulator-min-microvolt = <3800000>;
>>  +				regulator-max-microvolt = <4100000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +		};
>>  +
>>  +	};
>>  +};
>>  +
>>  +
>>  +&gpu {
>>  +	status = "okay";
>>  +
>>  +	mali-supply = <&vg3d_breg>;
>>  +	regulator-microvolt-offset = <50000>;
>>  +	regulator-microsecs-delay = <50>;
>>  +};
>>  +
>>  +
>>  +&sdhci_0 {
>>  +	status = "okay";
>>  +
>>  +	bus-width = <8>;
>>  +	non-removable;
>>  +	vmmc-supply = <&vemmc_reg>;
>>  +
>>  +	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_bus8>;
>>  +	pinctrl-names = "default";
>>  +};
>>  +
>>  +&sdhci_2 {
>>  +	status = "okay";
>>  +
>>  +	bus-width = <4>;
>>  +	cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
>>  +	vmmc-supply = <&vtf_reg>;
>>  +
>>  +	pinctrl-0 = <&sd2_clk>, <&sd2_cmd>, <&sd2_bus4>;
>>  +	pinctrl-names = "default";
>>  +};
>>  +
>>  +&ehci {
>>  +	port@0 {
>>  +		status = "okay";
>>  +	};
>>  +
>>  +	port@1 {
>>  +		status = "okay";
>>  +	};
>>  +
>>  +	port@2 {
>>  +		status = "okay";
>>  +	};
>>  +
>>  +};
> 
> This is duplicated 'ehci' node, probable an artifact from the earlier
> rebase. Please remove it.

Right, didn't even notice it.

Will remove it and send a V2.

Cheers,
-Paul

>>  +
>>  +
>>  +&sdhci_3 {
>>  +	status = "okay";
>>  +
>>  +	#address-cells = <1>;
>>  +	#size-cells = <0>;
>>  +
>>  +	non-removable;
>>  +	bus-width = <4>;
>>  +	mmc-pwrseq = <&wlan_pwrseq>;
>>  +	vmmc-supply = <&vtf_reg>;
>>  +
>>  +	pinctrl-names = "default";
>>  +	pinctrl-0 = <&sd3_clk>, <&sd3_cmd>, <&sd3_bus4>;
>>  +
>>  +	brcmf: wifi@1 {
>>  +		compatible = "brcm,bcm4330-fmac";
>>  +		reg = <1>;
>>  +
>>  +		interrupt-parent = <&gpx2>;
>>  +		interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
>>  +		interrupt-names = "host-wake";
>>  +	};
>>  +};
>>  +
>>  +
>>  +&serial_0 {
>>  +	status = "okay";
>>  +
>>  +	pinctrl-names = "default";
>>  +	pinctrl-0 = <&bt_en>, <&bt_res>, <&uart0_data>, <&uart0_fctl>;
>>  +
>>  +	bluetooth {
>>  +		compatible = "brcm,bcm4330-bt";
>>  +
>>  +		shutdown-gpios = <&gpl0 4 GPIO_ACTIVE_HIGH>;
>>  +		reset-gpios = <&gpl1 0 GPIO_ACTIVE_HIGH>;
>>  +		device-wakeup-gpios = <&gpx3 1 GPIO_ACTIVE_HIGH>;
>>  +		host-wakeup-gpios = <&gpx2 6 GPIO_ACTIVE_HIGH>;
>>  +	};
>>  +};
>>  +
>>  +&serial_1 {
>>  +	status = "okay";
>>  +};
>>  +
>>  +&serial_2 {
>>  +	status = "okay";
>>  +};
>>  +
>>  +&serial_3 {
>>  +	status = "okay";
>>  +};
>>  +
>>  +&tmu {
>>  +	status = "okay";
>>  +};
>>  +
>>  +
>>  +&pinctrl_0 {
>>  +	pinctrl-names = "default";
>>  +	pinctrl-0 = <&sleep0>;
>>  +
>>  +
>>  +	sleep0: sleep-states {
>>  +		gpa0-0 {
>>  +			samsung,pins = "gpa0-0";
>>  +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
>>  +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
>>  +		};
>>  +
>>  +		gpa0-1 {
>>  +			samsung,pins = "gpa0-1";
>>  +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT0>;
>>  +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
>>  +		};
>>  +
>>  +		gpa0-2 {
>>  +			samsung,pins = "gpa0-2";
>>  +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
>>  +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
>>  +		};
>>  +
>>  +		gpa0-3 {
>>  +			samsung,pins = "gpa0-3";
>>  +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT1>;
>>  +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
>>  +		};
>>  +	};
>>  +};
>>  +
>>  +&pinctrl_1 {
>>  +	mhl_int: mhl-int {
>>  +		samsung,pins = "gpf3-5";
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>  +	};
>>  +
>>  +	i2c_mhl_bus: i2c-mhl-bus {
>>  +		samsung,pins = "gpf0-4", "gpf0-6";
>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
>>  +	};
>>  +
>>  +	usb_sel: usb-sel {
>>  +		samsung,pins = "gpl0-6";
>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
>>  +		samsung,pin-val = <0>;
>>  +	};
>>  +
>>  +	bt_en: bt-en {
>>  +		samsung,pins = "gpl0-4";
>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
>>  +		samsung,pin-val = <0>;
>>  +	};
>>  +
>>  +	bt_res: bt-res {
>>  +		samsung,pins = "gpl1-0";
>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
>>  +		samsung,pin-val = <0>;
>>  +	};
>>  +
>>  +
>>  +	otg_gp: otg-gp {
>>  +		samsung,pins = "gpx3-3";
>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
>>  +		samsung,pin-val = <0>;
>>  +	};
>>  +
>>  +	mag_mhl_gpio: mag-mhl-gpio {
>>  +		samsung,pins = "gpd0-2";
>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>  +	};
>>  +
>>  +
>>  +	max8997_irq: max8997-irq {
>>  +		samsung,pins = "gpx0-7";
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>  +	};
>>  +
>>  +	max17042_fuel_irq: max17042-fuel-irq {
>>  +		samsung,pins = "gpx2-3";
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>  +	};
>>  +
>>  +	tsp224_irq: tsp224-irq {
>>  +		samsung,pins = "gpx0-4";
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
>>  +	};
>>  +};
> 
> Best regards
> --
> Marek Szyprowski, PhD
> Samsung R&D Institute Poland
> 



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
@ 2020-03-13 14:29       ` Paul Cercueil
  0 siblings, 0 replies; 35+ messages in thread
From: Paul Cercueil @ 2020-03-13 14:29 UTC (permalink / raw)
  To: Marek Szyprowski
  Cc: Mark Rutland, devicetree, Stenkin Evgeniy, linux-samsung-soc,
	linux-kernel, Krzysztof Kozlowski, Rob Herring, Kukjin Kim,
	linux-arm-kernel

Hi Marek,


Le ven., mars 13, 2020 at 09:03, Marek Szyprowski 
<m.szyprowski@samsung.com> a écrit :
> 
> On 12.03.2020 16:34, Paul Cercueil wrote:
>>  From: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>> 
>>  Add devicetree file for the Exynos 4210 based Galaxy S2 (i9100 
>> version).
>> 
>>  Signed-off-by: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>>  Signed-off-by: Paul Cercueil <paul@crapouillou.net>
>>  ---
>>    arch/arm/boot/dts/Makefile             |   1 +
>>    arch/arm/boot/dts/exynos4210-i9100.dts | 816 
>> +++++++++++++++++++++++++
>>    2 files changed, 817 insertions(+)
>>    create mode 100644 arch/arm/boot/dts/exynos4210-i9100.dts
>> 
>>  diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
>>  index d6546d2676b9..522436d30690 100644
>>  --- a/arch/arm/boot/dts/Makefile
>>  +++ b/arch/arm/boot/dts/Makefile
>>  @@ -181,6 +181,7 @@ dtb-$(CONFIG_ARCH_EXYNOS3) += \
>>    	exynos3250-monk.dtb \
>>    	exynos3250-rinato.dtb
>>    dtb-$(CONFIG_ARCH_EXYNOS4) += \
>>  +	exynos4210-i9100.dtb \
>>    	exynos4210-origen.dtb \
>>    	exynos4210-smdkv310.dtb \
>>    	exynos4210-trats.dtb \
>>  diff --git a/arch/arm/boot/dts/exynos4210-i9100.dts 
>> b/arch/arm/boot/dts/exynos4210-i9100.dts
>>  new file mode 100644
>>  index 000000000000..c218e34959be
>>  --- /dev/null
>>  +++ b/arch/arm/boot/dts/exynos4210-i9100.dts
>>  @@ -0,0 +1,816 @@
>>  +// SPDX-License-Identifier: GPL-2.0
>>  +/*
>>  + * Samsung's Exynos4210 based Galaxy S2 (i9100 version) device tree
>>  + *
>>  + * Copyright (c) 2012 Samsung Electronics Co., Ltd.
>>  + *		http://www.samsung.com
>>  + * Copyright (c) 2020 Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>>  + * Copyright (c) 2020 Paul Cercueil <paul@crapouillou.net>
>>  + *
>>  + * Device tree source file for Samsung's Galaxy S2 smartphone 
>> (i9100 version),
>>  + * which is based on Samsung's Exynos4210 SoC.
>>  + */
>>  +
>>  +/dts-v1/;
>>  +#include "exynos4210.dtsi"
>>  +#include "exynos4412-ppmu-common.dtsi"
>>  +
>>  +#include <dt-bindings/gpio/gpio.h>
>>  +#include <dt-bindings/input/linux-event-codes.h>
>>  +
>>  +/ {
>>  +	model = "Samsung Galaxy S2 (i9100)";
>>  +	compatible = "samsung,i9100", "samsung,exynos4210", 
>> "samsung,exynos4";
>>  +
>>  +
>>  +	memory@40000000 {
>>  +		device_type = "memory";
>>  +		reg = <0x40000000 0x40000000>;
>>  +	};
>>  +
>>  +	vemmc_reg: regulator-0 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "VMEM_VDD_2.8V";
>>  +		regulator-min-microvolt = <2800000>;
>>  +		regulator-max-microvolt = <2800000>;
>>  +		gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	tsp_reg: regulator-1 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "TSP_FIXED_VOLTAGES";
>>  +		regulator-min-microvolt = <3300000>;
>>  +		regulator-max-microvolt = <3300000>;
>>  +		gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
>>  +		startup-delay-us = <70000>;
>>  +		enable-active-high;
>>  +		regulator-boot-on;
>>  +		regulator-always-on;
>>  +	};
>>  +
>>  +	cam_af_28v_reg: regulator-3 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "8M_AF_2.8V_EN";
>>  +		regulator-min-microvolt = <2800000>;
>>  +		regulator-max-microvolt = <2800000>;
>>  +		gpio = <&gpk1 1 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	cam_io_en_reg: regulator-4 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "CAM_IO_EN";
>>  +		regulator-min-microvolt = <2800000>;
>>  +		regulator-max-microvolt = <2800000>;
>>  +		gpio = <&gpe2 1 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	cam_io_12v_reg: regulator-5 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "8M_1.2V_EN";
>>  +		regulator-min-microvolt = <1200000>;
>>  +		regulator-max-microvolt = <1200000>;
>>  +		gpio = <&gpe2 5 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	vt_core_15v_reg: regulator-6 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "VT_CORE_1.5V";
>>  +		regulator-min-microvolt = <1500000>;
>>  +		regulator-max-microvolt = <1500000>;
>>  +		gpio = <&gpe2 2 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	gpio-keys {
>>  +		compatible = "gpio-keys";
>>  +
>>  +		vol-down {
>>  +			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_VOLUMEDOWN>;
>>  +			label = "volume down";
>>  +			debounce-interval = <10>;
>>  +		};
>>  +
>>  +		vol-up {
>>  +			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_VOLUMEUP>;
>>  +			label = "volume up";
>>  +			debounce-interval = <10>;
>>  +		};
>>  +
>>  +		power {
>>  +			gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_POWER>;
>>  +			label = "power";
>>  +			debounce-interval = <10>;
>>  +			wakeup-source;
>>  +		};
>>  +
>>  +		ok {
>>  +			gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_OK>;
>>  +			label = "ok";
>>  +			debounce-interval = <10>;
>>  +		};
>>  +	};
>>  +
>>  +	wlan_pwrseq: sdhci3-pwrseq {
>>  +		compatible = "mmc-pwrseq-simple";
>>  +		reset-gpios = <&gpl1 2 GPIO_ACTIVE_LOW>;
>>  +	};
>>  +
>>  +	i2c_max17042_fuel: i2c-gpio-3 {
>>  +		compatible = "i2c-gpio";
>>  +		#address-cells = <1>;
>>  +		#size-cells = <0>;
>>  +
>>  +		sda-gpios = <&gpy4 0 GPIO_ACTIVE_HIGH>;
>>  +		scl-gpios = <&gpy4 1 GPIO_ACTIVE_HIGH>;
>>  +		i2c-gpio,delay-us = <5>;
>>  +
>>  +		battery@36 {
>>  +			compatible = "maxim,max17042";
>>  +
>>  +			interrupt-parent = <&gpx2>;
>>  +			interrupts = <3 2>;
>>  +
>>  +			pinctrl-0 = <&max17042_fuel_irq>;
>>  +			pinctrl-names = "default";
>>  +
>>  +			reg = <0x36>;
>>  +			maxim,over-heat-temp = <700>;
>>  +			maxim,over-volt = <4500>;
>>  +
>>  +		};
>>  +	};
>>  +
>>  +	spi-lcd {
>>  +		compatible = "spi-gpio";
>>  +		#address-cells = <1>;
>>  +		#size-cells = <0>;
>>  +
>>  +		num-chipselects = <1>;
>>  +		cs-gpios = <&gpy4 3 GPIO_ACTIVE_HIGH>;
> LD9040 CS is active low, so this board needs probably the same fix a
> Universal C210 board: https://patchwork.kernel.org/patch/11420231/ Are
> you sure it really works now with v5.6-rcX kernels? Or you just got 
> the
> panel working only because the bootloader enabled it?

Sorry but the fix looks bogus to me. The spi-gpio driver calls 
gpiod_set_value(0) when the CS is going *active*, and 
gpiod_set_value(1) when the CS is going *inactive*. If you use the 
GPIO_ACTIVE_LOW flag, the levels are inverted, and the CS is high when 
active, which is the opposite of what you want.


>>  +		sck-gpios = <&gpy3 1 GPIO_ACTIVE_HIGH>;
>>  +		mosi-gpios = <&gpy3 3 GPIO_ACTIVE_HIGH>;
>>  +
>>  +		lcd@0 {
>>  +			compatible = "samsung,ld9040";
>>  +			reg = <0>;
>>  +
>>  +			spi-max-frequency = <1200000>;
>>  +			spi-cpol;
>>  +			spi-cpha;
>>  +
>>  +			vdd3-supply = <&vmipi_reg>;
>>  +			vci-supply = <&vcclcd_reg>;
>>  +
>>  +			reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
>>  +			power-on-delay = <10>;
>>  +			reset-delay = <10>;
>>  +
>>  +			panel-width-mm = <90>;
>>  +			panel-height-mm = <154>;
>>  +
>>  +			display-timings {
>>  +				timing {
>>  +					clock-frequency = <23492370>;
>>  +					hactive = <480>;
>>  +					vactive = <800>;
>>  +					hback-porch = <16>;
>>  +					hfront-porch = <16>;
>>  +					vback-porch = <2>;
>>  +					vfront-porch = <28>;
>>  +					hsync-len = <2>;
>>  +					vsync-len = <1>;
>>  +					hsync-active = <0>;
>>  +					vsync-active = <0>;
>>  +					de-active = <0>;
>>  +					pixelclk-active = <0>;
>>  +				};
>>  +			};
>>  +
>>  +			port {
>>  +				lcd_ep: endpoint {
>>  +					remote-endpoint = <&fimd_dpi_ep>;
>>  +				};
>>  +			};
>>  +		};
>>  +	};
>>  +
>>  +	fixed-rate-clocks {
>>  +		xxti {
>>  +			compatible = "samsung,clock-xxti";
>>  +			clock-frequency = <0>;
>>  +		};
>>  +
>>  +		xusbxti {
>>  +			compatible = "samsung,clock-xusbxti";
>>  +			clock-frequency = <24000000>;
>>  +		};
>>  +	};
>>  +
>>  +	thermal-zones {
>>  +		cpu_thermal: cpu-thermal {
>>  +			cooling-maps {
>>  +				map0 {
>>  +					/* Corresponds to 800MHz */
>>  +					cooling-device = <&cpu0 2 2>;
>>  +				};
>>  +				map1 {
>>  +					/* Corresponds to 200MHz */
>>  +					cooling-device = <&cpu0 4 4>;
>>  +				};
>>  +			};
>>  +		};
>>  +	};
>>  +
>>  +};
>>  +
>>  +&camera {
>>  +	status = "okay";
>>  +};
>>  +
>>  +&cpu0 {
>>  +	cpu0-supply = <&varm_breg>;
>>  +};
>>  +
>>  +&exynos_usbphy {
>>  +	status = "okay";
>>  +
>>  +	vbus-supply = <&safe1_sreg>;
>>  +};
>>  +
>>  +&fimc_0 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC0>, <&clock 
>> CLK_SCLK_FIMC0>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimc_1 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC1>, <&clock 
>> CLK_SCLK_FIMC1>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimc_2 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC2>, <&clock 
>> CLK_SCLK_FIMC2>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimc_3 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC3>, <&clock 
>> CLK_SCLK_FIMC3>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimd {
>>  +	status = "okay";
>>  +	#address-cells = <1>;
>>  +	#size-cells = <0>;
>>  +
>>  +	samsung,invert-vden;
>>  +	samsung,invert-vclk;
>>  +
>>  +	pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	port@3 {
>>  +		reg = <3>;
>>  +
>>  +		fimd_dpi_ep: endpoint {
>>  +			remote-endpoint = <&lcd_ep>;
>>  +		};
>>  +	};
>>  +};
>>  +
>>  +&hsotg {
>>  +	status = "okay";
>>  +
>>  +	dr_mode = "otg";
> The the host mode really works with DWC2? Afair the host mode worked
> only when it was rerouted by PHY to the EHCI (at least on 
> UniversalC210
> board, which is very similar to GS2).

I have to say that I didn't try OTG / host, but it does work fine in 
gadget mode.
I can change it to dr_mode = "peripheral" for now, if you prefer.

>>  +	vusb_d-supply = <&vusb_reg>;
>>  +	vusb_a-supply = <&vusbdac_reg>;
>>  +};
>>  +
>>  +&ehci {
>>  +	status = "okay";
>>  +
>>  +	port@0 {
>>  +		status = "okay";
>>  +	};
>>  +
>>  +	port@1 {
>>  +		status = "okay";
>>  +	};
>>  +
>>  +	port@2 {
>>  +		status = "okay";
>>  +	};
>>  +};
> 
> This is the old, obsolete exynos-ehci binding. Please remove 'port'
> nodes and use standard USB phy bindings like it has been done in the
> following patch: https://patchwork.kernel.org/patch/11060465/

Will do.

> BTW, do you really need all 3 phys/ports?

No idea!

>>  +
>>  +
>>  +&i2c_3 {
>>  +	status = "okay";
>>  +
>>  +	samsung,i2c-sda-delay = <100>;
>>  +	samsung,i2c-slave-addr = <0x10>;
>>  +	samsung,i2c-max-bus-freq = <100000>;
>>  +
>>  +	pinctrl-0 = <&i2c3_bus>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	mxt224-touchscreen@4a {
>>  +		compatible = "atmel,maxtouch";
>>  +		reg = <0x4a>;
>>  +
>>  +		interrupt-parent = <&gpx0>;
>>  +		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
>>  +
>>  +		avdd-supply = <&tsp_reg>;
>>  +		vdd-supply = <&tsp_reg>;
>>  +	};
>>  +};
>>  +
>>  +&i2c_7 {
>>  +	status = "okay";
>>  +
>>  +	samsung,i2c-sda-delay = <100>;
>>  +	samsung,i2c-slave-addr = <0x10>;
>>  +	samsung,i2c-max-bus-freq = <400000>;
>>  +
>>  +	pinctrl-0 = <&i2c7_bus>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	ak8975@c {
>>  +		compatible = "asahi-kasei,ak8975";
>>  +		reg = <0x0c>;
>>  +
>>  +		gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
>>  +	};
>>  +};
>>  +
>>  +
>>  +&i2c_5 {
>>  +	status = "okay";
>>  +
>>  +	samsung,i2c-sda-delay = <100>;
>>  +	samsung,i2c-slave-addr = <0x10>;
>>  +	samsung,i2c-max-bus-freq = <100000>;
>>  +
>>  +	pinctrl-0 = <&i2c5_bus>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	max8997_pmic@66 {
>>  +		compatible = "maxim,max8997-pmic";
>>  +		reg = <0x66>;
>>  +
>>  +		interrupts-extended = <&gpx0 7 0>, <&gpx2 3 2>;
>>  +		interrupt-parent = <&gpx0>;
>>  +		interrupts = <7 IRQ_TYPE_NONE>;
>>  +
>>  +		otg_en-gpios = <&gpx3 3 0>;
>>  +		usb_sel-gpios = <&gpl0 6 0>;
>>  +
>>  +		max8997,pmic-buck1-uses-gpio-dvs;
>>  +		max8997,pmic-buck2-uses-gpio-dvs;
>>  +		max8997,pmic-buck5-uses-gpio-dvs;
>>  +
>>  +		max8997,pmic-ignore-gpiodvs-side-effect;
>>  +		max8997,pmic-buck125-default-dvs-idx = <0>;
>>  +
>>  +		max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
>>  +						 <&gpx0 6 GPIO_ACTIVE_HIGH>,
>>  +						 <&gpl0 0 GPIO_ACTIVE_HIGH>;
>>  +
>>  +		max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
>>  +						 <1250000>, <1200000>,
>>  +						 <1150000>, <1100000>,
>>  +						 <1000000>, <950000>;
>>  +
>>  +		max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
>>  +						 <950000>,  <900000>,
>>  +						 <1100000>, <1000000>,
>>  +						 <950000>,  <900000>;
>>  +
>>  +		max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
>>  +						 <1200000>, <1200000>,
>>  +						 <1200000>, <1200000>,
>>  +						 <1200000>, <1200000>;
>>  +
>>  +		pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
>>  +		pinctrl-names = "default";
>>  +
>>  +		regulators {
>>  +			vadc_reg: LDO1 {
>>  +				regulator-name = "VADC_3.3V_C210";
>>  +				regulator-min-microvolt = <3300000>;
>>  +				regulator-max-microvolt = <3300000>;
>>  +				regulator-always-on;
>>  +
>>  +			};
>>  +			valive_reg: LDO2 {
>>  +				regulator-name = "VALIVE_1.1V_C210";
>>  +				regulator-min-microvolt = <1100000>;
>>  +				regulator-max-microvolt = <1100000>;
>>  +				regulator-always-on;
>>  +
>>  +			};
>>  +
>>  +			vusb_reg: LDO3 {
>>  +				regulator-name = "VUSB_1.1V_C210";
>>  +				regulator-min-microvolt = <1100000>;
>>  +				regulator-max-microvolt = <1100000>;
>>  +			};
>>  +
>>  +			vmipi_reg: LDO4 {
>>  +				regulator-name = "VMIPI_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vhsic_reg: LDO5 {
>>  +				regulator-name = "VHSIC_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vpda_reg: LDO6 {
>>  +				regulator-name = "VCC_1.8V_PDA";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vcam_reg: LDO7 {
>>  +				regulator-name = "CAM_ISP_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +			};
>>  +
>>  +			vusbdac_reg: LDO8 {
>>  +				regulator-name = "VUSB+VDAC_3.3V_C210";
>>  +				regulator-min-microvolt = <3300000>;
>>  +				regulator-max-microvolt = <3300000>;
>>  +			};
>>  +
>>  +			vccpda_reg: LDO9 {
>>  +				regulator-name = "VCC_2.8V_PDA";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vtouch_reg: LDO11 {
>>  +				regulator-name = "TOUCH_2.8V";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vpll_reg: LDO10 {
>>  +				regulator-name = "VPLL_1.1V";
>>  +				regulator-min-microvolt = <1100000>;
>>  +				regulator-max-microvolt = <1100000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vtcam_reg: LDO12 {
>>  +				regulator-name = "VT_CAM_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +			};
>>  +
>>  +			vcclcd_reg: LDO13 {
>>  +				regulator-name = "VCC_3.0V_LCD";
>>  +				regulator-min-microvolt = <3000000>;
>>  +				regulator-max-microvolt = <3000000>;
>>  +			};
>>  +
>>  +			vmotor_reg: LDO14 {
>>  +				regulator-name = "VCC_2.8V_MOTOR";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +			};
>>  +
>>  +			vled_reg: LDO15 {
>>  +				regulator-name = "LED_A_2.8V";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +			};
>>  +
>>  +			camsensor_reg: LDO16 {
>>  +				regulator-name = "CAM_SENSOR_IO_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +			};
>>  +
>>  +			vtf_reg: LDO17 {
>>  +				regulator-name = "VTF_2.8V";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +			};
>>  +
>>  +			vtouchled_reg: LDO18 {
>>  +				regulator-name = "TOUCH_LED_3.3V";
>>  +				regulator-min-microvolt = <2500000>;
>>  +				regulator-max-microvolt = <3300000>;
>>  +			};
>>  +
>>  +			vddq_reg: LDO21 {
>>  +				regulator-name = "VDDQ_M1M2_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			varm_breg: BUCK1 {
>>  +				//regulator-name = "VARM_1.2V_C210";
>>  +				regulator-name = "vdd_arm";
>>  +				regulator-min-microvolt = <65000>;
>>  +				regulator-max-microvolt = <2225000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vint_breg: BUCK2 {
>>  +				regulator-name = "VINT_1.1V_C210";
>>  +				regulator-min-microvolt = <65000>;
>>  +				regulator-max-microvolt = <2225000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vg3d_breg: BUCK3 {
>>  +				regulator-name = "G3D_1.1V";
>>  +				regulator-min-microvolt = <900000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			camisp_breg: BUCK4 {
>>  +				regulator-name = "CAM_ISP_CORE_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +			};
>>  +
>>  +			vmem_breg: BUCK5 {
>>  +				regulator-name = "VMEM_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vccsub_breg: BUCK7 {
>>  +				regulator-name = "VCC_SUB_2.0V";
>>  +				regulator-min-microvolt = <2000000>;
>>  +				regulator-max-microvolt = <2000000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			safe1_sreg: ESAFEOUT1 {
>>  +				regulator-name = "SAFEOUT1";
>>  +			};
>>  +
>>  +			safe2_sreg: ESAFEOUT2 {
>>  +				regulator-name = "SAFEOUT2";
>>  +				regulator-boot-on;
>>  +			};
>>  +
>>  +			charger_reg: CHARGER {
>>  +				regulator-name = "CHARGER";
>>  +				regulator-min-microamp = <60000>;
>>  +				regulator-max-microamp = <2580000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			chargercv_reg: CHARGER_CV {
>>  +				regulator-name = "CHARGER_CV";
>>  +				regulator-min-microvolt = <3800000>;
>>  +				regulator-max-microvolt = <4100000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +		};
>>  +
>>  +	};
>>  +};
>>  +
>>  +
>>  +&gpu {
>>  +	status = "okay";
>>  +
>>  +	mali-supply = <&vg3d_breg>;
>>  +	regulator-microvolt-offset = <50000>;
>>  +	regulator-microsecs-delay = <50>;
>>  +};
>>  +
>>  +
>>  +&sdhci_0 {
>>  +	status = "okay";
>>  +
>>  +	bus-width = <8>;
>>  +	non-removable;
>>  +	vmmc-supply = <&vemmc_reg>;
>>  +
>>  +	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_bus8>;
>>  +	pinctrl-names = "default";
>>  +};
>>  +
>>  +&sdhci_2 {
>>  +	status = "okay";
>>  +
>>  +	bus-width = <4>;
>>  +	cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
>>  +	vmmc-supply = <&vtf_reg>;
>>  +
>>  +	pinctrl-0 = <&sd2_clk>, <&sd2_cmd>, <&sd2_bus4>;
>>  +	pinctrl-names = "default";
>>  +};
>>  +
>>  +&ehci {
>>  +	port@0 {
>>  +		status = "okay";
>>  +	};
>>  +
>>  +	port@1 {
>>  +		status = "okay";
>>  +	};
>>  +
>>  +	port@2 {
>>  +		status = "okay";
>>  +	};
>>  +
>>  +};
> 
> This is duplicated 'ehci' node, probable an artifact from the earlier
> rebase. Please remove it.

Right, didn't even notice it.

Will remove it and send a V2.

Cheers,
-Paul

>>  +
>>  +
>>  +&sdhci_3 {
>>  +	status = "okay";
>>  +
>>  +	#address-cells = <1>;
>>  +	#size-cells = <0>;
>>  +
>>  +	non-removable;
>>  +	bus-width = <4>;
>>  +	mmc-pwrseq = <&wlan_pwrseq>;
>>  +	vmmc-supply = <&vtf_reg>;
>>  +
>>  +	pinctrl-names = "default";
>>  +	pinctrl-0 = <&sd3_clk>, <&sd3_cmd>, <&sd3_bus4>;
>>  +
>>  +	brcmf: wifi@1 {
>>  +		compatible = "brcm,bcm4330-fmac";
>>  +		reg = <1>;
>>  +
>>  +		interrupt-parent = <&gpx2>;
>>  +		interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
>>  +		interrupt-names = "host-wake";
>>  +	};
>>  +};
>>  +
>>  +
>>  +&serial_0 {
>>  +	status = "okay";
>>  +
>>  +	pinctrl-names = "default";
>>  +	pinctrl-0 = <&bt_en>, <&bt_res>, <&uart0_data>, <&uart0_fctl>;
>>  +
>>  +	bluetooth {
>>  +		compatible = "brcm,bcm4330-bt";
>>  +
>>  +		shutdown-gpios = <&gpl0 4 GPIO_ACTIVE_HIGH>;
>>  +		reset-gpios = <&gpl1 0 GPIO_ACTIVE_HIGH>;
>>  +		device-wakeup-gpios = <&gpx3 1 GPIO_ACTIVE_HIGH>;
>>  +		host-wakeup-gpios = <&gpx2 6 GPIO_ACTIVE_HIGH>;
>>  +	};
>>  +};
>>  +
>>  +&serial_1 {
>>  +	status = "okay";
>>  +};
>>  +
>>  +&serial_2 {
>>  +	status = "okay";
>>  +};
>>  +
>>  +&serial_3 {
>>  +	status = "okay";
>>  +};
>>  +
>>  +&tmu {
>>  +	status = "okay";
>>  +};
>>  +
>>  +
>>  +&pinctrl_0 {
>>  +	pinctrl-names = "default";
>>  +	pinctrl-0 = <&sleep0>;
>>  +
>>  +
>>  +	sleep0: sleep-states {
>>  +		gpa0-0 {
>>  +			samsung,pins = "gpa0-0";
>>  +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
>>  +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
>>  +		};
>>  +
>>  +		gpa0-1 {
>>  +			samsung,pins = "gpa0-1";
>>  +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT0>;
>>  +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
>>  +		};
>>  +
>>  +		gpa0-2 {
>>  +			samsung,pins = "gpa0-2";
>>  +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
>>  +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
>>  +		};
>>  +
>>  +		gpa0-3 {
>>  +			samsung,pins = "gpa0-3";
>>  +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT1>;
>>  +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
>>  +		};
>>  +	};
>>  +};
>>  +
>>  +&pinctrl_1 {
>>  +	mhl_int: mhl-int {
>>  +		samsung,pins = "gpf3-5";
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>  +	};
>>  +
>>  +	i2c_mhl_bus: i2c-mhl-bus {
>>  +		samsung,pins = "gpf0-4", "gpf0-6";
>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
>>  +	};
>>  +
>>  +	usb_sel: usb-sel {
>>  +		samsung,pins = "gpl0-6";
>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
>>  +		samsung,pin-val = <0>;
>>  +	};
>>  +
>>  +	bt_en: bt-en {
>>  +		samsung,pins = "gpl0-4";
>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
>>  +		samsung,pin-val = <0>;
>>  +	};
>>  +
>>  +	bt_res: bt-res {
>>  +		samsung,pins = "gpl1-0";
>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
>>  +		samsung,pin-val = <0>;
>>  +	};
>>  +
>>  +
>>  +	otg_gp: otg-gp {
>>  +		samsung,pins = "gpx3-3";
>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
>>  +		samsung,pin-val = <0>;
>>  +	};
>>  +
>>  +	mag_mhl_gpio: mag-mhl-gpio {
>>  +		samsung,pins = "gpd0-2";
>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>  +	};
>>  +
>>  +
>>  +	max8997_irq: max8997-irq {
>>  +		samsung,pins = "gpx0-7";
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>  +	};
>>  +
>>  +	max17042_fuel_irq: max17042-fuel-irq {
>>  +		samsung,pins = "gpx2-3";
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>  +	};
>>  +
>>  +	tsp224_irq: tsp224-irq {
>>  +		samsung,pins = "gpx0-4";
>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
>>  +	};
>>  +};
> 
> Best regards
> --
> Marek Szyprowski, PhD
> Samsung R&D Institute Poland
> 



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
  2020-03-13  9:00     ` Krzysztof Kozlowski
@ 2020-03-13 14:33       ` Paul Cercueil
  -1 siblings, 0 replies; 35+ messages in thread
From: Paul Cercueil @ 2020-03-13 14:33 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Marek Szyprowski, Kukjin Kim, Rob Herring, Mark Rutland,
	Stenkin Evgeniy, linux-arm-kernel, linux-samsung-soc, devicetree,
	linux-kernel

Hi Krzysztof,


Le ven., mars 13, 2020 at 10:00, Krzysztof Kozlowski <krzk@kernel.org> 
a écrit :
> On Thu, Mar 12, 2020 at 04:34:11PM +0100, Paul Cercueil wrote:
>>  From: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>> 
>>  Add devicetree file for the Exynos 4210 based Galaxy S2 (i9100 
>> version).
> 
> Thanks for the patch!
> 
> It is an GT-I9100.
> 
> +Cc Marek (I have few questions further)
> 
> 
>> 
>>  Signed-off-by: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>>  Signed-off-by: Paul Cercueil <paul@crapouillou.net>
>>  ---
>>   arch/arm/boot/dts/Makefile             |   1 +
>>   arch/arm/boot/dts/exynos4210-i9100.dts | 816 
>> +++++++++++++++++++++++++
>>   2 files changed, 817 insertions(+)
>>   create mode 100644 arch/arm/boot/dts/exynos4210-i9100.dts
>> 
>>  diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
>>  index d6546d2676b9..522436d30690 100644
>>  --- a/arch/arm/boot/dts/Makefile
>>  +++ b/arch/arm/boot/dts/Makefile
>>  @@ -181,6 +181,7 @@ dtb-$(CONFIG_ARCH_EXYNOS3) += \
>>   	exynos3250-monk.dtb \
>>   	exynos3250-rinato.dtb
>>   dtb-$(CONFIG_ARCH_EXYNOS4) += \
>>  +	exynos4210-i9100.dtb \
>>   	exynos4210-origen.dtb \
>>   	exynos4210-smdkv310.dtb \
>>   	exynos4210-trats.dtb \
>>  diff --git a/arch/arm/boot/dts/exynos4210-i9100.dts 
>> b/arch/arm/boot/dts/exynos4210-i9100.dts
>>  new file mode 100644
>>  index 000000000000..c218e34959be
>>  --- /dev/null
>>  +++ b/arch/arm/boot/dts/exynos4210-i9100.dts
>>  @@ -0,0 +1,816 @@
>>  +// SPDX-License-Identifier: GPL-2.0
>>  +/*
>>  + * Samsung's Exynos4210 based Galaxy S2 (i9100 version) device tree
> 
> Ditto
> 
>>  + *
>>  + * Copyright (c) 2012 Samsung Electronics Co., Ltd.
>>  + *		http://www.samsung.com
>>  + * Copyright (c) 2020 Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>>  + * Copyright (c) 2020 Paul Cercueil <paul@crapouillou.net>
>>  + *
>>  + * Device tree source file for Samsung's Galaxy S2 smartphone 
>> (i9100 version),
>>  + * which is based on Samsung's Exynos4210 SoC.
> 
> Duplicated description, you mentioned it before.
> 
>>  + */
>>  +
>>  +/dts-v1/;
>>  +#include "exynos4210.dtsi"
>>  +#include "exynos4412-ppmu-common.dtsi"
>>  +
>>  +#include <dt-bindings/gpio/gpio.h>
>>  +#include <dt-bindings/input/linux-event-codes.h>
>>  +
>>  +/ {
>>  +	model = "Samsung Galaxy S2 (i9100)";
> 
> GT-I9100
> 
>>  +	compatible = "samsung,i9100", "samsung,exynos4210", 
>> "samsung,exynos4";
> 
> I think it shares a lot with Trats board...
> 
> Marek, how similar these
> designs are? Maybe it is worth to split some parts and make common 
> part?

I can try to do it, but it'll be only by comparing the devicetree files.

>>  +
>>  +
>>  +	memory@40000000 {
>>  +		device_type = "memory";
>>  +		reg = <0x40000000 0x40000000>;
>>  +	};
>>  +
> 
> You do not have a chosen node, at least for stdout serial selection.
> Probably you should have one... bootargs I guess could come from
> bootloader.

Problem is, I have no idea which UART is available via the USB jig :)

>>  +	vemmc_reg: regulator-0 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "VMEM_VDD_2.8V";
>>  +		regulator-min-microvolt = <2800000>;
>>  +		regulator-max-microvolt = <2800000>;
>>  +		gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
> 
> This looks like a stub/fake regulator. Probably it shoould be replaced
> with proper regulator coming from PMIC (few seems to be missing 
> there).
> 
> I don't have the schematics so I cannot judge... I see Trats has the
> same.
> 
> Marek, mayybe you know, is it really a separate regulator?
> 
>>  +	};
>>  +
>>  +	tsp_reg: regulator-1 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "TSP_FIXED_VOLTAGES";
>>  +		regulator-min-microvolt = <3300000>;
>>  +		regulator-max-microvolt = <3300000>;
>>  +		gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
>>  +		startup-delay-us = <70000>;
>>  +		enable-active-high;
>>  +		regulator-boot-on;
>>  +		regulator-always-on;
> 
> always-on and boot-on should not be needed. You have a consumer for 
> this
> regulator.
> 
>>  +	};
>>  +
>>  +	cam_af_28v_reg: regulator-3 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "8M_AF_2.8V_EN";
>>  +		regulator-min-microvolt = <2800000>;
>>  +		regulator-max-microvolt = <2800000>;
>>  +		gpio = <&gpk1 1 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	cam_io_en_reg: regulator-4 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "CAM_IO_EN";
>>  +		regulator-min-microvolt = <2800000>;
>>  +		regulator-max-microvolt = <2800000>;
>>  +		gpio = <&gpe2 1 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	cam_io_12v_reg: regulator-5 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "8M_1.2V_EN";
>>  +		regulator-min-microvolt = <1200000>;
>>  +		regulator-max-microvolt = <1200000>;
>>  +		gpio = <&gpe2 5 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	vt_core_15v_reg: regulator-6 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "VT_CORE_1.5V";
>>  +		regulator-min-microvolt = <1500000>;
>>  +		regulator-max-microvolt = <1500000>;
>>  +		gpio = <&gpe2 2 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	gpio-keys {
>>  +		compatible = "gpio-keys";
>>  +
>>  +		vol-down {
>>  +			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_VOLUMEDOWN>;
>>  +			label = "volume down";
>>  +			debounce-interval = <10>;
>>  +		};
>>  +
>>  +		vol-up {
>>  +			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_VOLUMEUP>;
>>  +			label = "volume up";
>>  +			debounce-interval = <10>;
>>  +		};
>>  +
>>  +		power {
>>  +			gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_POWER>;
>>  +			label = "power";
>>  +			debounce-interval = <10>;
>>  +			wakeup-source;
>>  +		};
>>  +
>>  +		ok {
>>  +			gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_OK>;
>>  +			label = "ok";
>>  +			debounce-interval = <10>;
>>  +		};
>>  +	};
>>  +
>>  +	wlan_pwrseq: sdhci3-pwrseq {
>>  +		compatible = "mmc-pwrseq-simple";
>>  +		reset-gpios = <&gpl1 2 GPIO_ACTIVE_LOW>;
>>  +	};
>>  +
>>  +	i2c_max17042_fuel: i2c-gpio-3 {
> 
> i2c-gpio-3 -> i2c-gpio
> 
>>  +		compatible = "i2c-gpio";
>>  +		#address-cells = <1>;
>>  +		#size-cells = <0>;
>>  +
>>  +		sda-gpios = <&gpy4 0 GPIO_ACTIVE_HIGH>;
>>  +		scl-gpios = <&gpy4 1 GPIO_ACTIVE_HIGH>;
>>  +		i2c-gpio,delay-us = <5>;
>>  +
>>  +		battery@36 {
>>  +			compatible = "maxim,max17042";
>>  +
>>  +			interrupt-parent = <&gpx2>;
>>  +			interrupts = <3 2>;
> 
> s/2/IRQ_TYPE_EDGE_FALLING/
> 
>>  +
>>  +			pinctrl-0 = <&max17042_fuel_irq>;
>>  +			pinctrl-names = "default";
>>  +
>>  +			reg = <0x36>;
>>  +			maxim,over-heat-temp = <700>;
>>  +			maxim,over-volt = <4500>;
>>  +
> 
> Remove empty line.
> 
>>  +		};
>>  +	};
>>  +
>>  +	spi-lcd {
>>  +		compatible = "spi-gpio";
>>  +		#address-cells = <1>;
>>  +		#size-cells = <0>;
>>  +
>>  +		num-chipselects = <1>;
>>  +		cs-gpios = <&gpy4 3 GPIO_ACTIVE_HIGH>;
>>  +		sck-gpios = <&gpy3 1 GPIO_ACTIVE_HIGH>;
>>  +		mosi-gpios = <&gpy3 3 GPIO_ACTIVE_HIGH>;
>>  +
>>  +		lcd@0 {
>>  +			compatible = "samsung,ld9040";
>>  +			reg = <0>;
>>  +
>>  +			spi-max-frequency = <1200000>;
>>  +			spi-cpol;
>>  +			spi-cpha;
>>  +
>>  +			vdd3-supply = <&vmipi_reg>;
>>  +			vci-supply = <&vcclcd_reg>;
>>  +
>>  +			reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
>>  +			power-on-delay = <10>;
>>  +			reset-delay = <10>;
>>  +
>>  +			panel-width-mm = <90>;
>>  +			panel-height-mm = <154>;
>>  +
>>  +			display-timings {
>>  +				timing {
>>  +					clock-frequency = <23492370>;
>>  +					hactive = <480>;
>>  +					vactive = <800>;
>>  +					hback-porch = <16>;
>>  +					hfront-porch = <16>;
>>  +					vback-porch = <2>;
>>  +					vfront-porch = <28>;
>>  +					hsync-len = <2>;
>>  +					vsync-len = <1>;
>>  +					hsync-active = <0>;
>>  +					vsync-active = <0>;
>>  +					de-active = <0>;
>>  +					pixelclk-active = <0>;
>>  +				};
>>  +			};
>>  +
>>  +			port {
>>  +				lcd_ep: endpoint {
>>  +					remote-endpoint = <&fimd_dpi_ep>;
>>  +				};
>>  +			};
>>  +		};
>>  +	};
>>  +
>>  +	fixed-rate-clocks {
>>  +		xxti {
>>  +			compatible = "samsung,clock-xxti";
>>  +			clock-frequency = <0>;
>>  +		};
>>  +
>>  +		xusbxti {
>>  +			compatible = "samsung,clock-xusbxti";
>>  +			clock-frequency = <24000000>;
>>  +		};
>>  +	};
>>  +
>>  +	thermal-zones {
>>  +		cpu_thermal: cpu-thermal {
>>  +			cooling-maps {
>>  +				map0 {
>>  +					/* Corresponds to 800MHz */
>>  +					cooling-device = <&cpu0 2 2>;
>>  +				};
>>  +				map1 {
>>  +					/* Corresponds to 200MHz */
>>  +					cooling-device = <&cpu0 4 4>;
>>  +				};
>>  +			};
>>  +		};
>>  +	};
>>  +
>>  +};
>>  +
>>  +&camera {
>>  +	status = "okay";
>>  +};
>>  +
>>  +&cpu0 {
>>  +	cpu0-supply = <&varm_breg>;
>>  +};
>>  +
>>  +&exynos_usbphy {
>>  +	status = "okay";
>>  +
>>  +	vbus-supply = <&safe1_sreg>;
>>  +};
>>  +
>>  +&fimc_0 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC0>, <&clock 
>> CLK_SCLK_FIMC0>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimc_1 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC1>, <&clock 
>> CLK_SCLK_FIMC1>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimc_2 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC2>, <&clock 
>> CLK_SCLK_FIMC2>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimc_3 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC3>, <&clock 
>> CLK_SCLK_FIMC3>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimd {
>>  +	status = "okay";
>>  +	#address-cells = <1>;
>>  +	#size-cells = <0>;
>>  +
>>  +	samsung,invert-vden;
>>  +	samsung,invert-vclk;
>>  +
>>  +	pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	port@3 {
>>  +		reg = <3>;
>>  +
>>  +		fimd_dpi_ep: endpoint {
>>  +			remote-endpoint = <&lcd_ep>;
>>  +		};
>>  +	};
>>  +};
>>  +
>>  +&hsotg {
>>  +	status = "okay";
>>  +
>>  +	dr_mode = "otg";
>>  +	vusb_d-supply = <&vusb_reg>;
>>  +	vusb_a-supply = <&vusbdac_reg>;
>>  +};
>>  +
>>  +&ehci {
> 
> Order the phandle/nodes in alphabetical order, please. So:
> 
> &ehci ...
> &hsoth ...
> &i2c ...
> 
> etc.
> 
>>  +	status = "okay";
>>  +
>>  +	port@0 {
>>  +		status = "okay";
>>  +	};
>>  +
>>  +	port@1 {
>>  +		status = "okay";
>>  +	};
>>  +
>>  +	port@2 {
>>  +		status = "okay";
>>  +	};
>>  +};
>>  +
> 
> Double empty line.
> 
>>  +
>>  +&i2c_3 {
>>  +	status = "okay";
>>  +
>>  +	samsung,i2c-sda-delay = <100>;
>>  +	samsung,i2c-slave-addr = <0x10>;
>>  +	samsung,i2c-max-bus-freq = <100000>;
>>  +
>>  +	pinctrl-0 = <&i2c3_bus>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	mxt224-touchscreen@4a {
>>  +		compatible = "atmel,maxtouch";
>>  +		reg = <0x4a>;
>>  +
>>  +		interrupt-parent = <&gpx0>;
>>  +		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
>>  +
>>  +		avdd-supply = <&tsp_reg>;
>>  +		vdd-supply = <&tsp_reg>;
>>  +	};
>>  +};
>>  +
>>  +&i2c_7 {
>>  +	status = "okay";
>>  +
>>  +	samsung,i2c-sda-delay = <100>;
>>  +	samsung,i2c-slave-addr = <0x10>;
>>  +	samsung,i2c-max-bus-freq = <400000>;
>>  +
>>  +	pinctrl-0 = <&i2c7_bus>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	ak8975@c {
>>  +		compatible = "asahi-kasei,ak8975";
>>  +		reg = <0x0c>;
>>  +
>>  +		gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
>>  +	};
>>  +};
>>  +
>>  +
>>  +&i2c_5 {
>>  +	status = "okay";
>>  +
>>  +	samsung,i2c-sda-delay = <100>;
>>  +	samsung,i2c-slave-addr = <0x10>;
>>  +	samsung,i2c-max-bus-freq = <100000>;
>>  +
>>  +	pinctrl-0 = <&i2c5_bus>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	max8997_pmic@66 {
>>  +		compatible = "maxim,max8997-pmic";
>>  +		reg = <0x66>;
>>  +
>>  +		interrupts-extended = <&gpx0 7 0>, <&gpx2 3 2>;
>>  +		interrupt-parent = <&gpx0>;
>>  +		interrupts = <7 IRQ_TYPE_NONE>;
>>  +
>>  +		otg_en-gpios = <&gpx3 3 0>;
>>  +		usb_sel-gpios = <&gpl0 6 0>;
>>  +
>>  +		max8997,pmic-buck1-uses-gpio-dvs;
>>  +		max8997,pmic-buck2-uses-gpio-dvs;
>>  +		max8997,pmic-buck5-uses-gpio-dvs;
>>  +
>>  +		max8997,pmic-ignore-gpiodvs-side-effect;
>>  +		max8997,pmic-buck125-default-dvs-idx = <0>;
>>  +
>>  +		max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
>>  +						 <&gpx0 6 GPIO_ACTIVE_HIGH>,
>>  +						 <&gpl0 0 GPIO_ACTIVE_HIGH>;
>>  +
>>  +		max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
>>  +						 <1250000>, <1200000>,
>>  +						 <1150000>, <1100000>,
>>  +						 <1000000>, <950000>;
>>  +
>>  +		max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
>>  +						 <950000>,  <900000>,
>>  +						 <1100000>, <1000000>,
>>  +						 <950000>,  <900000>;
>>  +
>>  +		max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
>>  +						 <1200000>, <1200000>,
>>  +						 <1200000>, <1200000>,
>>  +						 <1200000>, <1200000>;
>>  +
>>  +		pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
>>  +		pinctrl-names = "default";
>>  +
>>  +		regulators {
>>  +			vadc_reg: LDO1 {
>>  +				regulator-name = "VADC_3.3V_C210";
>>  +				regulator-min-microvolt = <3300000>;
>>  +				regulator-max-microvolt = <3300000>;
>>  +				regulator-always-on;
>>  +
>>  +			};
> 
> Add empty line.
> 
>>  +			valive_reg: LDO2 {
>>  +				regulator-name = "VALIVE_1.1V_C210";
>>  +				regulator-min-microvolt = <1100000>;
>>  +				regulator-max-microvolt = <1100000>;
>>  +				regulator-always-on;
>>  +
>>  +			};
>>  +
>>  +			vusb_reg: LDO3 {
>>  +				regulator-name = "VUSB_1.1V_C210";
>>  +				regulator-min-microvolt = <1100000>;
>>  +				regulator-max-microvolt = <1100000>;
>>  +			};
>>  +
>>  +			vmipi_reg: LDO4 {
>>  +				regulator-name = "VMIPI_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vhsic_reg: LDO5 {
>>  +				regulator-name = "VHSIC_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vpda_reg: LDO6 {
>>  +				regulator-name = "VCC_1.8V_PDA";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vcam_reg: LDO7 {
>>  +				regulator-name = "CAM_ISP_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +			};
>>  +
>>  +			vusbdac_reg: LDO8 {
>>  +				regulator-name = "VUSB+VDAC_3.3V_C210";
>>  +				regulator-min-microvolt = <3300000>;
>>  +				regulator-max-microvolt = <3300000>;
>>  +			};
>>  +
>>  +			vccpda_reg: LDO9 {
>>  +				regulator-name = "VCC_2.8V_PDA";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vtouch_reg: LDO11 {
>>  +				regulator-name = "TOUCH_2.8V";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vpll_reg: LDO10 {
>>  +				regulator-name = "VPLL_1.1V";
>>  +				regulator-min-microvolt = <1100000>;
>>  +				regulator-max-microvolt = <1100000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vtcam_reg: LDO12 {
>>  +				regulator-name = "VT_CAM_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +			};
>>  +
>>  +			vcclcd_reg: LDO13 {
>>  +				regulator-name = "VCC_3.0V_LCD";
>>  +				regulator-min-microvolt = <3000000>;
>>  +				regulator-max-microvolt = <3000000>;
>>  +			};
>>  +
>>  +			vmotor_reg: LDO14 {
>>  +				regulator-name = "VCC_2.8V_MOTOR";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +			};
>>  +
>>  +			vled_reg: LDO15 {
>>  +				regulator-name = "LED_A_2.8V";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +			};
>>  +
>>  +			camsensor_reg: LDO16 {
>>  +				regulator-name = "CAM_SENSOR_IO_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +			};
>>  +
>>  +			vtf_reg: LDO17 {
>>  +				regulator-name = "VTF_2.8V";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +			};
>>  +
>>  +			vtouchled_reg: LDO18 {
>>  +				regulator-name = "TOUCH_LED_3.3V";
>>  +				regulator-min-microvolt = <2500000>;
>>  +				regulator-max-microvolt = <3300000>;
>>  +			};
>>  +
>>  +			vddq_reg: LDO21 {
>>  +				regulator-name = "VDDQ_M1M2_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			varm_breg: BUCK1 {
>>  +				//regulator-name = "VARM_1.2V_C210";
>>  +				regulator-name = "vdd_arm";
>>  +				regulator-min-microvolt = <65000>;
>>  +				regulator-max-microvolt = <2225000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vint_breg: BUCK2 {
>>  +				regulator-name = "VINT_1.1V_C210";
>>  +				regulator-min-microvolt = <65000>;
>>  +				regulator-max-microvolt = <2225000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vg3d_breg: BUCK3 {
>>  +				regulator-name = "G3D_1.1V";
>>  +				regulator-min-microvolt = <900000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			camisp_breg: BUCK4 {
>>  +				regulator-name = "CAM_ISP_CORE_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +			};
>>  +
>>  +			vmem_breg: BUCK5 {
>>  +				regulator-name = "VMEM_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vccsub_breg: BUCK7 {
>>  +				regulator-name = "VCC_SUB_2.0V";
>>  +				regulator-min-microvolt = <2000000>;
>>  +				regulator-max-microvolt = <2000000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			safe1_sreg: ESAFEOUT1 {
>>  +				regulator-name = "SAFEOUT1";
>>  +			};
>>  +
>>  +			safe2_sreg: ESAFEOUT2 {
>>  +				regulator-name = "SAFEOUT2";
>>  +				regulator-boot-on;
>>  +			};
>>  +
>>  +			charger_reg: CHARGER {
>>  +				regulator-name = "CHARGER";
>>  +				regulator-min-microamp = <60000>;
>>  +				regulator-max-microamp = <2580000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			chargercv_reg: CHARGER_CV {
>>  +				regulator-name = "CHARGER_CV";
>>  +				regulator-min-microvolt = <3800000>;
>>  +				regulator-max-microvolt = <4100000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
> 
> Empty line, not needed.
> 
>>  +		};
>>  +
> 
> Empty line, not needed.
> 
>>  +	};
>>  +};
>>  +
>>  +
> 
> Empty line, not needed. Please fix them in all places.
> 
>>  +&gpu {
>>  +	status = "okay";
>>  +
>>  +	mali-supply = <&vg3d_breg>;
>>  +	regulator-microvolt-offset = <50000>;
>>  +	regulator-microsecs-delay = <50>;
>>  +};
>>  +
> 
> and more...
> 
>>  +
>>  +&sdhci_0 {
>>  +	status = "okay";
>>  +
>>  +	bus-width = <8>;
>>  +	non-removable;
>>  +	vmmc-supply = <&vemmc_reg>;
>>  +
>>  +	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_bus8>;
>>  +	pinctrl-names = "default";
>>  +};
>>  +
>>  +&sdhci_2 {
>>  +	status = "okay";
>>  +
>>  +	bus-width = <4>;
>>  +	cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
>>  +	vmmc-supply = <&vtf_reg>;
>>  +
>>  +	pinctrl-0 = <&sd2_clk>, <&sd2_cmd>, <&sd2_bus4>;
>>  +	pinctrl-names = "default";
>>  +};
>>  +
>>  +&ehci {
> 
> Duplicated.
> 
> Best regards,
> Krzysztof

For all other comments: ACK, will fix this mess in V2.

Cheers,
-Paul




^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
@ 2020-03-13 14:33       ` Paul Cercueil
  0 siblings, 0 replies; 35+ messages in thread
From: Paul Cercueil @ 2020-03-13 14:33 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Mark Rutland, devicetree, Stenkin Evgeniy, linux-samsung-soc,
	linux-kernel, Rob Herring, Kukjin Kim, linux-arm-kernel,
	Marek Szyprowski

Hi Krzysztof,


Le ven., mars 13, 2020 at 10:00, Krzysztof Kozlowski <krzk@kernel.org> 
a écrit :
> On Thu, Mar 12, 2020 at 04:34:11PM +0100, Paul Cercueil wrote:
>>  From: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>> 
>>  Add devicetree file for the Exynos 4210 based Galaxy S2 (i9100 
>> version).
> 
> Thanks for the patch!
> 
> It is an GT-I9100.
> 
> +Cc Marek (I have few questions further)
> 
> 
>> 
>>  Signed-off-by: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>>  Signed-off-by: Paul Cercueil <paul@crapouillou.net>
>>  ---
>>   arch/arm/boot/dts/Makefile             |   1 +
>>   arch/arm/boot/dts/exynos4210-i9100.dts | 816 
>> +++++++++++++++++++++++++
>>   2 files changed, 817 insertions(+)
>>   create mode 100644 arch/arm/boot/dts/exynos4210-i9100.dts
>> 
>>  diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
>>  index d6546d2676b9..522436d30690 100644
>>  --- a/arch/arm/boot/dts/Makefile
>>  +++ b/arch/arm/boot/dts/Makefile
>>  @@ -181,6 +181,7 @@ dtb-$(CONFIG_ARCH_EXYNOS3) += \
>>   	exynos3250-monk.dtb \
>>   	exynos3250-rinato.dtb
>>   dtb-$(CONFIG_ARCH_EXYNOS4) += \
>>  +	exynos4210-i9100.dtb \
>>   	exynos4210-origen.dtb \
>>   	exynos4210-smdkv310.dtb \
>>   	exynos4210-trats.dtb \
>>  diff --git a/arch/arm/boot/dts/exynos4210-i9100.dts 
>> b/arch/arm/boot/dts/exynos4210-i9100.dts
>>  new file mode 100644
>>  index 000000000000..c218e34959be
>>  --- /dev/null
>>  +++ b/arch/arm/boot/dts/exynos4210-i9100.dts
>>  @@ -0,0 +1,816 @@
>>  +// SPDX-License-Identifier: GPL-2.0
>>  +/*
>>  + * Samsung's Exynos4210 based Galaxy S2 (i9100 version) device tree
> 
> Ditto
> 
>>  + *
>>  + * Copyright (c) 2012 Samsung Electronics Co., Ltd.
>>  + *		http://www.samsung.com
>>  + * Copyright (c) 2020 Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>>  + * Copyright (c) 2020 Paul Cercueil <paul@crapouillou.net>
>>  + *
>>  + * Device tree source file for Samsung's Galaxy S2 smartphone 
>> (i9100 version),
>>  + * which is based on Samsung's Exynos4210 SoC.
> 
> Duplicated description, you mentioned it before.
> 
>>  + */
>>  +
>>  +/dts-v1/;
>>  +#include "exynos4210.dtsi"
>>  +#include "exynos4412-ppmu-common.dtsi"
>>  +
>>  +#include <dt-bindings/gpio/gpio.h>
>>  +#include <dt-bindings/input/linux-event-codes.h>
>>  +
>>  +/ {
>>  +	model = "Samsung Galaxy S2 (i9100)";
> 
> GT-I9100
> 
>>  +	compatible = "samsung,i9100", "samsung,exynos4210", 
>> "samsung,exynos4";
> 
> I think it shares a lot with Trats board...
> 
> Marek, how similar these
> designs are? Maybe it is worth to split some parts and make common 
> part?

I can try to do it, but it'll be only by comparing the devicetree files.

>>  +
>>  +
>>  +	memory@40000000 {
>>  +		device_type = "memory";
>>  +		reg = <0x40000000 0x40000000>;
>>  +	};
>>  +
> 
> You do not have a chosen node, at least for stdout serial selection.
> Probably you should have one... bootargs I guess could come from
> bootloader.

Problem is, I have no idea which UART is available via the USB jig :)

>>  +	vemmc_reg: regulator-0 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "VMEM_VDD_2.8V";
>>  +		regulator-min-microvolt = <2800000>;
>>  +		regulator-max-microvolt = <2800000>;
>>  +		gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
> 
> This looks like a stub/fake regulator. Probably it shoould be replaced
> with proper regulator coming from PMIC (few seems to be missing 
> there).
> 
> I don't have the schematics so I cannot judge... I see Trats has the
> same.
> 
> Marek, mayybe you know, is it really a separate regulator?
> 
>>  +	};
>>  +
>>  +	tsp_reg: regulator-1 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "TSP_FIXED_VOLTAGES";
>>  +		regulator-min-microvolt = <3300000>;
>>  +		regulator-max-microvolt = <3300000>;
>>  +		gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
>>  +		startup-delay-us = <70000>;
>>  +		enable-active-high;
>>  +		regulator-boot-on;
>>  +		regulator-always-on;
> 
> always-on and boot-on should not be needed. You have a consumer for 
> this
> regulator.
> 
>>  +	};
>>  +
>>  +	cam_af_28v_reg: regulator-3 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "8M_AF_2.8V_EN";
>>  +		regulator-min-microvolt = <2800000>;
>>  +		regulator-max-microvolt = <2800000>;
>>  +		gpio = <&gpk1 1 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	cam_io_en_reg: regulator-4 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "CAM_IO_EN";
>>  +		regulator-min-microvolt = <2800000>;
>>  +		regulator-max-microvolt = <2800000>;
>>  +		gpio = <&gpe2 1 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	cam_io_12v_reg: regulator-5 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "8M_1.2V_EN";
>>  +		regulator-min-microvolt = <1200000>;
>>  +		regulator-max-microvolt = <1200000>;
>>  +		gpio = <&gpe2 5 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	vt_core_15v_reg: regulator-6 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "VT_CORE_1.5V";
>>  +		regulator-min-microvolt = <1500000>;
>>  +		regulator-max-microvolt = <1500000>;
>>  +		gpio = <&gpe2 2 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	gpio-keys {
>>  +		compatible = "gpio-keys";
>>  +
>>  +		vol-down {
>>  +			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_VOLUMEDOWN>;
>>  +			label = "volume down";
>>  +			debounce-interval = <10>;
>>  +		};
>>  +
>>  +		vol-up {
>>  +			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_VOLUMEUP>;
>>  +			label = "volume up";
>>  +			debounce-interval = <10>;
>>  +		};
>>  +
>>  +		power {
>>  +			gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_POWER>;
>>  +			label = "power";
>>  +			debounce-interval = <10>;
>>  +			wakeup-source;
>>  +		};
>>  +
>>  +		ok {
>>  +			gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_OK>;
>>  +			label = "ok";
>>  +			debounce-interval = <10>;
>>  +		};
>>  +	};
>>  +
>>  +	wlan_pwrseq: sdhci3-pwrseq {
>>  +		compatible = "mmc-pwrseq-simple";
>>  +		reset-gpios = <&gpl1 2 GPIO_ACTIVE_LOW>;
>>  +	};
>>  +
>>  +	i2c_max17042_fuel: i2c-gpio-3 {
> 
> i2c-gpio-3 -> i2c-gpio
> 
>>  +		compatible = "i2c-gpio";
>>  +		#address-cells = <1>;
>>  +		#size-cells = <0>;
>>  +
>>  +		sda-gpios = <&gpy4 0 GPIO_ACTIVE_HIGH>;
>>  +		scl-gpios = <&gpy4 1 GPIO_ACTIVE_HIGH>;
>>  +		i2c-gpio,delay-us = <5>;
>>  +
>>  +		battery@36 {
>>  +			compatible = "maxim,max17042";
>>  +
>>  +			interrupt-parent = <&gpx2>;
>>  +			interrupts = <3 2>;
> 
> s/2/IRQ_TYPE_EDGE_FALLING/
> 
>>  +
>>  +			pinctrl-0 = <&max17042_fuel_irq>;
>>  +			pinctrl-names = "default";
>>  +
>>  +			reg = <0x36>;
>>  +			maxim,over-heat-temp = <700>;
>>  +			maxim,over-volt = <4500>;
>>  +
> 
> Remove empty line.
> 
>>  +		};
>>  +	};
>>  +
>>  +	spi-lcd {
>>  +		compatible = "spi-gpio";
>>  +		#address-cells = <1>;
>>  +		#size-cells = <0>;
>>  +
>>  +		num-chipselects = <1>;
>>  +		cs-gpios = <&gpy4 3 GPIO_ACTIVE_HIGH>;
>>  +		sck-gpios = <&gpy3 1 GPIO_ACTIVE_HIGH>;
>>  +		mosi-gpios = <&gpy3 3 GPIO_ACTIVE_HIGH>;
>>  +
>>  +		lcd@0 {
>>  +			compatible = "samsung,ld9040";
>>  +			reg = <0>;
>>  +
>>  +			spi-max-frequency = <1200000>;
>>  +			spi-cpol;
>>  +			spi-cpha;
>>  +
>>  +			vdd3-supply = <&vmipi_reg>;
>>  +			vci-supply = <&vcclcd_reg>;
>>  +
>>  +			reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
>>  +			power-on-delay = <10>;
>>  +			reset-delay = <10>;
>>  +
>>  +			panel-width-mm = <90>;
>>  +			panel-height-mm = <154>;
>>  +
>>  +			display-timings {
>>  +				timing {
>>  +					clock-frequency = <23492370>;
>>  +					hactive = <480>;
>>  +					vactive = <800>;
>>  +					hback-porch = <16>;
>>  +					hfront-porch = <16>;
>>  +					vback-porch = <2>;
>>  +					vfront-porch = <28>;
>>  +					hsync-len = <2>;
>>  +					vsync-len = <1>;
>>  +					hsync-active = <0>;
>>  +					vsync-active = <0>;
>>  +					de-active = <0>;
>>  +					pixelclk-active = <0>;
>>  +				};
>>  +			};
>>  +
>>  +			port {
>>  +				lcd_ep: endpoint {
>>  +					remote-endpoint = <&fimd_dpi_ep>;
>>  +				};
>>  +			};
>>  +		};
>>  +	};
>>  +
>>  +	fixed-rate-clocks {
>>  +		xxti {
>>  +			compatible = "samsung,clock-xxti";
>>  +			clock-frequency = <0>;
>>  +		};
>>  +
>>  +		xusbxti {
>>  +			compatible = "samsung,clock-xusbxti";
>>  +			clock-frequency = <24000000>;
>>  +		};
>>  +	};
>>  +
>>  +	thermal-zones {
>>  +		cpu_thermal: cpu-thermal {
>>  +			cooling-maps {
>>  +				map0 {
>>  +					/* Corresponds to 800MHz */
>>  +					cooling-device = <&cpu0 2 2>;
>>  +				};
>>  +				map1 {
>>  +					/* Corresponds to 200MHz */
>>  +					cooling-device = <&cpu0 4 4>;
>>  +				};
>>  +			};
>>  +		};
>>  +	};
>>  +
>>  +};
>>  +
>>  +&camera {
>>  +	status = "okay";
>>  +};
>>  +
>>  +&cpu0 {
>>  +	cpu0-supply = <&varm_breg>;
>>  +};
>>  +
>>  +&exynos_usbphy {
>>  +	status = "okay";
>>  +
>>  +	vbus-supply = <&safe1_sreg>;
>>  +};
>>  +
>>  +&fimc_0 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC0>, <&clock 
>> CLK_SCLK_FIMC0>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimc_1 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC1>, <&clock 
>> CLK_SCLK_FIMC1>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimc_2 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC2>, <&clock 
>> CLK_SCLK_FIMC2>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimc_3 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC3>, <&clock 
>> CLK_SCLK_FIMC3>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimd {
>>  +	status = "okay";
>>  +	#address-cells = <1>;
>>  +	#size-cells = <0>;
>>  +
>>  +	samsung,invert-vden;
>>  +	samsung,invert-vclk;
>>  +
>>  +	pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	port@3 {
>>  +		reg = <3>;
>>  +
>>  +		fimd_dpi_ep: endpoint {
>>  +			remote-endpoint = <&lcd_ep>;
>>  +		};
>>  +	};
>>  +};
>>  +
>>  +&hsotg {
>>  +	status = "okay";
>>  +
>>  +	dr_mode = "otg";
>>  +	vusb_d-supply = <&vusb_reg>;
>>  +	vusb_a-supply = <&vusbdac_reg>;
>>  +};
>>  +
>>  +&ehci {
> 
> Order the phandle/nodes in alphabetical order, please. So:
> 
> &ehci ...
> &hsoth ...
> &i2c ...
> 
> etc.
> 
>>  +	status = "okay";
>>  +
>>  +	port@0 {
>>  +		status = "okay";
>>  +	};
>>  +
>>  +	port@1 {
>>  +		status = "okay";
>>  +	};
>>  +
>>  +	port@2 {
>>  +		status = "okay";
>>  +	};
>>  +};
>>  +
> 
> Double empty line.
> 
>>  +
>>  +&i2c_3 {
>>  +	status = "okay";
>>  +
>>  +	samsung,i2c-sda-delay = <100>;
>>  +	samsung,i2c-slave-addr = <0x10>;
>>  +	samsung,i2c-max-bus-freq = <100000>;
>>  +
>>  +	pinctrl-0 = <&i2c3_bus>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	mxt224-touchscreen@4a {
>>  +		compatible = "atmel,maxtouch";
>>  +		reg = <0x4a>;
>>  +
>>  +		interrupt-parent = <&gpx0>;
>>  +		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
>>  +
>>  +		avdd-supply = <&tsp_reg>;
>>  +		vdd-supply = <&tsp_reg>;
>>  +	};
>>  +};
>>  +
>>  +&i2c_7 {
>>  +	status = "okay";
>>  +
>>  +	samsung,i2c-sda-delay = <100>;
>>  +	samsung,i2c-slave-addr = <0x10>;
>>  +	samsung,i2c-max-bus-freq = <400000>;
>>  +
>>  +	pinctrl-0 = <&i2c7_bus>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	ak8975@c {
>>  +		compatible = "asahi-kasei,ak8975";
>>  +		reg = <0x0c>;
>>  +
>>  +		gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
>>  +	};
>>  +};
>>  +
>>  +
>>  +&i2c_5 {
>>  +	status = "okay";
>>  +
>>  +	samsung,i2c-sda-delay = <100>;
>>  +	samsung,i2c-slave-addr = <0x10>;
>>  +	samsung,i2c-max-bus-freq = <100000>;
>>  +
>>  +	pinctrl-0 = <&i2c5_bus>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	max8997_pmic@66 {
>>  +		compatible = "maxim,max8997-pmic";
>>  +		reg = <0x66>;
>>  +
>>  +		interrupts-extended = <&gpx0 7 0>, <&gpx2 3 2>;
>>  +		interrupt-parent = <&gpx0>;
>>  +		interrupts = <7 IRQ_TYPE_NONE>;
>>  +
>>  +		otg_en-gpios = <&gpx3 3 0>;
>>  +		usb_sel-gpios = <&gpl0 6 0>;
>>  +
>>  +		max8997,pmic-buck1-uses-gpio-dvs;
>>  +		max8997,pmic-buck2-uses-gpio-dvs;
>>  +		max8997,pmic-buck5-uses-gpio-dvs;
>>  +
>>  +		max8997,pmic-ignore-gpiodvs-side-effect;
>>  +		max8997,pmic-buck125-default-dvs-idx = <0>;
>>  +
>>  +		max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
>>  +						 <&gpx0 6 GPIO_ACTIVE_HIGH>,
>>  +						 <&gpl0 0 GPIO_ACTIVE_HIGH>;
>>  +
>>  +		max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
>>  +						 <1250000>, <1200000>,
>>  +						 <1150000>, <1100000>,
>>  +						 <1000000>, <950000>;
>>  +
>>  +		max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
>>  +						 <950000>,  <900000>,
>>  +						 <1100000>, <1000000>,
>>  +						 <950000>,  <900000>;
>>  +
>>  +		max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
>>  +						 <1200000>, <1200000>,
>>  +						 <1200000>, <1200000>,
>>  +						 <1200000>, <1200000>;
>>  +
>>  +		pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
>>  +		pinctrl-names = "default";
>>  +
>>  +		regulators {
>>  +			vadc_reg: LDO1 {
>>  +				regulator-name = "VADC_3.3V_C210";
>>  +				regulator-min-microvolt = <3300000>;
>>  +				regulator-max-microvolt = <3300000>;
>>  +				regulator-always-on;
>>  +
>>  +			};
> 
> Add empty line.
> 
>>  +			valive_reg: LDO2 {
>>  +				regulator-name = "VALIVE_1.1V_C210";
>>  +				regulator-min-microvolt = <1100000>;
>>  +				regulator-max-microvolt = <1100000>;
>>  +				regulator-always-on;
>>  +
>>  +			};
>>  +
>>  +			vusb_reg: LDO3 {
>>  +				regulator-name = "VUSB_1.1V_C210";
>>  +				regulator-min-microvolt = <1100000>;
>>  +				regulator-max-microvolt = <1100000>;
>>  +			};
>>  +
>>  +			vmipi_reg: LDO4 {
>>  +				regulator-name = "VMIPI_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vhsic_reg: LDO5 {
>>  +				regulator-name = "VHSIC_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vpda_reg: LDO6 {
>>  +				regulator-name = "VCC_1.8V_PDA";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vcam_reg: LDO7 {
>>  +				regulator-name = "CAM_ISP_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +			};
>>  +
>>  +			vusbdac_reg: LDO8 {
>>  +				regulator-name = "VUSB+VDAC_3.3V_C210";
>>  +				regulator-min-microvolt = <3300000>;
>>  +				regulator-max-microvolt = <3300000>;
>>  +			};
>>  +
>>  +			vccpda_reg: LDO9 {
>>  +				regulator-name = "VCC_2.8V_PDA";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vtouch_reg: LDO11 {
>>  +				regulator-name = "TOUCH_2.8V";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vpll_reg: LDO10 {
>>  +				regulator-name = "VPLL_1.1V";
>>  +				regulator-min-microvolt = <1100000>;
>>  +				regulator-max-microvolt = <1100000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vtcam_reg: LDO12 {
>>  +				regulator-name = "VT_CAM_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +			};
>>  +
>>  +			vcclcd_reg: LDO13 {
>>  +				regulator-name = "VCC_3.0V_LCD";
>>  +				regulator-min-microvolt = <3000000>;
>>  +				regulator-max-microvolt = <3000000>;
>>  +			};
>>  +
>>  +			vmotor_reg: LDO14 {
>>  +				regulator-name = "VCC_2.8V_MOTOR";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +			};
>>  +
>>  +			vled_reg: LDO15 {
>>  +				regulator-name = "LED_A_2.8V";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +			};
>>  +
>>  +			camsensor_reg: LDO16 {
>>  +				regulator-name = "CAM_SENSOR_IO_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +			};
>>  +
>>  +			vtf_reg: LDO17 {
>>  +				regulator-name = "VTF_2.8V";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +			};
>>  +
>>  +			vtouchled_reg: LDO18 {
>>  +				regulator-name = "TOUCH_LED_3.3V";
>>  +				regulator-min-microvolt = <2500000>;
>>  +				regulator-max-microvolt = <3300000>;
>>  +			};
>>  +
>>  +			vddq_reg: LDO21 {
>>  +				regulator-name = "VDDQ_M1M2_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			varm_breg: BUCK1 {
>>  +				//regulator-name = "VARM_1.2V_C210";
>>  +				regulator-name = "vdd_arm";
>>  +				regulator-min-microvolt = <65000>;
>>  +				regulator-max-microvolt = <2225000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vint_breg: BUCK2 {
>>  +				regulator-name = "VINT_1.1V_C210";
>>  +				regulator-min-microvolt = <65000>;
>>  +				regulator-max-microvolt = <2225000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vg3d_breg: BUCK3 {
>>  +				regulator-name = "G3D_1.1V";
>>  +				regulator-min-microvolt = <900000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			camisp_breg: BUCK4 {
>>  +				regulator-name = "CAM_ISP_CORE_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +			};
>>  +
>>  +			vmem_breg: BUCK5 {
>>  +				regulator-name = "VMEM_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vccsub_breg: BUCK7 {
>>  +				regulator-name = "VCC_SUB_2.0V";
>>  +				regulator-min-microvolt = <2000000>;
>>  +				regulator-max-microvolt = <2000000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			safe1_sreg: ESAFEOUT1 {
>>  +				regulator-name = "SAFEOUT1";
>>  +			};
>>  +
>>  +			safe2_sreg: ESAFEOUT2 {
>>  +				regulator-name = "SAFEOUT2";
>>  +				regulator-boot-on;
>>  +			};
>>  +
>>  +			charger_reg: CHARGER {
>>  +				regulator-name = "CHARGER";
>>  +				regulator-min-microamp = <60000>;
>>  +				regulator-max-microamp = <2580000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			chargercv_reg: CHARGER_CV {
>>  +				regulator-name = "CHARGER_CV";
>>  +				regulator-min-microvolt = <3800000>;
>>  +				regulator-max-microvolt = <4100000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
> 
> Empty line, not needed.
> 
>>  +		};
>>  +
> 
> Empty line, not needed.
> 
>>  +	};
>>  +};
>>  +
>>  +
> 
> Empty line, not needed. Please fix them in all places.
> 
>>  +&gpu {
>>  +	status = "okay";
>>  +
>>  +	mali-supply = <&vg3d_breg>;
>>  +	regulator-microvolt-offset = <50000>;
>>  +	regulator-microsecs-delay = <50>;
>>  +};
>>  +
> 
> and more...
> 
>>  +
>>  +&sdhci_0 {
>>  +	status = "okay";
>>  +
>>  +	bus-width = <8>;
>>  +	non-removable;
>>  +	vmmc-supply = <&vemmc_reg>;
>>  +
>>  +	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_bus8>;
>>  +	pinctrl-names = "default";
>>  +};
>>  +
>>  +&sdhci_2 {
>>  +	status = "okay";
>>  +
>>  +	bus-width = <4>;
>>  +	cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
>>  +	vmmc-supply = <&vtf_reg>;
>>  +
>>  +	pinctrl-0 = <&sd2_clk>, <&sd2_cmd>, <&sd2_bus4>;
>>  +	pinctrl-names = "default";
>>  +};
>>  +
>>  +&ehci {
> 
> Duplicated.
> 
> Best regards,
> Krzysztof

For all other comments: ACK, will fix this mess in V2.

Cheers,
-Paul




_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
  2020-03-13 14:29       ` Paul Cercueil
@ 2020-03-13 14:36         ` Paul Cercueil
  -1 siblings, 0 replies; 35+ messages in thread
From: Paul Cercueil @ 2020-03-13 14:36 UTC (permalink / raw)
  To: Marek Szyprowski
  Cc: Kukjin Kim, Krzysztof Kozlowski, Rob Herring, Mark Rutland,
	Stenkin Evgeniy, linux-arm-kernel, linux-samsung-soc, devicetree,
	linux-kernel



Le ven., mars 13, 2020 at 15:29, Paul Cercueil <paul@crapouillou.net> a 
écrit :
> Hi Marek,
> 
> 
> Le ven., mars 13, 2020 at 09:03, Marek Szyprowski 
> <m.szyprowski@samsung.com> a écrit :
>> 
>> On 12.03.2020 16:34, Paul Cercueil wrote:
>>>  From: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>>> 
>>>  Add devicetree file for the Exynos 4210 based Galaxy S2 (i9100 
>>> \x7f\x7fversion).
>>> 
>>>  Signed-off-by: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>>>  Signed-off-by: Paul Cercueil <paul@crapouillou.net>
>>>  ---
>>>    arch/arm/boot/dts/Makefile             |   1 +
>>>    arch/arm/boot/dts/exynos4210-i9100.dts | 816 
>>> \x7f\x7f+++++++++++++++++++++++++
>>>    2 files changed, 817 insertions(+)
>>>    create mode 100644 arch/arm/boot/dts/exynos4210-i9100.dts
>>> 
>>>  diff --git a/arch/arm/boot/dts/Makefile 
>>> b/arch/arm/boot/dts/Makefile
>>>  index d6546d2676b9..522436d30690 100644
>>>  --- a/arch/arm/boot/dts/Makefile
>>>  +++ b/arch/arm/boot/dts/Makefile
>>>  @@ -181,6 +181,7 @@ dtb-$(CONFIG_ARCH_EXYNOS3) += \
>>>    	exynos3250-monk.dtb \
>>>    	exynos3250-rinato.dtb
>>>    dtb-$(CONFIG_ARCH_EXYNOS4) += \
>>>  +	exynos4210-i9100.dtb \
>>>    	exynos4210-origen.dtb \
>>>    	exynos4210-smdkv310.dtb \
>>>    	exynos4210-trats.dtb \
>>>  diff --git a/arch/arm/boot/dts/exynos4210-i9100.dts 
>>> \x7f\x7fb/arch/arm/boot/dts/exynos4210-i9100.dts
>>>  new file mode 100644
>>>  index 000000000000..c218e34959be
>>>  --- /dev/null
>>>  +++ b/arch/arm/boot/dts/exynos4210-i9100.dts
>>>  @@ -0,0 +1,816 @@
>>>  +// SPDX-License-Identifier: GPL-2.0
>>>  +/*
>>>  + * Samsung's Exynos4210 based Galaxy S2 (i9100 version) device 
>>> tree
>>>  + *
>>>  + * Copyright (c) 2012 Samsung Electronics Co., Ltd.
>>>  + *		http://www.samsung.com
>>>  + * Copyright (c) 2020 Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>>>  + * Copyright (c) 2020 Paul Cercueil <paul@crapouillou.net>
>>>  + *
>>>  + * Device tree source file for Samsung's Galaxy S2 smartphone 
>>> \x7f\x7f(i9100 version),
>>>  + * which is based on Samsung's Exynos4210 SoC.
>>>  + */
>>>  +
>>>  +/dts-v1/;
>>>  +#include "exynos4210.dtsi"
>>>  +#include "exynos4412-ppmu-common.dtsi"
>>>  +
>>>  +#include <dt-bindings/gpio/gpio.h>
>>>  +#include <dt-bindings/input/linux-event-codes.h>
>>>  +
>>>  +/ {
>>>  +	model = "Samsung Galaxy S2 (i9100)";
>>>  +	compatible = "samsung,i9100", "samsung,exynos4210", 
>>> \x7f\x7f"samsung,exynos4";
>>>  +
>>>  +
>>>  +	memory@40000000 {
>>>  +		device_type = "memory";
>>>  +		reg = <0x40000000 0x40000000>;
>>>  +	};
>>>  +
>>>  +	vemmc_reg: regulator-0 {
>>>  +		compatible = "regulator-fixed";
>>>  +		regulator-name = "VMEM_VDD_2.8V";
>>>  +		regulator-min-microvolt = <2800000>;
>>>  +		regulator-max-microvolt = <2800000>;
>>>  +		gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
>>>  +		enable-active-high;
>>>  +	};
>>>  +
>>>  +	tsp_reg: regulator-1 {
>>>  +		compatible = "regulator-fixed";
>>>  +		regulator-name = "TSP_FIXED_VOLTAGES";
>>>  +		regulator-min-microvolt = <3300000>;
>>>  +		regulator-max-microvolt = <3300000>;
>>>  +		gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
>>>  +		startup-delay-us = <70000>;
>>>  +		enable-active-high;
>>>  +		regulator-boot-on;
>>>  +		regulator-always-on;
>>>  +	};
>>>  +
>>>  +	cam_af_28v_reg: regulator-3 {
>>>  +		compatible = "regulator-fixed";
>>>  +		regulator-name = "8M_AF_2.8V_EN";
>>>  +		regulator-min-microvolt = <2800000>;
>>>  +		regulator-max-microvolt = <2800000>;
>>>  +		gpio = <&gpk1 1 GPIO_ACTIVE_HIGH>;
>>>  +		enable-active-high;
>>>  +	};
>>>  +
>>>  +	cam_io_en_reg: regulator-4 {
>>>  +		compatible = "regulator-fixed";
>>>  +		regulator-name = "CAM_IO_EN";
>>>  +		regulator-min-microvolt = <2800000>;
>>>  +		regulator-max-microvolt = <2800000>;
>>>  +		gpio = <&gpe2 1 GPIO_ACTIVE_HIGH>;
>>>  +		enable-active-high;
>>>  +	};
>>>  +
>>>  +	cam_io_12v_reg: regulator-5 {
>>>  +		compatible = "regulator-fixed";
>>>  +		regulator-name = "8M_1.2V_EN";
>>>  +		regulator-min-microvolt = <1200000>;
>>>  +		regulator-max-microvolt = <1200000>;
>>>  +		gpio = <&gpe2 5 GPIO_ACTIVE_HIGH>;
>>>  +		enable-active-high;
>>>  +	};
>>>  +
>>>  +	vt_core_15v_reg: regulator-6 {
>>>  +		compatible = "regulator-fixed";
>>>  +		regulator-name = "VT_CORE_1.5V";
>>>  +		regulator-min-microvolt = <1500000>;
>>>  +		regulator-max-microvolt = <1500000>;
>>>  +		gpio = <&gpe2 2 GPIO_ACTIVE_HIGH>;
>>>  +		enable-active-high;
>>>  +	};
>>>  +
>>>  +	gpio-keys {
>>>  +		compatible = "gpio-keys";
>>>  +
>>>  +		vol-down {
>>>  +			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
>>>  +			linux,code = <KEY_VOLUMEDOWN>;
>>>  +			label = "volume down";
>>>  +			debounce-interval = <10>;
>>>  +		};
>>>  +
>>>  +		vol-up {
>>>  +			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
>>>  +			linux,code = <KEY_VOLUMEUP>;
>>>  +			label = "volume up";
>>>  +			debounce-interval = <10>;
>>>  +		};
>>>  +
>>>  +		power {
>>>  +			gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
>>>  +			linux,code = <KEY_POWER>;
>>>  +			label = "power";
>>>  +			debounce-interval = <10>;
>>>  +			wakeup-source;
>>>  +		};
>>>  +
>>>  +		ok {
>>>  +			gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
>>>  +			linux,code = <KEY_OK>;
>>>  +			label = "ok";
>>>  +			debounce-interval = <10>;
>>>  +		};
>>>  +	};
>>>  +
>>>  +	wlan_pwrseq: sdhci3-pwrseq {
>>>  +		compatible = "mmc-pwrseq-simple";
>>>  +		reset-gpios = <&gpl1 2 GPIO_ACTIVE_LOW>;
>>>  +	};
>>>  +
>>>  +	i2c_max17042_fuel: i2c-gpio-3 {
>>>  +		compatible = "i2c-gpio";
>>>  +		#address-cells = <1>;
>>>  +		#size-cells = <0>;
>>>  +
>>>  +		sda-gpios = <&gpy4 0 GPIO_ACTIVE_HIGH>;
>>>  +		scl-gpios = <&gpy4 1 GPIO_ACTIVE_HIGH>;
>>>  +		i2c-gpio,delay-us = <5>;
>>>  +
>>>  +		battery@36 {
>>>  +			compatible = "maxim,max17042";
>>>  +
>>>  +			interrupt-parent = <&gpx2>;
>>>  +			interrupts = <3 2>;
>>>  +
>>>  +			pinctrl-0 = <&max17042_fuel_irq>;
>>>  +			pinctrl-names = "default";
>>>  +
>>>  +			reg = <0x36>;
>>>  +			maxim,over-heat-temp = <700>;
>>>  +			maxim,over-volt = <4500>;
>>>  +
>>>  +		};
>>>  +	};
>>>  +
>>>  +	spi-lcd {
>>>  +		compatible = "spi-gpio";
>>>  +		#address-cells = <1>;
>>>  +		#size-cells = <0>;
>>>  +
>>>  +		num-chipselects = <1>;
>>>  +		cs-gpios = <&gpy4 3 GPIO_ACTIVE_HIGH>;
>> LD9040 CS is active low, so this board needs probably the same fix a
>> Universal C210 board: https://patchwork.kernel.org/patch/11420231/ 
>> Are
>> you sure it really works now with v5.6-rcX kernels? Or you just got 
>> \x7fthe
>> panel working only because the bootloader enabled it?
> 
> Sorry but the fix looks bogus to me. The spi-gpio driver calls 
> gpiod_set_value(0) when the CS is going *active*, and 
> gpiod_set_value(1) when the CS is going *inactive*. If you use the 
> GPIO_ACTIVE_LOW flag, the levels are inverted, and the CS is high 
> when active, which is the opposite of what you want.

Correction: the driver sets the SPI_CS_HIGH flag. I guess that's what's 
new. So indeed GPIO_ACTIVE_LOW should be used.

-Paul

>>>  +		sck-gpios = <&gpy3 1 GPIO_ACTIVE_HIGH>;
>>>  +		mosi-gpios = <&gpy3 3 GPIO_ACTIVE_HIGH>;
>>>  +
>>>  +		lcd@0 {
>>>  +			compatible = "samsung,ld9040";
>>>  +			reg = <0>;
>>>  +
>>>  +			spi-max-frequency = <1200000>;
>>>  +			spi-cpol;
>>>  +			spi-cpha;
>>>  +
>>>  +			vdd3-supply = <&vmipi_reg>;
>>>  +			vci-supply = <&vcclcd_reg>;
>>>  +
>>>  +			reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
>>>  +			power-on-delay = <10>;
>>>  +			reset-delay = <10>;
>>>  +
>>>  +			panel-width-mm = <90>;
>>>  +			panel-height-mm = <154>;
>>>  +
>>>  +			display-timings {
>>>  +				timing {
>>>  +					clock-frequency = <23492370>;
>>>  +					hactive = <480>;
>>>  +					vactive = <800>;
>>>  +					hback-porch = <16>;
>>>  +					hfront-porch = <16>;
>>>  +					vback-porch = <2>;
>>>  +					vfront-porch = <28>;
>>>  +					hsync-len = <2>;
>>>  +					vsync-len = <1>;
>>>  +					hsync-active = <0>;
>>>  +					vsync-active = <0>;
>>>  +					de-active = <0>;
>>>  +					pixelclk-active = <0>;
>>>  +				};
>>>  +			};
>>>  +
>>>  +			port {
>>>  +				lcd_ep: endpoint {
>>>  +					remote-endpoint = <&fimd_dpi_ep>;
>>>  +				};
>>>  +			};
>>>  +		};
>>>  +	};
>>>  +
>>>  +	fixed-rate-clocks {
>>>  +		xxti {
>>>  +			compatible = "samsung,clock-xxti";
>>>  +			clock-frequency = <0>;
>>>  +		};
>>>  +
>>>  +		xusbxti {
>>>  +			compatible = "samsung,clock-xusbxti";
>>>  +			clock-frequency = <24000000>;
>>>  +		};
>>>  +	};
>>>  +
>>>  +	thermal-zones {
>>>  +		cpu_thermal: cpu-thermal {
>>>  +			cooling-maps {
>>>  +				map0 {
>>>  +					/* Corresponds to 800MHz */
>>>  +					cooling-device = <&cpu0 2 2>;
>>>  +				};
>>>  +				map1 {
>>>  +					/* Corresponds to 200MHz */
>>>  +					cooling-device = <&cpu0 4 4>;
>>>  +				};
>>>  +			};
>>>  +		};
>>>  +	};
>>>  +
>>>  +};
>>>  +
>>>  +&camera {
>>>  +	status = "okay";
>>>  +};
>>>  +
>>>  +&cpu0 {
>>>  +	cpu0-supply = <&varm_breg>;
>>>  +};
>>>  +
>>>  +&exynos_usbphy {
>>>  +	status = "okay";
>>>  +
>>>  +	vbus-supply = <&safe1_sreg>;
>>>  +};
>>>  +
>>>  +&fimc_0 {
>>>  +	status = "okay";
>>>  +
>>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC0>, <&clock 
>>> \x7f\x7fCLK_SCLK_FIMC0>;
>>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>>  +	assigned-clock-rates = <0>, <160000000>;
>>>  +};
>>>  +
>>>  +&fimc_1 {
>>>  +	status = "okay";
>>>  +
>>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC1>, <&clock 
>>> \x7f\x7fCLK_SCLK_FIMC1>;
>>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>>  +	assigned-clock-rates = <0>, <160000000>;
>>>  +};
>>>  +
>>>  +&fimc_2 {
>>>  +	status = "okay";
>>>  +
>>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC2>, <&clock 
>>> \x7f\x7fCLK_SCLK_FIMC2>;
>>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>>  +	assigned-clock-rates = <0>, <160000000>;
>>>  +};
>>>  +
>>>  +&fimc_3 {
>>>  +	status = "okay";
>>>  +
>>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC3>, <&clock 
>>> \x7f\x7fCLK_SCLK_FIMC3>;
>>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>>  +	assigned-clock-rates = <0>, <160000000>;
>>>  +};
>>>  +
>>>  +&fimd {
>>>  +	status = "okay";
>>>  +	#address-cells = <1>;
>>>  +	#size-cells = <0>;
>>>  +
>>>  +	samsung,invert-vden;
>>>  +	samsung,invert-vclk;
>>>  +
>>>  +	pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
>>>  +	pinctrl-names = "default";
>>>  +
>>>  +	port@3 {
>>>  +		reg = <3>;
>>>  +
>>>  +		fimd_dpi_ep: endpoint {
>>>  +			remote-endpoint = <&lcd_ep>;
>>>  +		};
>>>  +	};
>>>  +};
>>>  +
>>>  +&hsotg {
>>>  +	status = "okay";
>>>  +
>>>  +	dr_mode = "otg";
>> The the host mode really works with DWC2? Afair the host mode worked
>> only when it was rerouted by PHY to the EHCI (at least on 
>> \x7fUniversalC210
>> board, which is very similar to GS2).
> 
> I have to say that I didn't try OTG / host, but it does work fine in 
> gadget mode.
> I can change it to dr_mode = "peripheral" for now, if you prefer.
> 
>>>  +	vusb_d-supply = <&vusb_reg>;
>>>  +	vusb_a-supply = <&vusbdac_reg>;
>>>  +};
>>>  +
>>>  +&ehci {
>>>  +	status = "okay";
>>>  +
>>>  +	port@0 {
>>>  +		status = "okay";
>>>  +	};
>>>  +
>>>  +	port@1 {
>>>  +		status = "okay";
>>>  +	};
>>>  +
>>>  +	port@2 {
>>>  +		status = "okay";
>>>  +	};
>>>  +};
>> 
>> This is the old, obsolete exynos-ehci binding. Please remove 'port'
>> nodes and use standard USB phy bindings like it has been done in the
>> following patch: https://patchwork.kernel.org/patch/11060465/
> 
> Will do.
> 
>> BTW, do you really need all 3 phys/ports?
> 
> No idea!
> 
>>>  +
>>>  +
>>>  +&i2c_3 {
>>>  +	status = "okay";
>>>  +
>>>  +	samsung,i2c-sda-delay = <100>;
>>>  +	samsung,i2c-slave-addr = <0x10>;
>>>  +	samsung,i2c-max-bus-freq = <100000>;
>>>  +
>>>  +	pinctrl-0 = <&i2c3_bus>;
>>>  +	pinctrl-names = "default";
>>>  +
>>>  +	mxt224-touchscreen@4a {
>>>  +		compatible = "atmel,maxtouch";
>>>  +		reg = <0x4a>;
>>>  +
>>>  +		interrupt-parent = <&gpx0>;
>>>  +		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
>>>  +
>>>  +		avdd-supply = <&tsp_reg>;
>>>  +		vdd-supply = <&tsp_reg>;
>>>  +	};
>>>  +};
>>>  +
>>>  +&i2c_7 {
>>>  +	status = "okay";
>>>  +
>>>  +	samsung,i2c-sda-delay = <100>;
>>>  +	samsung,i2c-slave-addr = <0x10>;
>>>  +	samsung,i2c-max-bus-freq = <400000>;
>>>  +
>>>  +	pinctrl-0 = <&i2c7_bus>;
>>>  +	pinctrl-names = "default";
>>>  +
>>>  +	ak8975@c {
>>>  +		compatible = "asahi-kasei,ak8975";
>>>  +		reg = <0x0c>;
>>>  +
>>>  +		gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
>>>  +	};
>>>  +};
>>>  +
>>>  +
>>>  +&i2c_5 {
>>>  +	status = "okay";
>>>  +
>>>  +	samsung,i2c-sda-delay = <100>;
>>>  +	samsung,i2c-slave-addr = <0x10>;
>>>  +	samsung,i2c-max-bus-freq = <100000>;
>>>  +
>>>  +	pinctrl-0 = <&i2c5_bus>;
>>>  +	pinctrl-names = "default";
>>>  +
>>>  +	max8997_pmic@66 {
>>>  +		compatible = "maxim,max8997-pmic";
>>>  +		reg = <0x66>;
>>>  +
>>>  +		interrupts-extended = <&gpx0 7 0>, <&gpx2 3 2>;
>>>  +		interrupt-parent = <&gpx0>;
>>>  +		interrupts = <7 IRQ_TYPE_NONE>;
>>>  +
>>>  +		otg_en-gpios = <&gpx3 3 0>;
>>>  +		usb_sel-gpios = <&gpl0 6 0>;
>>>  +
>>>  +		max8997,pmic-buck1-uses-gpio-dvs;
>>>  +		max8997,pmic-buck2-uses-gpio-dvs;
>>>  +		max8997,pmic-buck5-uses-gpio-dvs;
>>>  +
>>>  +		max8997,pmic-ignore-gpiodvs-side-effect;
>>>  +		max8997,pmic-buck125-default-dvs-idx = <0>;
>>>  +
>>>  +		max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
>>>  +						 <&gpx0 6 GPIO_ACTIVE_HIGH>,
>>>  +						 <&gpl0 0 GPIO_ACTIVE_HIGH>;
>>>  +
>>>  +		max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
>>>  +						 <1250000>, <1200000>,
>>>  +						 <1150000>, <1100000>,
>>>  +						 <1000000>, <950000>;
>>>  +
>>>  +		max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
>>>  +						 <950000>,  <900000>,
>>>  +						 <1100000>, <1000000>,
>>>  +						 <950000>,  <900000>;
>>>  +
>>>  +		max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
>>>  +						 <1200000>, <1200000>,
>>>  +						 <1200000>, <1200000>,
>>>  +						 <1200000>, <1200000>;
>>>  +
>>>  +		pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
>>>  +		pinctrl-names = "default";
>>>  +
>>>  +		regulators {
>>>  +			vadc_reg: LDO1 {
>>>  +				regulator-name = "VADC_3.3V_C210";
>>>  +				regulator-min-microvolt = <3300000>;
>>>  +				regulator-max-microvolt = <3300000>;
>>>  +				regulator-always-on;
>>>  +
>>>  +			};
>>>  +			valive_reg: LDO2 {
>>>  +				regulator-name = "VALIVE_1.1V_C210";
>>>  +				regulator-min-microvolt = <1100000>;
>>>  +				regulator-max-microvolt = <1100000>;
>>>  +				regulator-always-on;
>>>  +
>>>  +			};
>>>  +
>>>  +			vusb_reg: LDO3 {
>>>  +				regulator-name = "VUSB_1.1V_C210";
>>>  +				regulator-min-microvolt = <1100000>;
>>>  +				regulator-max-microvolt = <1100000>;
>>>  +			};
>>>  +
>>>  +			vmipi_reg: LDO4 {
>>>  +				regulator-name = "VMIPI_1.8V";
>>>  +				regulator-min-microvolt = <1800000>;
>>>  +				regulator-max-microvolt = <1800000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			vhsic_reg: LDO5 {
>>>  +				regulator-name = "VHSIC_1.2V";
>>>  +				regulator-min-microvolt = <1200000>;
>>>  +				regulator-max-microvolt = <1200000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			vpda_reg: LDO6 {
>>>  +				regulator-name = "VCC_1.8V_PDA";
>>>  +				regulator-min-microvolt = <1800000>;
>>>  +				regulator-max-microvolt = <1800000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			vcam_reg: LDO7 {
>>>  +				regulator-name = "CAM_ISP_1.8V";
>>>  +				regulator-min-microvolt = <1800000>;
>>>  +				regulator-max-microvolt = <1800000>;
>>>  +			};
>>>  +
>>>  +			vusbdac_reg: LDO8 {
>>>  +				regulator-name = "VUSB+VDAC_3.3V_C210";
>>>  +				regulator-min-microvolt = <3300000>;
>>>  +				regulator-max-microvolt = <3300000>;
>>>  +			};
>>>  +
>>>  +			vccpda_reg: LDO9 {
>>>  +				regulator-name = "VCC_2.8V_PDA";
>>>  +				regulator-min-microvolt = <2800000>;
>>>  +				regulator-max-microvolt = <2800000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			vtouch_reg: LDO11 {
>>>  +				regulator-name = "TOUCH_2.8V";
>>>  +				regulator-min-microvolt = <2800000>;
>>>  +				regulator-max-microvolt = <2800000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			vpll_reg: LDO10 {
>>>  +				regulator-name = "VPLL_1.1V";
>>>  +				regulator-min-microvolt = <1100000>;
>>>  +				regulator-max-microvolt = <1100000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			vtcam_reg: LDO12 {
>>>  +				regulator-name = "VT_CAM_1.8V";
>>>  +				regulator-min-microvolt = <1800000>;
>>>  +				regulator-max-microvolt = <1800000>;
>>>  +			};
>>>  +
>>>  +			vcclcd_reg: LDO13 {
>>>  +				regulator-name = "VCC_3.0V_LCD";
>>>  +				regulator-min-microvolt = <3000000>;
>>>  +				regulator-max-microvolt = <3000000>;
>>>  +			};
>>>  +
>>>  +			vmotor_reg: LDO14 {
>>>  +				regulator-name = "VCC_2.8V_MOTOR";
>>>  +				regulator-min-microvolt = <2800000>;
>>>  +				regulator-max-microvolt = <2800000>;
>>>  +			};
>>>  +
>>>  +			vled_reg: LDO15 {
>>>  +				regulator-name = "LED_A_2.8V";
>>>  +				regulator-min-microvolt = <2800000>;
>>>  +				regulator-max-microvolt = <2800000>;
>>>  +			};
>>>  +
>>>  +			camsensor_reg: LDO16 {
>>>  +				regulator-name = "CAM_SENSOR_IO_1.8V";
>>>  +				regulator-min-microvolt = <1800000>;
>>>  +				regulator-max-microvolt = <1800000>;
>>>  +			};
>>>  +
>>>  +			vtf_reg: LDO17 {
>>>  +				regulator-name = "VTF_2.8V";
>>>  +				regulator-min-microvolt = <2800000>;
>>>  +				regulator-max-microvolt = <2800000>;
>>>  +			};
>>>  +
>>>  +			vtouchled_reg: LDO18 {
>>>  +				regulator-name = "TOUCH_LED_3.3V";
>>>  +				regulator-min-microvolt = <2500000>;
>>>  +				regulator-max-microvolt = <3300000>;
>>>  +			};
>>>  +
>>>  +			vddq_reg: LDO21 {
>>>  +				regulator-name = "VDDQ_M1M2_1.2V";
>>>  +				regulator-min-microvolt = <1200000>;
>>>  +				regulator-max-microvolt = <1200000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			varm_breg: BUCK1 {
>>>  +				//regulator-name = "VARM_1.2V_C210";
>>>  +				regulator-name = "vdd_arm";
>>>  +				regulator-min-microvolt = <65000>;
>>>  +				regulator-max-microvolt = <2225000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			vint_breg: BUCK2 {
>>>  +				regulator-name = "VINT_1.1V_C210";
>>>  +				regulator-min-microvolt = <65000>;
>>>  +				regulator-max-microvolt = <2225000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			vg3d_breg: BUCK3 {
>>>  +				regulator-name = "G3D_1.1V";
>>>  +				regulator-min-microvolt = <900000>;
>>>  +				regulator-max-microvolt = <1200000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			camisp_breg: BUCK4 {
>>>  +				regulator-name = "CAM_ISP_CORE_1.2V";
>>>  +				regulator-min-microvolt = <1200000>;
>>>  +				regulator-max-microvolt = <1200000>;
>>>  +			};
>>>  +
>>>  +			vmem_breg: BUCK5 {
>>>  +				regulator-name = "VMEM_1.2V";
>>>  +				regulator-min-microvolt = <1200000>;
>>>  +				regulator-max-microvolt = <1200000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			vccsub_breg: BUCK7 {
>>>  +				regulator-name = "VCC_SUB_2.0V";
>>>  +				regulator-min-microvolt = <2000000>;
>>>  +				regulator-max-microvolt = <2000000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			safe1_sreg: ESAFEOUT1 {
>>>  +				regulator-name = "SAFEOUT1";
>>>  +			};
>>>  +
>>>  +			safe2_sreg: ESAFEOUT2 {
>>>  +				regulator-name = "SAFEOUT2";
>>>  +				regulator-boot-on;
>>>  +			};
>>>  +
>>>  +			charger_reg: CHARGER {
>>>  +				regulator-name = "CHARGER";
>>>  +				regulator-min-microamp = <60000>;
>>>  +				regulator-max-microamp = <2580000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			chargercv_reg: CHARGER_CV {
>>>  +				regulator-name = "CHARGER_CV";
>>>  +				regulator-min-microvolt = <3800000>;
>>>  +				regulator-max-microvolt = <4100000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +		};
>>>  +
>>>  +	};
>>>  +};
>>>  +
>>>  +
>>>  +&gpu {
>>>  +	status = "okay";
>>>  +
>>>  +	mali-supply = <&vg3d_breg>;
>>>  +	regulator-microvolt-offset = <50000>;
>>>  +	regulator-microsecs-delay = <50>;
>>>  +};
>>>  +
>>>  +
>>>  +&sdhci_0 {
>>>  +	status = "okay";
>>>  +
>>>  +	bus-width = <8>;
>>>  +	non-removable;
>>>  +	vmmc-supply = <&vemmc_reg>;
>>>  +
>>>  +	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_bus8>;
>>>  +	pinctrl-names = "default";
>>>  +};
>>>  +
>>>  +&sdhci_2 {
>>>  +	status = "okay";
>>>  +
>>>  +	bus-width = <4>;
>>>  +	cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
>>>  +	vmmc-supply = <&vtf_reg>;
>>>  +
>>>  +	pinctrl-0 = <&sd2_clk>, <&sd2_cmd>, <&sd2_bus4>;
>>>  +	pinctrl-names = "default";
>>>  +};
>>>  +
>>>  +&ehci {
>>>  +	port@0 {
>>>  +		status = "okay";
>>>  +	};
>>>  +
>>>  +	port@1 {
>>>  +		status = "okay";
>>>  +	};
>>>  +
>>>  +	port@2 {
>>>  +		status = "okay";
>>>  +	};
>>>  +
>>>  +};
>> 
>> This is duplicated 'ehci' node, probable an artifact from the earlier
>> rebase. Please remove it.
> 
> Right, didn't even notice it.
> 
> Will remove it and send a V2.
> 
> Cheers,
> -Paul
> 
>>>  +
>>>  +
>>>  +&sdhci_3 {
>>>  +	status = "okay";
>>>  +
>>>  +	#address-cells = <1>;
>>>  +	#size-cells = <0>;
>>>  +
>>>  +	non-removable;
>>>  +	bus-width = <4>;
>>>  +	mmc-pwrseq = <&wlan_pwrseq>;
>>>  +	vmmc-supply = <&vtf_reg>;
>>>  +
>>>  +	pinctrl-names = "default";
>>>  +	pinctrl-0 = <&sd3_clk>, <&sd3_cmd>, <&sd3_bus4>;
>>>  +
>>>  +	brcmf: wifi@1 {
>>>  +		compatible = "brcm,bcm4330-fmac";
>>>  +		reg = <1>;
>>>  +
>>>  +		interrupt-parent = <&gpx2>;
>>>  +		interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
>>>  +		interrupt-names = "host-wake";
>>>  +	};
>>>  +};
>>>  +
>>>  +
>>>  +&serial_0 {
>>>  +	status = "okay";
>>>  +
>>>  +	pinctrl-names = "default";
>>>  +	pinctrl-0 = <&bt_en>, <&bt_res>, <&uart0_data>, <&uart0_fctl>;
>>>  +
>>>  +	bluetooth {
>>>  +		compatible = "brcm,bcm4330-bt";
>>>  +
>>>  +		shutdown-gpios = <&gpl0 4 GPIO_ACTIVE_HIGH>;
>>>  +		reset-gpios = <&gpl1 0 GPIO_ACTIVE_HIGH>;
>>>  +		device-wakeup-gpios = <&gpx3 1 GPIO_ACTIVE_HIGH>;
>>>  +		host-wakeup-gpios = <&gpx2 6 GPIO_ACTIVE_HIGH>;
>>>  +	};
>>>  +};
>>>  +
>>>  +&serial_1 {
>>>  +	status = "okay";
>>>  +};
>>>  +
>>>  +&serial_2 {
>>>  +	status = "okay";
>>>  +};
>>>  +
>>>  +&serial_3 {
>>>  +	status = "okay";
>>>  +};
>>>  +
>>>  +&tmu {
>>>  +	status = "okay";
>>>  +};
>>>  +
>>>  +
>>>  +&pinctrl_0 {
>>>  +	pinctrl-names = "default";
>>>  +	pinctrl-0 = <&sleep0>;
>>>  +
>>>  +
>>>  +	sleep0: sleep-states {
>>>  +		gpa0-0 {
>>>  +			samsung,pins = "gpa0-0";
>>>  +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
>>>  +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
>>>  +		};
>>>  +
>>>  +		gpa0-1 {
>>>  +			samsung,pins = "gpa0-1";
>>>  +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT0>;
>>>  +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
>>>  +		};
>>>  +
>>>  +		gpa0-2 {
>>>  +			samsung,pins = "gpa0-2";
>>>  +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
>>>  +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
>>>  +		};
>>>  +
>>>  +		gpa0-3 {
>>>  +			samsung,pins = "gpa0-3";
>>>  +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT1>;
>>>  +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
>>>  +		};
>>>  +	};
>>>  +};
>>>  +
>>>  +&pinctrl_1 {
>>>  +	mhl_int: mhl-int {
>>>  +		samsung,pins = "gpf3-5";
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>>  +	};
>>>  +
>>>  +	i2c_mhl_bus: i2c-mhl-bus {
>>>  +		samsung,pins = "gpf0-4", "gpf0-6";
>>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
>>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
>>>  +	};
>>>  +
>>>  +	usb_sel: usb-sel {
>>>  +		samsung,pins = "gpl0-6";
>>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
>>>  +		samsung,pin-val = <0>;
>>>  +	};
>>>  +
>>>  +	bt_en: bt-en {
>>>  +		samsung,pins = "gpl0-4";
>>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
>>>  +		samsung,pin-val = <0>;
>>>  +	};
>>>  +
>>>  +	bt_res: bt-res {
>>>  +		samsung,pins = "gpl1-0";
>>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
>>>  +		samsung,pin-val = <0>;
>>>  +	};
>>>  +
>>>  +
>>>  +	otg_gp: otg-gp {
>>>  +		samsung,pins = "gpx3-3";
>>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
>>>  +		samsung,pin-val = <0>;
>>>  +	};
>>>  +
>>>  +	mag_mhl_gpio: mag-mhl-gpio {
>>>  +		samsung,pins = "gpd0-2";
>>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>>  +	};
>>>  +
>>>  +
>>>  +	max8997_irq: max8997-irq {
>>>  +		samsung,pins = "gpx0-7";
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>>  +	};
>>>  +
>>>  +	max17042_fuel_irq: max17042-fuel-irq {
>>>  +		samsung,pins = "gpx2-3";
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>>  +	};
>>>  +
>>>  +	tsp224_irq: tsp224-irq {
>>>  +		samsung,pins = "gpx0-4";
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
>>>  +	};
>>>  +};
>> 
>> Best regards
>> --
>> Marek Szyprowski, PhD
>> Samsung R&D Institute Poland
>> 
> 



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
@ 2020-03-13 14:36         ` Paul Cercueil
  0 siblings, 0 replies; 35+ messages in thread
From: Paul Cercueil @ 2020-03-13 14:36 UTC (permalink / raw)
  To: Marek Szyprowski
  Cc: Mark Rutland, devicetree, Stenkin Evgeniy, linux-samsung-soc,
	linux-kernel, Krzysztof Kozlowski, Rob Herring, Kukjin Kim,
	linux-arm-kernel



Le ven., mars 13, 2020 at 15:29, Paul Cercueil <paul@crapouillou.net> a 
écrit :
> Hi Marek,
> 
> 
> Le ven., mars 13, 2020 at 09:03, Marek Szyprowski 
> <m.szyprowski@samsung.com> a écrit :
>> 
>> On 12.03.2020 16:34, Paul Cercueil wrote:
>>>  From: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>>> 
>>>  Add devicetree file for the Exynos 4210 based Galaxy S2 (i9100 
>>> \x7f\x7fversion).
>>> 
>>>  Signed-off-by: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>>>  Signed-off-by: Paul Cercueil <paul@crapouillou.net>
>>>  ---
>>>    arch/arm/boot/dts/Makefile             |   1 +
>>>    arch/arm/boot/dts/exynos4210-i9100.dts | 816 
>>> \x7f\x7f+++++++++++++++++++++++++
>>>    2 files changed, 817 insertions(+)
>>>    create mode 100644 arch/arm/boot/dts/exynos4210-i9100.dts
>>> 
>>>  diff --git a/arch/arm/boot/dts/Makefile 
>>> b/arch/arm/boot/dts/Makefile
>>>  index d6546d2676b9..522436d30690 100644
>>>  --- a/arch/arm/boot/dts/Makefile
>>>  +++ b/arch/arm/boot/dts/Makefile
>>>  @@ -181,6 +181,7 @@ dtb-$(CONFIG_ARCH_EXYNOS3) += \
>>>    	exynos3250-monk.dtb \
>>>    	exynos3250-rinato.dtb
>>>    dtb-$(CONFIG_ARCH_EXYNOS4) += \
>>>  +	exynos4210-i9100.dtb \
>>>    	exynos4210-origen.dtb \
>>>    	exynos4210-smdkv310.dtb \
>>>    	exynos4210-trats.dtb \
>>>  diff --git a/arch/arm/boot/dts/exynos4210-i9100.dts 
>>> \x7f\x7fb/arch/arm/boot/dts/exynos4210-i9100.dts
>>>  new file mode 100644
>>>  index 000000000000..c218e34959be
>>>  --- /dev/null
>>>  +++ b/arch/arm/boot/dts/exynos4210-i9100.dts
>>>  @@ -0,0 +1,816 @@
>>>  +// SPDX-License-Identifier: GPL-2.0
>>>  +/*
>>>  + * Samsung's Exynos4210 based Galaxy S2 (i9100 version) device 
>>> tree
>>>  + *
>>>  + * Copyright (c) 2012 Samsung Electronics Co., Ltd.
>>>  + *		http://www.samsung.com
>>>  + * Copyright (c) 2020 Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>>>  + * Copyright (c) 2020 Paul Cercueil <paul@crapouillou.net>
>>>  + *
>>>  + * Device tree source file for Samsung's Galaxy S2 smartphone 
>>> \x7f\x7f(i9100 version),
>>>  + * which is based on Samsung's Exynos4210 SoC.
>>>  + */
>>>  +
>>>  +/dts-v1/;
>>>  +#include "exynos4210.dtsi"
>>>  +#include "exynos4412-ppmu-common.dtsi"
>>>  +
>>>  +#include <dt-bindings/gpio/gpio.h>
>>>  +#include <dt-bindings/input/linux-event-codes.h>
>>>  +
>>>  +/ {
>>>  +	model = "Samsung Galaxy S2 (i9100)";
>>>  +	compatible = "samsung,i9100", "samsung,exynos4210", 
>>> \x7f\x7f"samsung,exynos4";
>>>  +
>>>  +
>>>  +	memory@40000000 {
>>>  +		device_type = "memory";
>>>  +		reg = <0x40000000 0x40000000>;
>>>  +	};
>>>  +
>>>  +	vemmc_reg: regulator-0 {
>>>  +		compatible = "regulator-fixed";
>>>  +		regulator-name = "VMEM_VDD_2.8V";
>>>  +		regulator-min-microvolt = <2800000>;
>>>  +		regulator-max-microvolt = <2800000>;
>>>  +		gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
>>>  +		enable-active-high;
>>>  +	};
>>>  +
>>>  +	tsp_reg: regulator-1 {
>>>  +		compatible = "regulator-fixed";
>>>  +		regulator-name = "TSP_FIXED_VOLTAGES";
>>>  +		regulator-min-microvolt = <3300000>;
>>>  +		regulator-max-microvolt = <3300000>;
>>>  +		gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
>>>  +		startup-delay-us = <70000>;
>>>  +		enable-active-high;
>>>  +		regulator-boot-on;
>>>  +		regulator-always-on;
>>>  +	};
>>>  +
>>>  +	cam_af_28v_reg: regulator-3 {
>>>  +		compatible = "regulator-fixed";
>>>  +		regulator-name = "8M_AF_2.8V_EN";
>>>  +		regulator-min-microvolt = <2800000>;
>>>  +		regulator-max-microvolt = <2800000>;
>>>  +		gpio = <&gpk1 1 GPIO_ACTIVE_HIGH>;
>>>  +		enable-active-high;
>>>  +	};
>>>  +
>>>  +	cam_io_en_reg: regulator-4 {
>>>  +		compatible = "regulator-fixed";
>>>  +		regulator-name = "CAM_IO_EN";
>>>  +		regulator-min-microvolt = <2800000>;
>>>  +		regulator-max-microvolt = <2800000>;
>>>  +		gpio = <&gpe2 1 GPIO_ACTIVE_HIGH>;
>>>  +		enable-active-high;
>>>  +	};
>>>  +
>>>  +	cam_io_12v_reg: regulator-5 {
>>>  +		compatible = "regulator-fixed";
>>>  +		regulator-name = "8M_1.2V_EN";
>>>  +		regulator-min-microvolt = <1200000>;
>>>  +		regulator-max-microvolt = <1200000>;
>>>  +		gpio = <&gpe2 5 GPIO_ACTIVE_HIGH>;
>>>  +		enable-active-high;
>>>  +	};
>>>  +
>>>  +	vt_core_15v_reg: regulator-6 {
>>>  +		compatible = "regulator-fixed";
>>>  +		regulator-name = "VT_CORE_1.5V";
>>>  +		regulator-min-microvolt = <1500000>;
>>>  +		regulator-max-microvolt = <1500000>;
>>>  +		gpio = <&gpe2 2 GPIO_ACTIVE_HIGH>;
>>>  +		enable-active-high;
>>>  +	};
>>>  +
>>>  +	gpio-keys {
>>>  +		compatible = "gpio-keys";
>>>  +
>>>  +		vol-down {
>>>  +			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
>>>  +			linux,code = <KEY_VOLUMEDOWN>;
>>>  +			label = "volume down";
>>>  +			debounce-interval = <10>;
>>>  +		};
>>>  +
>>>  +		vol-up {
>>>  +			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
>>>  +			linux,code = <KEY_VOLUMEUP>;
>>>  +			label = "volume up";
>>>  +			debounce-interval = <10>;
>>>  +		};
>>>  +
>>>  +		power {
>>>  +			gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
>>>  +			linux,code = <KEY_POWER>;
>>>  +			label = "power";
>>>  +			debounce-interval = <10>;
>>>  +			wakeup-source;
>>>  +		};
>>>  +
>>>  +		ok {
>>>  +			gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
>>>  +			linux,code = <KEY_OK>;
>>>  +			label = "ok";
>>>  +			debounce-interval = <10>;
>>>  +		};
>>>  +	};
>>>  +
>>>  +	wlan_pwrseq: sdhci3-pwrseq {
>>>  +		compatible = "mmc-pwrseq-simple";
>>>  +		reset-gpios = <&gpl1 2 GPIO_ACTIVE_LOW>;
>>>  +	};
>>>  +
>>>  +	i2c_max17042_fuel: i2c-gpio-3 {
>>>  +		compatible = "i2c-gpio";
>>>  +		#address-cells = <1>;
>>>  +		#size-cells = <0>;
>>>  +
>>>  +		sda-gpios = <&gpy4 0 GPIO_ACTIVE_HIGH>;
>>>  +		scl-gpios = <&gpy4 1 GPIO_ACTIVE_HIGH>;
>>>  +		i2c-gpio,delay-us = <5>;
>>>  +
>>>  +		battery@36 {
>>>  +			compatible = "maxim,max17042";
>>>  +
>>>  +			interrupt-parent = <&gpx2>;
>>>  +			interrupts = <3 2>;
>>>  +
>>>  +			pinctrl-0 = <&max17042_fuel_irq>;
>>>  +			pinctrl-names = "default";
>>>  +
>>>  +			reg = <0x36>;
>>>  +			maxim,over-heat-temp = <700>;
>>>  +			maxim,over-volt = <4500>;
>>>  +
>>>  +		};
>>>  +	};
>>>  +
>>>  +	spi-lcd {
>>>  +		compatible = "spi-gpio";
>>>  +		#address-cells = <1>;
>>>  +		#size-cells = <0>;
>>>  +
>>>  +		num-chipselects = <1>;
>>>  +		cs-gpios = <&gpy4 3 GPIO_ACTIVE_HIGH>;
>> LD9040 CS is active low, so this board needs probably the same fix a
>> Universal C210 board: https://patchwork.kernel.org/patch/11420231/ 
>> Are
>> you sure it really works now with v5.6-rcX kernels? Or you just got 
>> \x7fthe
>> panel working only because the bootloader enabled it?
> 
> Sorry but the fix looks bogus to me. The spi-gpio driver calls 
> gpiod_set_value(0) when the CS is going *active*, and 
> gpiod_set_value(1) when the CS is going *inactive*. If you use the 
> GPIO_ACTIVE_LOW flag, the levels are inverted, and the CS is high 
> when active, which is the opposite of what you want.

Correction: the driver sets the SPI_CS_HIGH flag. I guess that's what's 
new. So indeed GPIO_ACTIVE_LOW should be used.

-Paul

>>>  +		sck-gpios = <&gpy3 1 GPIO_ACTIVE_HIGH>;
>>>  +		mosi-gpios = <&gpy3 3 GPIO_ACTIVE_HIGH>;
>>>  +
>>>  +		lcd@0 {
>>>  +			compatible = "samsung,ld9040";
>>>  +			reg = <0>;
>>>  +
>>>  +			spi-max-frequency = <1200000>;
>>>  +			spi-cpol;
>>>  +			spi-cpha;
>>>  +
>>>  +			vdd3-supply = <&vmipi_reg>;
>>>  +			vci-supply = <&vcclcd_reg>;
>>>  +
>>>  +			reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
>>>  +			power-on-delay = <10>;
>>>  +			reset-delay = <10>;
>>>  +
>>>  +			panel-width-mm = <90>;
>>>  +			panel-height-mm = <154>;
>>>  +
>>>  +			display-timings {
>>>  +				timing {
>>>  +					clock-frequency = <23492370>;
>>>  +					hactive = <480>;
>>>  +					vactive = <800>;
>>>  +					hback-porch = <16>;
>>>  +					hfront-porch = <16>;
>>>  +					vback-porch = <2>;
>>>  +					vfront-porch = <28>;
>>>  +					hsync-len = <2>;
>>>  +					vsync-len = <1>;
>>>  +					hsync-active = <0>;
>>>  +					vsync-active = <0>;
>>>  +					de-active = <0>;
>>>  +					pixelclk-active = <0>;
>>>  +				};
>>>  +			};
>>>  +
>>>  +			port {
>>>  +				lcd_ep: endpoint {
>>>  +					remote-endpoint = <&fimd_dpi_ep>;
>>>  +				};
>>>  +			};
>>>  +		};
>>>  +	};
>>>  +
>>>  +	fixed-rate-clocks {
>>>  +		xxti {
>>>  +			compatible = "samsung,clock-xxti";
>>>  +			clock-frequency = <0>;
>>>  +		};
>>>  +
>>>  +		xusbxti {
>>>  +			compatible = "samsung,clock-xusbxti";
>>>  +			clock-frequency = <24000000>;
>>>  +		};
>>>  +	};
>>>  +
>>>  +	thermal-zones {
>>>  +		cpu_thermal: cpu-thermal {
>>>  +			cooling-maps {
>>>  +				map0 {
>>>  +					/* Corresponds to 800MHz */
>>>  +					cooling-device = <&cpu0 2 2>;
>>>  +				};
>>>  +				map1 {
>>>  +					/* Corresponds to 200MHz */
>>>  +					cooling-device = <&cpu0 4 4>;
>>>  +				};
>>>  +			};
>>>  +		};
>>>  +	};
>>>  +
>>>  +};
>>>  +
>>>  +&camera {
>>>  +	status = "okay";
>>>  +};
>>>  +
>>>  +&cpu0 {
>>>  +	cpu0-supply = <&varm_breg>;
>>>  +};
>>>  +
>>>  +&exynos_usbphy {
>>>  +	status = "okay";
>>>  +
>>>  +	vbus-supply = <&safe1_sreg>;
>>>  +};
>>>  +
>>>  +&fimc_0 {
>>>  +	status = "okay";
>>>  +
>>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC0>, <&clock 
>>> \x7f\x7fCLK_SCLK_FIMC0>;
>>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>>  +	assigned-clock-rates = <0>, <160000000>;
>>>  +};
>>>  +
>>>  +&fimc_1 {
>>>  +	status = "okay";
>>>  +
>>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC1>, <&clock 
>>> \x7f\x7fCLK_SCLK_FIMC1>;
>>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>>  +	assigned-clock-rates = <0>, <160000000>;
>>>  +};
>>>  +
>>>  +&fimc_2 {
>>>  +	status = "okay";
>>>  +
>>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC2>, <&clock 
>>> \x7f\x7fCLK_SCLK_FIMC2>;
>>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>>  +	assigned-clock-rates = <0>, <160000000>;
>>>  +};
>>>  +
>>>  +&fimc_3 {
>>>  +	status = "okay";
>>>  +
>>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC3>, <&clock 
>>> \x7f\x7fCLK_SCLK_FIMC3>;
>>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>>  +	assigned-clock-rates = <0>, <160000000>;
>>>  +};
>>>  +
>>>  +&fimd {
>>>  +	status = "okay";
>>>  +	#address-cells = <1>;
>>>  +	#size-cells = <0>;
>>>  +
>>>  +	samsung,invert-vden;
>>>  +	samsung,invert-vclk;
>>>  +
>>>  +	pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
>>>  +	pinctrl-names = "default";
>>>  +
>>>  +	port@3 {
>>>  +		reg = <3>;
>>>  +
>>>  +		fimd_dpi_ep: endpoint {
>>>  +			remote-endpoint = <&lcd_ep>;
>>>  +		};
>>>  +	};
>>>  +};
>>>  +
>>>  +&hsotg {
>>>  +	status = "okay";
>>>  +
>>>  +	dr_mode = "otg";
>> The the host mode really works with DWC2? Afair the host mode worked
>> only when it was rerouted by PHY to the EHCI (at least on 
>> \x7fUniversalC210
>> board, which is very similar to GS2).
> 
> I have to say that I didn't try OTG / host, but it does work fine in 
> gadget mode.
> I can change it to dr_mode = "peripheral" for now, if you prefer.
> 
>>>  +	vusb_d-supply = <&vusb_reg>;
>>>  +	vusb_a-supply = <&vusbdac_reg>;
>>>  +};
>>>  +
>>>  +&ehci {
>>>  +	status = "okay";
>>>  +
>>>  +	port@0 {
>>>  +		status = "okay";
>>>  +	};
>>>  +
>>>  +	port@1 {
>>>  +		status = "okay";
>>>  +	};
>>>  +
>>>  +	port@2 {
>>>  +		status = "okay";
>>>  +	};
>>>  +};
>> 
>> This is the old, obsolete exynos-ehci binding. Please remove 'port'
>> nodes and use standard USB phy bindings like it has been done in the
>> following patch: https://patchwork.kernel.org/patch/11060465/
> 
> Will do.
> 
>> BTW, do you really need all 3 phys/ports?
> 
> No idea!
> 
>>>  +
>>>  +
>>>  +&i2c_3 {
>>>  +	status = "okay";
>>>  +
>>>  +	samsung,i2c-sda-delay = <100>;
>>>  +	samsung,i2c-slave-addr = <0x10>;
>>>  +	samsung,i2c-max-bus-freq = <100000>;
>>>  +
>>>  +	pinctrl-0 = <&i2c3_bus>;
>>>  +	pinctrl-names = "default";
>>>  +
>>>  +	mxt224-touchscreen@4a {
>>>  +		compatible = "atmel,maxtouch";
>>>  +		reg = <0x4a>;
>>>  +
>>>  +		interrupt-parent = <&gpx0>;
>>>  +		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
>>>  +
>>>  +		avdd-supply = <&tsp_reg>;
>>>  +		vdd-supply = <&tsp_reg>;
>>>  +	};
>>>  +};
>>>  +
>>>  +&i2c_7 {
>>>  +	status = "okay";
>>>  +
>>>  +	samsung,i2c-sda-delay = <100>;
>>>  +	samsung,i2c-slave-addr = <0x10>;
>>>  +	samsung,i2c-max-bus-freq = <400000>;
>>>  +
>>>  +	pinctrl-0 = <&i2c7_bus>;
>>>  +	pinctrl-names = "default";
>>>  +
>>>  +	ak8975@c {
>>>  +		compatible = "asahi-kasei,ak8975";
>>>  +		reg = <0x0c>;
>>>  +
>>>  +		gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
>>>  +	};
>>>  +};
>>>  +
>>>  +
>>>  +&i2c_5 {
>>>  +	status = "okay";
>>>  +
>>>  +	samsung,i2c-sda-delay = <100>;
>>>  +	samsung,i2c-slave-addr = <0x10>;
>>>  +	samsung,i2c-max-bus-freq = <100000>;
>>>  +
>>>  +	pinctrl-0 = <&i2c5_bus>;
>>>  +	pinctrl-names = "default";
>>>  +
>>>  +	max8997_pmic@66 {
>>>  +		compatible = "maxim,max8997-pmic";
>>>  +		reg = <0x66>;
>>>  +
>>>  +		interrupts-extended = <&gpx0 7 0>, <&gpx2 3 2>;
>>>  +		interrupt-parent = <&gpx0>;
>>>  +		interrupts = <7 IRQ_TYPE_NONE>;
>>>  +
>>>  +		otg_en-gpios = <&gpx3 3 0>;
>>>  +		usb_sel-gpios = <&gpl0 6 0>;
>>>  +
>>>  +		max8997,pmic-buck1-uses-gpio-dvs;
>>>  +		max8997,pmic-buck2-uses-gpio-dvs;
>>>  +		max8997,pmic-buck5-uses-gpio-dvs;
>>>  +
>>>  +		max8997,pmic-ignore-gpiodvs-side-effect;
>>>  +		max8997,pmic-buck125-default-dvs-idx = <0>;
>>>  +
>>>  +		max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
>>>  +						 <&gpx0 6 GPIO_ACTIVE_HIGH>,
>>>  +						 <&gpl0 0 GPIO_ACTIVE_HIGH>;
>>>  +
>>>  +		max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
>>>  +						 <1250000>, <1200000>,
>>>  +						 <1150000>, <1100000>,
>>>  +						 <1000000>, <950000>;
>>>  +
>>>  +		max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
>>>  +						 <950000>,  <900000>,
>>>  +						 <1100000>, <1000000>,
>>>  +						 <950000>,  <900000>;
>>>  +
>>>  +		max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
>>>  +						 <1200000>, <1200000>,
>>>  +						 <1200000>, <1200000>,
>>>  +						 <1200000>, <1200000>;
>>>  +
>>>  +		pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
>>>  +		pinctrl-names = "default";
>>>  +
>>>  +		regulators {
>>>  +			vadc_reg: LDO1 {
>>>  +				regulator-name = "VADC_3.3V_C210";
>>>  +				regulator-min-microvolt = <3300000>;
>>>  +				regulator-max-microvolt = <3300000>;
>>>  +				regulator-always-on;
>>>  +
>>>  +			};
>>>  +			valive_reg: LDO2 {
>>>  +				regulator-name = "VALIVE_1.1V_C210";
>>>  +				regulator-min-microvolt = <1100000>;
>>>  +				regulator-max-microvolt = <1100000>;
>>>  +				regulator-always-on;
>>>  +
>>>  +			};
>>>  +
>>>  +			vusb_reg: LDO3 {
>>>  +				regulator-name = "VUSB_1.1V_C210";
>>>  +				regulator-min-microvolt = <1100000>;
>>>  +				regulator-max-microvolt = <1100000>;
>>>  +			};
>>>  +
>>>  +			vmipi_reg: LDO4 {
>>>  +				regulator-name = "VMIPI_1.8V";
>>>  +				regulator-min-microvolt = <1800000>;
>>>  +				regulator-max-microvolt = <1800000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			vhsic_reg: LDO5 {
>>>  +				regulator-name = "VHSIC_1.2V";
>>>  +				regulator-min-microvolt = <1200000>;
>>>  +				regulator-max-microvolt = <1200000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			vpda_reg: LDO6 {
>>>  +				regulator-name = "VCC_1.8V_PDA";
>>>  +				regulator-min-microvolt = <1800000>;
>>>  +				regulator-max-microvolt = <1800000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			vcam_reg: LDO7 {
>>>  +				regulator-name = "CAM_ISP_1.8V";
>>>  +				regulator-min-microvolt = <1800000>;
>>>  +				regulator-max-microvolt = <1800000>;
>>>  +			};
>>>  +
>>>  +			vusbdac_reg: LDO8 {
>>>  +				regulator-name = "VUSB+VDAC_3.3V_C210";
>>>  +				regulator-min-microvolt = <3300000>;
>>>  +				regulator-max-microvolt = <3300000>;
>>>  +			};
>>>  +
>>>  +			vccpda_reg: LDO9 {
>>>  +				regulator-name = "VCC_2.8V_PDA";
>>>  +				regulator-min-microvolt = <2800000>;
>>>  +				regulator-max-microvolt = <2800000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			vtouch_reg: LDO11 {
>>>  +				regulator-name = "TOUCH_2.8V";
>>>  +				regulator-min-microvolt = <2800000>;
>>>  +				regulator-max-microvolt = <2800000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			vpll_reg: LDO10 {
>>>  +				regulator-name = "VPLL_1.1V";
>>>  +				regulator-min-microvolt = <1100000>;
>>>  +				regulator-max-microvolt = <1100000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			vtcam_reg: LDO12 {
>>>  +				regulator-name = "VT_CAM_1.8V";
>>>  +				regulator-min-microvolt = <1800000>;
>>>  +				regulator-max-microvolt = <1800000>;
>>>  +			};
>>>  +
>>>  +			vcclcd_reg: LDO13 {
>>>  +				regulator-name = "VCC_3.0V_LCD";
>>>  +				regulator-min-microvolt = <3000000>;
>>>  +				regulator-max-microvolt = <3000000>;
>>>  +			};
>>>  +
>>>  +			vmotor_reg: LDO14 {
>>>  +				regulator-name = "VCC_2.8V_MOTOR";
>>>  +				regulator-min-microvolt = <2800000>;
>>>  +				regulator-max-microvolt = <2800000>;
>>>  +			};
>>>  +
>>>  +			vled_reg: LDO15 {
>>>  +				regulator-name = "LED_A_2.8V";
>>>  +				regulator-min-microvolt = <2800000>;
>>>  +				regulator-max-microvolt = <2800000>;
>>>  +			};
>>>  +
>>>  +			camsensor_reg: LDO16 {
>>>  +				regulator-name = "CAM_SENSOR_IO_1.8V";
>>>  +				regulator-min-microvolt = <1800000>;
>>>  +				regulator-max-microvolt = <1800000>;
>>>  +			};
>>>  +
>>>  +			vtf_reg: LDO17 {
>>>  +				regulator-name = "VTF_2.8V";
>>>  +				regulator-min-microvolt = <2800000>;
>>>  +				regulator-max-microvolt = <2800000>;
>>>  +			};
>>>  +
>>>  +			vtouchled_reg: LDO18 {
>>>  +				regulator-name = "TOUCH_LED_3.3V";
>>>  +				regulator-min-microvolt = <2500000>;
>>>  +				regulator-max-microvolt = <3300000>;
>>>  +			};
>>>  +
>>>  +			vddq_reg: LDO21 {
>>>  +				regulator-name = "VDDQ_M1M2_1.2V";
>>>  +				regulator-min-microvolt = <1200000>;
>>>  +				regulator-max-microvolt = <1200000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			varm_breg: BUCK1 {
>>>  +				//regulator-name = "VARM_1.2V_C210";
>>>  +				regulator-name = "vdd_arm";
>>>  +				regulator-min-microvolt = <65000>;
>>>  +				regulator-max-microvolt = <2225000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			vint_breg: BUCK2 {
>>>  +				regulator-name = "VINT_1.1V_C210";
>>>  +				regulator-min-microvolt = <65000>;
>>>  +				regulator-max-microvolt = <2225000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			vg3d_breg: BUCK3 {
>>>  +				regulator-name = "G3D_1.1V";
>>>  +				regulator-min-microvolt = <900000>;
>>>  +				regulator-max-microvolt = <1200000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			camisp_breg: BUCK4 {
>>>  +				regulator-name = "CAM_ISP_CORE_1.2V";
>>>  +				regulator-min-microvolt = <1200000>;
>>>  +				regulator-max-microvolt = <1200000>;
>>>  +			};
>>>  +
>>>  +			vmem_breg: BUCK5 {
>>>  +				regulator-name = "VMEM_1.2V";
>>>  +				regulator-min-microvolt = <1200000>;
>>>  +				regulator-max-microvolt = <1200000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			vccsub_breg: BUCK7 {
>>>  +				regulator-name = "VCC_SUB_2.0V";
>>>  +				regulator-min-microvolt = <2000000>;
>>>  +				regulator-max-microvolt = <2000000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			safe1_sreg: ESAFEOUT1 {
>>>  +				regulator-name = "SAFEOUT1";
>>>  +			};
>>>  +
>>>  +			safe2_sreg: ESAFEOUT2 {
>>>  +				regulator-name = "SAFEOUT2";
>>>  +				regulator-boot-on;
>>>  +			};
>>>  +
>>>  +			charger_reg: CHARGER {
>>>  +				regulator-name = "CHARGER";
>>>  +				regulator-min-microamp = <60000>;
>>>  +				regulator-max-microamp = <2580000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +			chargercv_reg: CHARGER_CV {
>>>  +				regulator-name = "CHARGER_CV";
>>>  +				regulator-min-microvolt = <3800000>;
>>>  +				regulator-max-microvolt = <4100000>;
>>>  +				regulator-always-on;
>>>  +			};
>>>  +
>>>  +		};
>>>  +
>>>  +	};
>>>  +};
>>>  +
>>>  +
>>>  +&gpu {
>>>  +	status = "okay";
>>>  +
>>>  +	mali-supply = <&vg3d_breg>;
>>>  +	regulator-microvolt-offset = <50000>;
>>>  +	regulator-microsecs-delay = <50>;
>>>  +};
>>>  +
>>>  +
>>>  +&sdhci_0 {
>>>  +	status = "okay";
>>>  +
>>>  +	bus-width = <8>;
>>>  +	non-removable;
>>>  +	vmmc-supply = <&vemmc_reg>;
>>>  +
>>>  +	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_bus8>;
>>>  +	pinctrl-names = "default";
>>>  +};
>>>  +
>>>  +&sdhci_2 {
>>>  +	status = "okay";
>>>  +
>>>  +	bus-width = <4>;
>>>  +	cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
>>>  +	vmmc-supply = <&vtf_reg>;
>>>  +
>>>  +	pinctrl-0 = <&sd2_clk>, <&sd2_cmd>, <&sd2_bus4>;
>>>  +	pinctrl-names = "default";
>>>  +};
>>>  +
>>>  +&ehci {
>>>  +	port@0 {
>>>  +		status = "okay";
>>>  +	};
>>>  +
>>>  +	port@1 {
>>>  +		status = "okay";
>>>  +	};
>>>  +
>>>  +	port@2 {
>>>  +		status = "okay";
>>>  +	};
>>>  +
>>>  +};
>> 
>> This is duplicated 'ehci' node, probable an artifact from the earlier
>> rebase. Please remove it.
> 
> Right, didn't even notice it.
> 
> Will remove it and send a V2.
> 
> Cheers,
> -Paul
> 
>>>  +
>>>  +
>>>  +&sdhci_3 {
>>>  +	status = "okay";
>>>  +
>>>  +	#address-cells = <1>;
>>>  +	#size-cells = <0>;
>>>  +
>>>  +	non-removable;
>>>  +	bus-width = <4>;
>>>  +	mmc-pwrseq = <&wlan_pwrseq>;
>>>  +	vmmc-supply = <&vtf_reg>;
>>>  +
>>>  +	pinctrl-names = "default";
>>>  +	pinctrl-0 = <&sd3_clk>, <&sd3_cmd>, <&sd3_bus4>;
>>>  +
>>>  +	brcmf: wifi@1 {
>>>  +		compatible = "brcm,bcm4330-fmac";
>>>  +		reg = <1>;
>>>  +
>>>  +		interrupt-parent = <&gpx2>;
>>>  +		interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
>>>  +		interrupt-names = "host-wake";
>>>  +	};
>>>  +};
>>>  +
>>>  +
>>>  +&serial_0 {
>>>  +	status = "okay";
>>>  +
>>>  +	pinctrl-names = "default";
>>>  +	pinctrl-0 = <&bt_en>, <&bt_res>, <&uart0_data>, <&uart0_fctl>;
>>>  +
>>>  +	bluetooth {
>>>  +		compatible = "brcm,bcm4330-bt";
>>>  +
>>>  +		shutdown-gpios = <&gpl0 4 GPIO_ACTIVE_HIGH>;
>>>  +		reset-gpios = <&gpl1 0 GPIO_ACTIVE_HIGH>;
>>>  +		device-wakeup-gpios = <&gpx3 1 GPIO_ACTIVE_HIGH>;
>>>  +		host-wakeup-gpios = <&gpx2 6 GPIO_ACTIVE_HIGH>;
>>>  +	};
>>>  +};
>>>  +
>>>  +&serial_1 {
>>>  +	status = "okay";
>>>  +};
>>>  +
>>>  +&serial_2 {
>>>  +	status = "okay";
>>>  +};
>>>  +
>>>  +&serial_3 {
>>>  +	status = "okay";
>>>  +};
>>>  +
>>>  +&tmu {
>>>  +	status = "okay";
>>>  +};
>>>  +
>>>  +
>>>  +&pinctrl_0 {
>>>  +	pinctrl-names = "default";
>>>  +	pinctrl-0 = <&sleep0>;
>>>  +
>>>  +
>>>  +	sleep0: sleep-states {
>>>  +		gpa0-0 {
>>>  +			samsung,pins = "gpa0-0";
>>>  +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
>>>  +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
>>>  +		};
>>>  +
>>>  +		gpa0-1 {
>>>  +			samsung,pins = "gpa0-1";
>>>  +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT0>;
>>>  +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
>>>  +		};
>>>  +
>>>  +		gpa0-2 {
>>>  +			samsung,pins = "gpa0-2";
>>>  +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
>>>  +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
>>>  +		};
>>>  +
>>>  +		gpa0-3 {
>>>  +			samsung,pins = "gpa0-3";
>>>  +			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT1>;
>>>  +			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
>>>  +		};
>>>  +	};
>>>  +};
>>>  +
>>>  +&pinctrl_1 {
>>>  +	mhl_int: mhl-int {
>>>  +		samsung,pins = "gpf3-5";
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>>  +	};
>>>  +
>>>  +	i2c_mhl_bus: i2c-mhl-bus {
>>>  +		samsung,pins = "gpf0-4", "gpf0-6";
>>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
>>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
>>>  +	};
>>>  +
>>>  +	usb_sel: usb-sel {
>>>  +		samsung,pins = "gpl0-6";
>>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
>>>  +		samsung,pin-val = <0>;
>>>  +	};
>>>  +
>>>  +	bt_en: bt-en {
>>>  +		samsung,pins = "gpl0-4";
>>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
>>>  +		samsung,pin-val = <0>;
>>>  +	};
>>>  +
>>>  +	bt_res: bt-res {
>>>  +		samsung,pins = "gpl1-0";
>>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
>>>  +		samsung,pin-val = <0>;
>>>  +	};
>>>  +
>>>  +
>>>  +	otg_gp: otg-gp {
>>>  +		samsung,pins = "gpx3-3";
>>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>>  +		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
>>>  +		samsung,pin-val = <0>;
>>>  +	};
>>>  +
>>>  +	mag_mhl_gpio: mag-mhl-gpio {
>>>  +		samsung,pins = "gpd0-2";
>>>  +		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>>  +	};
>>>  +
>>>  +
>>>  +	max8997_irq: max8997-irq {
>>>  +		samsung,pins = "gpx0-7";
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>>  +	};
>>>  +
>>>  +	max17042_fuel_irq: max17042-fuel-irq {
>>>  +		samsung,pins = "gpx2-3";
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>>>  +	};
>>>  +
>>>  +	tsp224_irq: tsp224-irq {
>>>  +		samsung,pins = "gpx0-4";
>>>  +		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
>>>  +	};
>>>  +};
>> 
>> Best regards
>> --
>> Marek Szyprowski, PhD
>> Samsung R&D Institute Poland
>> 
> 



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
  2020-03-13 14:33       ` Paul Cercueil
@ 2020-03-13 15:24         ` Marek Szyprowski
  -1 siblings, 0 replies; 35+ messages in thread
From: Marek Szyprowski @ 2020-03-13 15:24 UTC (permalink / raw)
  To: Paul Cercueil, Krzysztof Kozlowski
  Cc: Kukjin Kim, Rob Herring, Mark Rutland, Stenkin Evgeniy,
	linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel

Hi Paul,

On 13.03.2020 15:33, Paul Cercueil wrote:
> Hi Krzysztof,
>
>
> Le ven., mars 13, 2020 at 10:00, Krzysztof Kozlowski <krzk@kernel.org> 
> a écrit :
>> On Thu, Mar 12, 2020 at 04:34:11PM +0100, Paul Cercueil wrote:
>>>  From: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>>>
>>>  Add devicetree file for the Exynos 4210 based Galaxy S2 (i9100 
>>> version).

 > [...]

>  +
>>>  +
>>>  +    memory@40000000 {
>>>  +        device_type = "memory";
>>>  +        reg = <0x40000000 0x40000000>;
>>>  +    };
>>>  +
>>
>> You do not have a chosen node, at least for stdout serial selection.
>> Probably you should have one... bootargs I guess could come from
>> bootloader.
>
> Problem is, I have no idea which UART is available via the USB jig :)

See exynos4210-trats.dts and exynos4210-universal_c210.dts, they are 
similar to i9100 and share a lots. They all use serial2 for debug UART 
via USB jig.

>>>  +    vemmc_reg: regulator-0 {
>>>  +        compatible = "regulator-fixed";
>>>  +        regulator-name = "VMEM_VDD_2.8V";
>>>  +        regulator-min-microvolt = <2800000>;
>>>  +        regulator-max-microvolt = <2800000>;
>>>  +        gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
>>>  +        enable-active-high;
>>
>> This looks like a stub/fake regulator. Probably it shoould be replaced
>> with proper regulator coming from PMIC (few seems to be missing there).
>>
>> I don't have the schematics so I cannot judge... I see Trats has the
>> same.
>>
>> Marek, mayybe you know, is it really a separate regulator?

Trats has the same regulator and according to the schematic it is 
supplied from VBAT and controlled via eMMC_EN GPIO pin.

> > [...]

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
@ 2020-03-13 15:24         ` Marek Szyprowski
  0 siblings, 0 replies; 35+ messages in thread
From: Marek Szyprowski @ 2020-03-13 15:24 UTC (permalink / raw)
  To: Paul Cercueil, Krzysztof Kozlowski
  Cc: Mark Rutland, devicetree, Stenkin Evgeniy, linux-samsung-soc,
	linux-kernel, Rob Herring, Kukjin Kim, linux-arm-kernel

Hi Paul,

On 13.03.2020 15:33, Paul Cercueil wrote:
> Hi Krzysztof,
>
>
> Le ven., mars 13, 2020 at 10:00, Krzysztof Kozlowski <krzk@kernel.org> 
> a écrit :
>> On Thu, Mar 12, 2020 at 04:34:11PM +0100, Paul Cercueil wrote:
>>>  From: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>>>
>>>  Add devicetree file for the Exynos 4210 based Galaxy S2 (i9100 
>>> version).

 > [...]

>  +
>>>  +
>>>  +    memory@40000000 {
>>>  +        device_type = "memory";
>>>  +        reg = <0x40000000 0x40000000>;
>>>  +    };
>>>  +
>>
>> You do not have a chosen node, at least for stdout serial selection.
>> Probably you should have one... bootargs I guess could come from
>> bootloader.
>
> Problem is, I have no idea which UART is available via the USB jig :)

See exynos4210-trats.dts and exynos4210-universal_c210.dts, they are 
similar to i9100 and share a lots. They all use serial2 for debug UART 
via USB jig.

>>>  +    vemmc_reg: regulator-0 {
>>>  +        compatible = "regulator-fixed";
>>>  +        regulator-name = "VMEM_VDD_2.8V";
>>>  +        regulator-min-microvolt = <2800000>;
>>>  +        regulator-max-microvolt = <2800000>;
>>>  +        gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
>>>  +        enable-active-high;
>>
>> This looks like a stub/fake regulator. Probably it shoould be replaced
>> with proper regulator coming from PMIC (few seems to be missing there).
>>
>> I don't have the schematics so I cannot judge... I see Trats has the
>> same.
>>
>> Marek, mayybe you know, is it really a separate regulator?

Trats has the same regulator and according to the schematic it is 
supplied from VBAT and controlled via eMMC_EN GPIO pin.

> > [...]

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
  2020-03-13  9:00     ` Krzysztof Kozlowski
  (?)
  (?)
@ 2020-03-18 14:25     ` Paul Cercueil
  -1 siblings, 0 replies; 35+ messages in thread
From: Paul Cercueil @ 2020-03-18 14:25 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Mark Rutland, devicetree, Stenkin Evgeniy, linux-samsung-soc,
	linux-kernel, Rob Herring, Kukjin Kim, linux-arm-kernel,
	Marek Szyprowski

Hi Krzysztof,


Le ven. 13 mars 2020 à 10:00, Krzysztof Kozlowski <krzk@kernel.org> a 
écrit :
> On Thu, Mar 12, 2020 at 04:34:11PM +0100, Paul Cercueil wrote:
>>  From: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>> 
>>  Add devicetree file for the Exynos 4210 based Galaxy S2 (i9100 
>> version).
> 
> Thanks for the patch!
> 
> It is an GT-I9100.
> 
> +Cc Marek (I have few questions further)
> 
> 
>> 
>>  Signed-off-by: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>>  Signed-off-by: Paul Cercueil <paul@crapouillou.net>
>>  ---
>>   arch/arm/boot/dts/Makefile             |   1 +
>>   arch/arm/boot/dts/exynos4210-i9100.dts | 816 
>> +++++++++++++++++++++++++
>>   2 files changed, 817 insertions(+)
>>   create mode 100644 arch/arm/boot/dts/exynos4210-i9100.dts
>> 
>>  diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
>>  index d6546d2676b9..522436d30690 100644
>>  --- a/arch/arm/boot/dts/Makefile
>>  +++ b/arch/arm/boot/dts/Makefile
>>  @@ -181,6 +181,7 @@ dtb-$(CONFIG_ARCH_EXYNOS3) += \
>>   	exynos3250-monk.dtb \
>>   	exynos3250-rinato.dtb
>>   dtb-$(CONFIG_ARCH_EXYNOS4) += \
>>  +	exynos4210-i9100.dtb \
>>   	exynos4210-origen.dtb \
>>   	exynos4210-smdkv310.dtb \
>>   	exynos4210-trats.dtb \
>>  diff --git a/arch/arm/boot/dts/exynos4210-i9100.dts 
>> b/arch/arm/boot/dts/exynos4210-i9100.dts
>>  new file mode 100644
>>  index 000000000000..c218e34959be
>>  --- /dev/null
>>  +++ b/arch/arm/boot/dts/exynos4210-i9100.dts
>>  @@ -0,0 +1,816 @@
>>  +// SPDX-License-Identifier: GPL-2.0
>>  +/*
>>  + * Samsung's Exynos4210 based Galaxy S2 (i9100 version) device tree
> 
> Ditto
> 
>>  + *
>>  + * Copyright (c) 2012 Samsung Electronics Co., Ltd.
>>  + *		http://www.samsung.com
>>  + * Copyright (c) 2020 Stenkin Evgeniy <stenkinevgeniy@gmail.com>
>>  + * Copyright (c) 2020 Paul Cercueil <paul@crapouillou.net>
>>  + *
>>  + * Device tree source file for Samsung's Galaxy S2 smartphone 
>> (i9100 version),
>>  + * which is based on Samsung's Exynos4210 SoC.
> 
> Duplicated description, you mentioned it before.
> 
>>  + */
>>  +
>>  +/dts-v1/;
>>  +#include "exynos4210.dtsi"
>>  +#include "exynos4412-ppmu-common.dtsi"
>>  +
>>  +#include <dt-bindings/gpio/gpio.h>
>>  +#include <dt-bindings/input/linux-event-codes.h>
>>  +
>>  +/ {
>>  +	model = "Samsung Galaxy S2 (i9100)";
> 
> GT-I9100
> 
>>  +	compatible = "samsung,i9100", "samsung,exynos4210", 
>> "samsung,exynos4";
> 
> I think it shares a lot with Trats board...
> 
> Marek, how similar these
> designs are? Maybe it is worth to split some parts and make common 
> part?
> 
>>  +
>>  +
>>  +	memory@40000000 {
>>  +		device_type = "memory";
>>  +		reg = <0x40000000 0x40000000>;
>>  +	};
>>  +
> 
> You do not have a chosen node, at least for stdout serial selection.
> Probably you should have one... bootargs I guess could come from
> bootloader.
> 
> 
>>  +	vemmc_reg: regulator-0 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "VMEM_VDD_2.8V";
>>  +		regulator-min-microvolt = <2800000>;
>>  +		regulator-max-microvolt = <2800000>;
>>  +		gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
> 
> This looks like a stub/fake regulator. Probably it shoould be replaced
> with proper regulator coming from PMIC (few seems to be missing 
> there).
> 
> I don't have the schematics so I cannot judge... I see Trats has the
> same.
> 
> Marek, mayybe you know, is it really a separate regulator?
> 
>>  +	};
>>  +
>>  +	tsp_reg: regulator-1 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "TSP_FIXED_VOLTAGES";
>>  +		regulator-min-microvolt = <3300000>;
>>  +		regulator-max-microvolt = <3300000>;
>>  +		gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
>>  +		startup-delay-us = <70000>;
>>  +		enable-active-high;
>>  +		regulator-boot-on;
>>  +		regulator-always-on;
> 
> always-on and boot-on should not be needed. You have a consumer for 
> this
> regulator.

About this: the touchscreen driver does not use a regulator, so I 
believe that's why these properties were here.

I sent patches upstream to address the issue: 
https://lkml.org/lkml/2020/3/15/94

I believe this means I cannot merge the i9100 devicetree until it is 
acked.

-Paul

>>  +	};
>>  +
>>  +	cam_af_28v_reg: regulator-3 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "8M_AF_2.8V_EN";
>>  +		regulator-min-microvolt = <2800000>;
>>  +		regulator-max-microvolt = <2800000>;
>>  +		gpio = <&gpk1 1 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	cam_io_en_reg: regulator-4 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "CAM_IO_EN";
>>  +		regulator-min-microvolt = <2800000>;
>>  +		regulator-max-microvolt = <2800000>;
>>  +		gpio = <&gpe2 1 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	cam_io_12v_reg: regulator-5 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "8M_1.2V_EN";
>>  +		regulator-min-microvolt = <1200000>;
>>  +		regulator-max-microvolt = <1200000>;
>>  +		gpio = <&gpe2 5 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	vt_core_15v_reg: regulator-6 {
>>  +		compatible = "regulator-fixed";
>>  +		regulator-name = "VT_CORE_1.5V";
>>  +		regulator-min-microvolt = <1500000>;
>>  +		regulator-max-microvolt = <1500000>;
>>  +		gpio = <&gpe2 2 GPIO_ACTIVE_HIGH>;
>>  +		enable-active-high;
>>  +	};
>>  +
>>  +	gpio-keys {
>>  +		compatible = "gpio-keys";
>>  +
>>  +		vol-down {
>>  +			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_VOLUMEDOWN>;
>>  +			label = "volume down";
>>  +			debounce-interval = <10>;
>>  +		};
>>  +
>>  +		vol-up {
>>  +			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_VOLUMEUP>;
>>  +			label = "volume up";
>>  +			debounce-interval = <10>;
>>  +		};
>>  +
>>  +		power {
>>  +			gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_POWER>;
>>  +			label = "power";
>>  +			debounce-interval = <10>;
>>  +			wakeup-source;
>>  +		};
>>  +
>>  +		ok {
>>  +			gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
>>  +			linux,code = <KEY_OK>;
>>  +			label = "ok";
>>  +			debounce-interval = <10>;
>>  +		};
>>  +	};
>>  +
>>  +	wlan_pwrseq: sdhci3-pwrseq {
>>  +		compatible = "mmc-pwrseq-simple";
>>  +		reset-gpios = <&gpl1 2 GPIO_ACTIVE_LOW>;
>>  +	};
>>  +
>>  +	i2c_max17042_fuel: i2c-gpio-3 {
> 
> i2c-gpio-3 -> i2c-gpio
> 
>>  +		compatible = "i2c-gpio";
>>  +		#address-cells = <1>;
>>  +		#size-cells = <0>;
>>  +
>>  +		sda-gpios = <&gpy4 0 GPIO_ACTIVE_HIGH>;
>>  +		scl-gpios = <&gpy4 1 GPIO_ACTIVE_HIGH>;
>>  +		i2c-gpio,delay-us = <5>;
>>  +
>>  +		battery@36 {
>>  +			compatible = "maxim,max17042";
>>  +
>>  +			interrupt-parent = <&gpx2>;
>>  +			interrupts = <3 2>;
> 
> s/2/IRQ_TYPE_EDGE_FALLING/
> 
>>  +
>>  +			pinctrl-0 = <&max17042_fuel_irq>;
>>  +			pinctrl-names = "default";
>>  +
>>  +			reg = <0x36>;
>>  +			maxim,over-heat-temp = <700>;
>>  +			maxim,over-volt = <4500>;
>>  +
> 
> Remove empty line.
> 
>>  +		};
>>  +	};
>>  +
>>  +	spi-lcd {
>>  +		compatible = "spi-gpio";
>>  +		#address-cells = <1>;
>>  +		#size-cells = <0>;
>>  +
>>  +		num-chipselects = <1>;
>>  +		cs-gpios = <&gpy4 3 GPIO_ACTIVE_HIGH>;
>>  +		sck-gpios = <&gpy3 1 GPIO_ACTIVE_HIGH>;
>>  +		mosi-gpios = <&gpy3 3 GPIO_ACTIVE_HIGH>;
>>  +
>>  +		lcd@0 {
>>  +			compatible = "samsung,ld9040";
>>  +			reg = <0>;
>>  +
>>  +			spi-max-frequency = <1200000>;
>>  +			spi-cpol;
>>  +			spi-cpha;
>>  +
>>  +			vdd3-supply = <&vmipi_reg>;
>>  +			vci-supply = <&vcclcd_reg>;
>>  +
>>  +			reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
>>  +			power-on-delay = <10>;
>>  +			reset-delay = <10>;
>>  +
>>  +			panel-width-mm = <90>;
>>  +			panel-height-mm = <154>;
>>  +
>>  +			display-timings {
>>  +				timing {
>>  +					clock-frequency = <23492370>;
>>  +					hactive = <480>;
>>  +					vactive = <800>;
>>  +					hback-porch = <16>;
>>  +					hfront-porch = <16>;
>>  +					vback-porch = <2>;
>>  +					vfront-porch = <28>;
>>  +					hsync-len = <2>;
>>  +					vsync-len = <1>;
>>  +					hsync-active = <0>;
>>  +					vsync-active = <0>;
>>  +					de-active = <0>;
>>  +					pixelclk-active = <0>;
>>  +				};
>>  +			};
>>  +
>>  +			port {
>>  +				lcd_ep: endpoint {
>>  +					remote-endpoint = <&fimd_dpi_ep>;
>>  +				};
>>  +			};
>>  +		};
>>  +	};
>>  +
>>  +	fixed-rate-clocks {
>>  +		xxti {
>>  +			compatible = "samsung,clock-xxti";
>>  +			clock-frequency = <0>;
>>  +		};
>>  +
>>  +		xusbxti {
>>  +			compatible = "samsung,clock-xusbxti";
>>  +			clock-frequency = <24000000>;
>>  +		};
>>  +	};
>>  +
>>  +	thermal-zones {
>>  +		cpu_thermal: cpu-thermal {
>>  +			cooling-maps {
>>  +				map0 {
>>  +					/* Corresponds to 800MHz */
>>  +					cooling-device = <&cpu0 2 2>;
>>  +				};
>>  +				map1 {
>>  +					/* Corresponds to 200MHz */
>>  +					cooling-device = <&cpu0 4 4>;
>>  +				};
>>  +			};
>>  +		};
>>  +	};
>>  +
>>  +};
>>  +
>>  +&camera {
>>  +	status = "okay";
>>  +};
>>  +
>>  +&cpu0 {
>>  +	cpu0-supply = <&varm_breg>;
>>  +};
>>  +
>>  +&exynos_usbphy {
>>  +	status = "okay";
>>  +
>>  +	vbus-supply = <&safe1_sreg>;
>>  +};
>>  +
>>  +&fimc_0 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC0>, <&clock 
>> CLK_SCLK_FIMC0>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimc_1 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC1>, <&clock 
>> CLK_SCLK_FIMC1>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimc_2 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC2>, <&clock 
>> CLK_SCLK_FIMC2>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimc_3 {
>>  +	status = "okay";
>>  +
>>  +	assigned-clocks = <&clock CLK_MOUT_FIMC3>, <&clock 
>> CLK_SCLK_FIMC3>;
>>  +	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
>>  +	assigned-clock-rates = <0>, <160000000>;
>>  +};
>>  +
>>  +&fimd {
>>  +	status = "okay";
>>  +	#address-cells = <1>;
>>  +	#size-cells = <0>;
>>  +
>>  +	samsung,invert-vden;
>>  +	samsung,invert-vclk;
>>  +
>>  +	pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	port@3 {
>>  +		reg = <3>;
>>  +
>>  +		fimd_dpi_ep: endpoint {
>>  +			remote-endpoint = <&lcd_ep>;
>>  +		};
>>  +	};
>>  +};
>>  +
>>  +&hsotg {
>>  +	status = "okay";
>>  +
>>  +	dr_mode = "otg";
>>  +	vusb_d-supply = <&vusb_reg>;
>>  +	vusb_a-supply = <&vusbdac_reg>;
>>  +};
>>  +
>>  +&ehci {
> 
> Order the phandle/nodes in alphabetical order, please. So:
> 
> &ehci ...
> &hsoth ...
> &i2c ...
> 
> etc.
> 
>>  +	status = "okay";
>>  +
>>  +	port@0 {
>>  +		status = "okay";
>>  +	};
>>  +
>>  +	port@1 {
>>  +		status = "okay";
>>  +	};
>>  +
>>  +	port@2 {
>>  +		status = "okay";
>>  +	};
>>  +};
>>  +
> 
> Double empty line.
> 
>>  +
>>  +&i2c_3 {
>>  +	status = "okay";
>>  +
>>  +	samsung,i2c-sda-delay = <100>;
>>  +	samsung,i2c-slave-addr = <0x10>;
>>  +	samsung,i2c-max-bus-freq = <100000>;
>>  +
>>  +	pinctrl-0 = <&i2c3_bus>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	mxt224-touchscreen@4a {
>>  +		compatible = "atmel,maxtouch";
>>  +		reg = <0x4a>;
>>  +
>>  +		interrupt-parent = <&gpx0>;
>>  +		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
>>  +
>>  +		avdd-supply = <&tsp_reg>;
>>  +		vdd-supply = <&tsp_reg>;
>>  +	};
>>  +};
>>  +
>>  +&i2c_7 {
>>  +	status = "okay";
>>  +
>>  +	samsung,i2c-sda-delay = <100>;
>>  +	samsung,i2c-slave-addr = <0x10>;
>>  +	samsung,i2c-max-bus-freq = <400000>;
>>  +
>>  +	pinctrl-0 = <&i2c7_bus>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	ak8975@c {
>>  +		compatible = "asahi-kasei,ak8975";
>>  +		reg = <0x0c>;
>>  +
>>  +		gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
>>  +	};
>>  +};
>>  +
>>  +
>>  +&i2c_5 {
>>  +	status = "okay";
>>  +
>>  +	samsung,i2c-sda-delay = <100>;
>>  +	samsung,i2c-slave-addr = <0x10>;
>>  +	samsung,i2c-max-bus-freq = <100000>;
>>  +
>>  +	pinctrl-0 = <&i2c5_bus>;
>>  +	pinctrl-names = "default";
>>  +
>>  +	max8997_pmic@66 {
>>  +		compatible = "maxim,max8997-pmic";
>>  +		reg = <0x66>;
>>  +
>>  +		interrupts-extended = <&gpx0 7 0>, <&gpx2 3 2>;
>>  +		interrupt-parent = <&gpx0>;
>>  +		interrupts = <7 IRQ_TYPE_NONE>;
>>  +
>>  +		otg_en-gpios = <&gpx3 3 0>;
>>  +		usb_sel-gpios = <&gpl0 6 0>;
>>  +
>>  +		max8997,pmic-buck1-uses-gpio-dvs;
>>  +		max8997,pmic-buck2-uses-gpio-dvs;
>>  +		max8997,pmic-buck5-uses-gpio-dvs;
>>  +
>>  +		max8997,pmic-ignore-gpiodvs-side-effect;
>>  +		max8997,pmic-buck125-default-dvs-idx = <0>;
>>  +
>>  +		max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
>>  +						 <&gpx0 6 GPIO_ACTIVE_HIGH>,
>>  +						 <&gpl0 0 GPIO_ACTIVE_HIGH>;
>>  +
>>  +		max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
>>  +						 <1250000>, <1200000>,
>>  +						 <1150000>, <1100000>,
>>  +						 <1000000>, <950000>;
>>  +
>>  +		max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
>>  +						 <950000>,  <900000>,
>>  +						 <1100000>, <1000000>,
>>  +						 <950000>,  <900000>;
>>  +
>>  +		max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
>>  +						 <1200000>, <1200000>,
>>  +						 <1200000>, <1200000>,
>>  +						 <1200000>, <1200000>;
>>  +
>>  +		pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
>>  +		pinctrl-names = "default";
>>  +
>>  +		regulators {
>>  +			vadc_reg: LDO1 {
>>  +				regulator-name = "VADC_3.3V_C210";
>>  +				regulator-min-microvolt = <3300000>;
>>  +				regulator-max-microvolt = <3300000>;
>>  +				regulator-always-on;
>>  +
>>  +			};
> 
> Add empty line.
> 
>>  +			valive_reg: LDO2 {
>>  +				regulator-name = "VALIVE_1.1V_C210";
>>  +				regulator-min-microvolt = <1100000>;
>>  +				regulator-max-microvolt = <1100000>;
>>  +				regulator-always-on;
>>  +
>>  +			};
>>  +
>>  +			vusb_reg: LDO3 {
>>  +				regulator-name = "VUSB_1.1V_C210";
>>  +				regulator-min-microvolt = <1100000>;
>>  +				regulator-max-microvolt = <1100000>;
>>  +			};
>>  +
>>  +			vmipi_reg: LDO4 {
>>  +				regulator-name = "VMIPI_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vhsic_reg: LDO5 {
>>  +				regulator-name = "VHSIC_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vpda_reg: LDO6 {
>>  +				regulator-name = "VCC_1.8V_PDA";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vcam_reg: LDO7 {
>>  +				regulator-name = "CAM_ISP_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +			};
>>  +
>>  +			vusbdac_reg: LDO8 {
>>  +				regulator-name = "VUSB+VDAC_3.3V_C210";
>>  +				regulator-min-microvolt = <3300000>;
>>  +				regulator-max-microvolt = <3300000>;
>>  +			};
>>  +
>>  +			vccpda_reg: LDO9 {
>>  +				regulator-name = "VCC_2.8V_PDA";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vtouch_reg: LDO11 {
>>  +				regulator-name = "TOUCH_2.8V";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vpll_reg: LDO10 {
>>  +				regulator-name = "VPLL_1.1V";
>>  +				regulator-min-microvolt = <1100000>;
>>  +				regulator-max-microvolt = <1100000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vtcam_reg: LDO12 {
>>  +				regulator-name = "VT_CAM_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +			};
>>  +
>>  +			vcclcd_reg: LDO13 {
>>  +				regulator-name = "VCC_3.0V_LCD";
>>  +				regulator-min-microvolt = <3000000>;
>>  +				regulator-max-microvolt = <3000000>;
>>  +			};
>>  +
>>  +			vmotor_reg: LDO14 {
>>  +				regulator-name = "VCC_2.8V_MOTOR";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +			};
>>  +
>>  +			vled_reg: LDO15 {
>>  +				regulator-name = "LED_A_2.8V";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +			};
>>  +
>>  +			camsensor_reg: LDO16 {
>>  +				regulator-name = "CAM_SENSOR_IO_1.8V";
>>  +				regulator-min-microvolt = <1800000>;
>>  +				regulator-max-microvolt = <1800000>;
>>  +			};
>>  +
>>  +			vtf_reg: LDO17 {
>>  +				regulator-name = "VTF_2.8V";
>>  +				regulator-min-microvolt = <2800000>;
>>  +				regulator-max-microvolt = <2800000>;
>>  +			};
>>  +
>>  +			vtouchled_reg: LDO18 {
>>  +				regulator-name = "TOUCH_LED_3.3V";
>>  +				regulator-min-microvolt = <2500000>;
>>  +				regulator-max-microvolt = <3300000>;
>>  +			};
>>  +
>>  +			vddq_reg: LDO21 {
>>  +				regulator-name = "VDDQ_M1M2_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			varm_breg: BUCK1 {
>>  +				//regulator-name = "VARM_1.2V_C210";
>>  +				regulator-name = "vdd_arm";
>>  +				regulator-min-microvolt = <65000>;
>>  +				regulator-max-microvolt = <2225000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vint_breg: BUCK2 {
>>  +				regulator-name = "VINT_1.1V_C210";
>>  +				regulator-min-microvolt = <65000>;
>>  +				regulator-max-microvolt = <2225000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vg3d_breg: BUCK3 {
>>  +				regulator-name = "G3D_1.1V";
>>  +				regulator-min-microvolt = <900000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			camisp_breg: BUCK4 {
>>  +				regulator-name = "CAM_ISP_CORE_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +			};
>>  +
>>  +			vmem_breg: BUCK5 {
>>  +				regulator-name = "VMEM_1.2V";
>>  +				regulator-min-microvolt = <1200000>;
>>  +				regulator-max-microvolt = <1200000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			vccsub_breg: BUCK7 {
>>  +				regulator-name = "VCC_SUB_2.0V";
>>  +				regulator-min-microvolt = <2000000>;
>>  +				regulator-max-microvolt = <2000000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			safe1_sreg: ESAFEOUT1 {
>>  +				regulator-name = "SAFEOUT1";
>>  +			};
>>  +
>>  +			safe2_sreg: ESAFEOUT2 {
>>  +				regulator-name = "SAFEOUT2";
>>  +				regulator-boot-on;
>>  +			};
>>  +
>>  +			charger_reg: CHARGER {
>>  +				regulator-name = "CHARGER";
>>  +				regulator-min-microamp = <60000>;
>>  +				regulator-max-microamp = <2580000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
>>  +			chargercv_reg: CHARGER_CV {
>>  +				regulator-name = "CHARGER_CV";
>>  +				regulator-min-microvolt = <3800000>;
>>  +				regulator-max-microvolt = <4100000>;
>>  +				regulator-always-on;
>>  +			};
>>  +
> 
> Empty line, not needed.
> 
>>  +		};
>>  +
> 
> Empty line, not needed.
> 
>>  +	};
>>  +};
>>  +
>>  +
> 
> Empty line, not needed. Please fix them in all places.
> 
>>  +&gpu {
>>  +	status = "okay";
>>  +
>>  +	mali-supply = <&vg3d_breg>;
>>  +	regulator-microvolt-offset = <50000>;
>>  +	regulator-microsecs-delay = <50>;
>>  +};
>>  +
> 
> and more...
> 
>>  +
>>  +&sdhci_0 {
>>  +	status = "okay";
>>  +
>>  +	bus-width = <8>;
>>  +	non-removable;
>>  +	vmmc-supply = <&vemmc_reg>;
>>  +
>>  +	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_bus8>;
>>  +	pinctrl-names = "default";
>>  +};
>>  +
>>  +&sdhci_2 {
>>  +	status = "okay";
>>  +
>>  +	bus-width = <4>;
>>  +	cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
>>  +	vmmc-supply = <&vtf_reg>;
>>  +
>>  +	pinctrl-0 = <&sd2_clk>, <&sd2_cmd>, <&sd2_bus4>;
>>  +	pinctrl-names = "default";
>>  +};
>>  +
>>  +&ehci {
> 
> Duplicated.
> 
> Best regards,
> Krzysztof
> 



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
       [not found]     ` <20200318142543.C167520772@mail.kernel.org>
@ 2020-03-18 15:23         ` Krzysztof Kozlowski
  0 siblings, 0 replies; 35+ messages in thread
From: Krzysztof Kozlowski @ 2020-03-18 15:23 UTC (permalink / raw)
  To: Paul Cercueil
  Cc: Marek Szyprowski, Kukjin Kim, Rob Herring, Mark Rutland,
	Stenkin Evgeniy, linux-arm-kernel, linux-samsung-soc, devicetree,
	linux-kernel

On Wed, Mar 18, 2020 at 03:25:22PM +0100, Paul Cercueil wrote:
> Hi Krzysztof,
> 
> 
> Le ven. 13 mars 2020 à 10:00, Krzysztof Kozlowski <krzk@kernel.org> a écrit
> :
> > On Thu, Mar 12, 2020 at 04:34:11PM +0100, Paul Cercueil wrote:
> > >  From: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
> > > 
> > >  Add devicetree file for the Exynos 4210 based Galaxy S2 (i9100
> > > version).
> > 
> > Thanks for the patch!
> > 
> > It is an GT-I9100.
> > 
> > +Cc Marek (I have few questions further)
> > 
> > 
> > > 
> > >  Signed-off-by: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
> > >  Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> > >  ---
> > >   arch/arm/boot/dts/Makefile             |   1 +
> > >   arch/arm/boot/dts/exynos4210-i9100.dts | 816
> > > +++++++++++++++++++++++++
> > >   2 files changed, 817 insertions(+)
> > >   create mode 100644 arch/arm/boot/dts/exynos4210-i9100.dts
> > > 
> > >  diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> > >  index d6546d2676b9..522436d30690 100644
> > >  --- a/arch/arm/boot/dts/Makefile
> > >  +++ b/arch/arm/boot/dts/Makefile
> > >  @@ -181,6 +181,7 @@ dtb-$(CONFIG_ARCH_EXYNOS3) += \
> > >   	exynos3250-monk.dtb \
> > >   	exynos3250-rinato.dtb
> > >   dtb-$(CONFIG_ARCH_EXYNOS4) += \
> > >  +	exynos4210-i9100.dtb \
> > >   	exynos4210-origen.dtb \
> > >   	exynos4210-smdkv310.dtb \
> > >   	exynos4210-trats.dtb \
> > >  diff --git a/arch/arm/boot/dts/exynos4210-i9100.dts
> > > b/arch/arm/boot/dts/exynos4210-i9100.dts
> > >  new file mode 100644
> > >  index 000000000000..c218e34959be
> > >  --- /dev/null
> > >  +++ b/arch/arm/boot/dts/exynos4210-i9100.dts
> > >  @@ -0,0 +1,816 @@
> > >  +// SPDX-License-Identifier: GPL-2.0
> > >  +/*
> > >  + * Samsung's Exynos4210 based Galaxy S2 (i9100 version) device tree
> > 
> > Ditto
> > 
> > >  + *
> > >  + * Copyright (c) 2012 Samsung Electronics Co., Ltd.
> > >  + *		http://www.samsung.com
> > >  + * Copyright (c) 2020 Stenkin Evgeniy <stenkinevgeniy@gmail.com>
> > >  + * Copyright (c) 2020 Paul Cercueil <paul@crapouillou.net>
> > >  + *
> > >  + * Device tree source file for Samsung's Galaxy S2 smartphone
> > > (i9100 version),
> > >  + * which is based on Samsung's Exynos4210 SoC.
> > 
> > Duplicated description, you mentioned it before.
> > 
> > >  + */
> > >  +
> > >  +/dts-v1/;
> > >  +#include "exynos4210.dtsi"
> > >  +#include "exynos4412-ppmu-common.dtsi"
> > >  +
> > >  +#include <dt-bindings/gpio/gpio.h>
> > >  +#include <dt-bindings/input/linux-event-codes.h>
> > >  +
> > >  +/ {
> > >  +	model = "Samsung Galaxy S2 (i9100)";
> > 
> > GT-I9100
> > 
> > >  +	compatible = "samsung,i9100", "samsung,exynos4210",
> > > "samsung,exynos4";
> > 
> > I think it shares a lot with Trats board...
> > 
> > Marek, how similar these
> > designs are? Maybe it is worth to split some parts and make common part?
> > 
> > >  +
> > >  +
> > >  +	memory@40000000 {
> > >  +		device_type = "memory";
> > >  +		reg = <0x40000000 0x40000000>;
> > >  +	};
> > >  +
> > 
> > You do not have a chosen node, at least for stdout serial selection.
> > Probably you should have one... bootargs I guess could come from
> > bootloader.
> > 
> > 
> > >  +	vemmc_reg: regulator-0 {
> > >  +		compatible = "regulator-fixed";
> > >  +		regulator-name = "VMEM_VDD_2.8V";
> > >  +		regulator-min-microvolt = <2800000>;
> > >  +		regulator-max-microvolt = <2800000>;
> > >  +		gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
> > >  +		enable-active-high;
> > 
> > This looks like a stub/fake regulator. Probably it shoould be replaced
> > with proper regulator coming from PMIC (few seems to be missing there).
> > 
> > I don't have the schematics so I cannot judge... I see Trats has the
> > same.
> > 
> > Marek, mayybe you know, is it really a separate regulator?
> > 
> > >  +	};
> > >  +
> > >  +	tsp_reg: regulator-1 {
> > >  +		compatible = "regulator-fixed";
> > >  +		regulator-name = "TSP_FIXED_VOLTAGES";
> > >  +		regulator-min-microvolt = <3300000>;
> > >  +		regulator-max-microvolt = <3300000>;
> > >  +		gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
> > >  +		startup-delay-us = <70000>;
> > >  +		enable-active-high;
> > >  +		regulator-boot-on;
> > >  +		regulator-always-on;
> > 
> > always-on and boot-on should not be needed. You have a consumer for this
> > regulator.
> 
> About this: the touchscreen driver does not use a regulator, so I believe
> that's why these properties were here.
> 
> I sent patches upstream to address the issue:
> https://lkml.org/lkml/2020/3/15/94
> 
> I believe this means I cannot merge the i9100 devicetree until it is acked.

This can stay because it is correct with current bindings and driver.
However you should remove avdd-supply/vdd-supply from touchscreen node
because they are not used/supported.

You can re-add them once bindings get accepted.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
@ 2020-03-18 15:23         ` Krzysztof Kozlowski
  0 siblings, 0 replies; 35+ messages in thread
From: Krzysztof Kozlowski @ 2020-03-18 15:23 UTC (permalink / raw)
  To: Paul Cercueil
  Cc: Mark Rutland, devicetree, Stenkin Evgeniy, linux-samsung-soc,
	linux-kernel, Rob Herring, Kukjin Kim, linux-arm-kernel,
	Marek Szyprowski

On Wed, Mar 18, 2020 at 03:25:22PM +0100, Paul Cercueil wrote:
> Hi Krzysztof,
> 
> 
> Le ven. 13 mars 2020 à 10:00, Krzysztof Kozlowski <krzk@kernel.org> a écrit
> :
> > On Thu, Mar 12, 2020 at 04:34:11PM +0100, Paul Cercueil wrote:
> > >  From: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
> > > 
> > >  Add devicetree file for the Exynos 4210 based Galaxy S2 (i9100
> > > version).
> > 
> > Thanks for the patch!
> > 
> > It is an GT-I9100.
> > 
> > +Cc Marek (I have few questions further)
> > 
> > 
> > > 
> > >  Signed-off-by: Stenkin Evgeniy <stenkinevgeniy@gmail.com>
> > >  Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> > >  ---
> > >   arch/arm/boot/dts/Makefile             |   1 +
> > >   arch/arm/boot/dts/exynos4210-i9100.dts | 816
> > > +++++++++++++++++++++++++
> > >   2 files changed, 817 insertions(+)
> > >   create mode 100644 arch/arm/boot/dts/exynos4210-i9100.dts
> > > 
> > >  diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> > >  index d6546d2676b9..522436d30690 100644
> > >  --- a/arch/arm/boot/dts/Makefile
> > >  +++ b/arch/arm/boot/dts/Makefile
> > >  @@ -181,6 +181,7 @@ dtb-$(CONFIG_ARCH_EXYNOS3) += \
> > >   	exynos3250-monk.dtb \
> > >   	exynos3250-rinato.dtb
> > >   dtb-$(CONFIG_ARCH_EXYNOS4) += \
> > >  +	exynos4210-i9100.dtb \
> > >   	exynos4210-origen.dtb \
> > >   	exynos4210-smdkv310.dtb \
> > >   	exynos4210-trats.dtb \
> > >  diff --git a/arch/arm/boot/dts/exynos4210-i9100.dts
> > > b/arch/arm/boot/dts/exynos4210-i9100.dts
> > >  new file mode 100644
> > >  index 000000000000..c218e34959be
> > >  --- /dev/null
> > >  +++ b/arch/arm/boot/dts/exynos4210-i9100.dts
> > >  @@ -0,0 +1,816 @@
> > >  +// SPDX-License-Identifier: GPL-2.0
> > >  +/*
> > >  + * Samsung's Exynos4210 based Galaxy S2 (i9100 version) device tree
> > 
> > Ditto
> > 
> > >  + *
> > >  + * Copyright (c) 2012 Samsung Electronics Co., Ltd.
> > >  + *		http://www.samsung.com
> > >  + * Copyright (c) 2020 Stenkin Evgeniy <stenkinevgeniy@gmail.com>
> > >  + * Copyright (c) 2020 Paul Cercueil <paul@crapouillou.net>
> > >  + *
> > >  + * Device tree source file for Samsung's Galaxy S2 smartphone
> > > (i9100 version),
> > >  + * which is based on Samsung's Exynos4210 SoC.
> > 
> > Duplicated description, you mentioned it before.
> > 
> > >  + */
> > >  +
> > >  +/dts-v1/;
> > >  +#include "exynos4210.dtsi"
> > >  +#include "exynos4412-ppmu-common.dtsi"
> > >  +
> > >  +#include <dt-bindings/gpio/gpio.h>
> > >  +#include <dt-bindings/input/linux-event-codes.h>
> > >  +
> > >  +/ {
> > >  +	model = "Samsung Galaxy S2 (i9100)";
> > 
> > GT-I9100
> > 
> > >  +	compatible = "samsung,i9100", "samsung,exynos4210",
> > > "samsung,exynos4";
> > 
> > I think it shares a lot with Trats board...
> > 
> > Marek, how similar these
> > designs are? Maybe it is worth to split some parts and make common part?
> > 
> > >  +
> > >  +
> > >  +	memory@40000000 {
> > >  +		device_type = "memory";
> > >  +		reg = <0x40000000 0x40000000>;
> > >  +	};
> > >  +
> > 
> > You do not have a chosen node, at least for stdout serial selection.
> > Probably you should have one... bootargs I guess could come from
> > bootloader.
> > 
> > 
> > >  +	vemmc_reg: regulator-0 {
> > >  +		compatible = "regulator-fixed";
> > >  +		regulator-name = "VMEM_VDD_2.8V";
> > >  +		regulator-min-microvolt = <2800000>;
> > >  +		regulator-max-microvolt = <2800000>;
> > >  +		gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
> > >  +		enable-active-high;
> > 
> > This looks like a stub/fake regulator. Probably it shoould be replaced
> > with proper regulator coming from PMIC (few seems to be missing there).
> > 
> > I don't have the schematics so I cannot judge... I see Trats has the
> > same.
> > 
> > Marek, mayybe you know, is it really a separate regulator?
> > 
> > >  +	};
> > >  +
> > >  +	tsp_reg: regulator-1 {
> > >  +		compatible = "regulator-fixed";
> > >  +		regulator-name = "TSP_FIXED_VOLTAGES";
> > >  +		regulator-min-microvolt = <3300000>;
> > >  +		regulator-max-microvolt = <3300000>;
> > >  +		gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
> > >  +		startup-delay-us = <70000>;
> > >  +		enable-active-high;
> > >  +		regulator-boot-on;
> > >  +		regulator-always-on;
> > 
> > always-on and boot-on should not be needed. You have a consumer for this
> > regulator.
> 
> About this: the touchscreen driver does not use a regulator, so I believe
> that's why these properties were here.
> 
> I sent patches upstream to address the issue:
> https://lkml.org/lkml/2020/3/15/94
> 
> I believe this means I cannot merge the i9100 devicetree until it is acked.

This can stay because it is correct with current bindings and driver.
However you should remove avdd-supply/vdd-supply from touchscreen node
because they are not used/supported.

You can re-add them once bindings get accepted.

Best regards,
Krzysztof

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
       [not found]       ` <D6.31.03891.A6F227E5@epmailinsp8.samsung.com>
@ 2020-03-31  5:36           ` Marek Szyprowski
  0 siblings, 0 replies; 35+ messages in thread
From: Marek Szyprowski @ 2020-03-31  5:36 UTC (permalink / raw)
  To: Paul Cercueil, Krzysztof Kozlowski
  Cc: Kukjin Kim, Rob Herring, Mark Rutland, Stenkin Evgeniy,
	linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel

Hi Paul,

On 2020-03-18 15:25, Paul Cercueil wrote:
>>>  +    };
>>>  +
>>>  +    tsp_reg: regulator-1 {
>>>  +        compatible = "regulator-fixed";
>>>  +        regulator-name = "TSP_FIXED_VOLTAGES";
>>>  +        regulator-min-microvolt = <3300000>;
>>>  +        regulator-max-microvolt = <3300000>;
>>>  +        gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
>>>  +        startup-delay-us = <70000>;
>>>  +        enable-active-high;
>>>  +        regulator-boot-on;
>>>  +        regulator-always-on;
>>
>> always-on and boot-on should not be needed. You have a consumer for this
>> regulator.
>
> About this: the touchscreen driver does not use a regulator, so I 
> believe that's why these properties were here.
>
> I sent patches upstream to address the issue: 
> https://lkml.org/lkml/2020/3/15/94
>
> I believe this means I cannot merge the i9100 devicetree until it is 
> acked.

One more information - similar change has been already posted, but it 
looks it got lost then: https://patchwork.kernel.org/patch/10550903/

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
@ 2020-03-31  5:36           ` Marek Szyprowski
  0 siblings, 0 replies; 35+ messages in thread
From: Marek Szyprowski @ 2020-03-31  5:36 UTC (permalink / raw)
  To: Paul Cercueil, Krzysztof Kozlowski
  Cc: Mark Rutland, devicetree, Stenkin Evgeniy, linux-samsung-soc,
	linux-kernel, Rob Herring, Kukjin Kim, linux-arm-kernel

Hi Paul,

On 2020-03-18 15:25, Paul Cercueil wrote:
>>>  +    };
>>>  +
>>>  +    tsp_reg: regulator-1 {
>>>  +        compatible = "regulator-fixed";
>>>  +        regulator-name = "TSP_FIXED_VOLTAGES";
>>>  +        regulator-min-microvolt = <3300000>;
>>>  +        regulator-max-microvolt = <3300000>;
>>>  +        gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
>>>  +        startup-delay-us = <70000>;
>>>  +        enable-active-high;
>>>  +        regulator-boot-on;
>>>  +        regulator-always-on;
>>
>> always-on and boot-on should not be needed. You have a consumer for this
>> regulator.
>
> About this: the touchscreen driver does not use a regulator, so I 
> believe that's why these properties were here.
>
> I sent patches upstream to address the issue: 
> https://lkml.org/lkml/2020/3/15/94
>
> I believe this means I cannot merge the i9100 devicetree until it is 
> acked.

One more information - similar change has been already posted, but it 
looks it got lost then: https://patchwork.kernel.org/patch/10550903/

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
  2020-03-31  5:36           ` Marek Szyprowski
@ 2020-03-31 13:09             ` Paul Cercueil
  -1 siblings, 0 replies; 35+ messages in thread
From: Paul Cercueil @ 2020-03-31 13:09 UTC (permalink / raw)
  To: Marek Szyprowski
  Cc: Krzysztof Kozlowski, Kukjin Kim, Paweł Chmiel, Rob Herring,
	mark.rutland, Stenkin Evgeniy, linux-arm-kernel,
	linux-samsung-soc, devicetree, linux-kernel

Cc: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com>

Hi Marek,

Le mar. 31 mars 2020 à 7:36, Marek Szyprowski 
<m.szyprowski@samsung.com> a écrit :
> Hi Paul,
> 
> On 2020-03-18 15:25, Paul Cercueil wrote:
>>>>   +    };
>>>>   +
>>>>   +    tsp_reg: regulator-1 {
>>>>   +        compatible = "regulator-fixed";
>>>>   +        regulator-name = "TSP_FIXED_VOLTAGES";
>>>>   +        regulator-min-microvolt = <3300000>;
>>>>   +        regulator-max-microvolt = <3300000>;
>>>>   +        gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
>>>>   +        startup-delay-us = <70000>;
>>>>   +        enable-active-high;
>>>>   +        regulator-boot-on;
>>>>   +        regulator-always-on;
>>> 
>>>  always-on and boot-on should not be needed. You have a consumer 
>>> for this
>>>  regulator.
>> 
>>  About this: the touchscreen driver does not use a regulator, so I
>>  believe that's why these properties were here.
>> 
>>  I sent patches upstream to address the issue:
>>  https://lkml.org/lkml/2020/3/15/94
>> 
>>  I believe this means I cannot merge the i9100 devicetree until it is
>>  acked.
> 
> One more information - similar change has been already posted, but it
> looks it got lost then: https://patchwork.kernel.org/patch/10550903/

I was aware of this patch, but didn't know it was sent upstream.

This other patch uses two regulators, vdd/avdd but doesn't give any 
reason why.

Paweł, is that really needed?

-Paul


> Best regards
> --
> Marek Szyprowski, PhD
> Samsung R&D Institute Poland
> 



^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
@ 2020-03-31 13:09             ` Paul Cercueil
  0 siblings, 0 replies; 35+ messages in thread
From: Paul Cercueil @ 2020-03-31 13:09 UTC (permalink / raw)
  To: Marek Szyprowski
  Cc: mark.rutland, devicetree, Stenkin Evgeniy, linux-samsung-soc,
	linux-kernel, Krzysztof Kozlowski, Rob Herring, Kukjin Kim,
	linux-arm-kernel, Paweł Chmiel

Cc: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com>

Hi Marek,

Le mar. 31 mars 2020 à 7:36, Marek Szyprowski 
<m.szyprowski@samsung.com> a écrit :
> Hi Paul,
> 
> On 2020-03-18 15:25, Paul Cercueil wrote:
>>>>   +    };
>>>>   +
>>>>   +    tsp_reg: regulator-1 {
>>>>   +        compatible = "regulator-fixed";
>>>>   +        regulator-name = "TSP_FIXED_VOLTAGES";
>>>>   +        regulator-min-microvolt = <3300000>;
>>>>   +        regulator-max-microvolt = <3300000>;
>>>>   +        gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
>>>>   +        startup-delay-us = <70000>;
>>>>   +        enable-active-high;
>>>>   +        regulator-boot-on;
>>>>   +        regulator-always-on;
>>> 
>>>  always-on and boot-on should not be needed. You have a consumer 
>>> for this
>>>  regulator.
>> 
>>  About this: the touchscreen driver does not use a regulator, so I
>>  believe that's why these properties were here.
>> 
>>  I sent patches upstream to address the issue:
>>  https://lkml.org/lkml/2020/3/15/94
>> 
>>  I believe this means I cannot merge the i9100 devicetree until it is
>>  acked.
> 
> One more information - similar change has been already posted, but it
> looks it got lost then: https://patchwork.kernel.org/patch/10550903/

I was aware of this patch, but didn't know it was sent upstream.

This other patch uses two regulators, vdd/avdd but doesn't give any 
reason why.

Paweł, is that really needed?

-Paul


> Best regards
> --
> Marek Szyprowski, PhD
> Samsung R&D Institute Poland
> 



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
  2020-03-31 13:09             ` Paul Cercueil
@ 2020-03-31 13:55               ` Marek Szyprowski
  -1 siblings, 0 replies; 35+ messages in thread
From: Marek Szyprowski @ 2020-03-31 13:55 UTC (permalink / raw)
  To: Paul Cercueil
  Cc: Krzysztof Kozlowski, Kukjin Kim, Paweł Chmiel, Rob Herring,
	mark.rutland, Stenkin Evgeniy, linux-arm-kernel,
	linux-samsung-soc, devicetree, linux-kernel

Hi Paul,

On 2020-03-31 15:09, Paul Cercueil wrote:
> Cc: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com>
>
> Hi Marek,
>
> Le mar. 31 mars 2020 à 7:36, Marek Szyprowski 
> <m.szyprowski@samsung.com> a écrit :
>> Hi Paul,
>>
>> On 2020-03-18 15:25, Paul Cercueil wrote:
>>>>>   +    };
>>>>>   +
>>>>>   +    tsp_reg: regulator-1 {
>>>>>   +        compatible = "regulator-fixed";
>>>>>   +        regulator-name = "TSP_FIXED_VOLTAGES";
>>>>>   +        regulator-min-microvolt = <3300000>;
>>>>>   +        regulator-max-microvolt = <3300000>;
>>>>>   +        gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
>>>>>   +        startup-delay-us = <70000>;
>>>>>   +        enable-active-high;
>>>>>   +        regulator-boot-on;
>>>>>   +        regulator-always-on;
>>>>
>>>>  always-on and boot-on should not be needed. You have a consumer 
>>>> for this
>>>>  regulator.
>>>
>>>  About this: the touchscreen driver does not use a regulator, so I
>>>  believe that's why these properties were here.
>>>
>>>  I sent patches upstream to address the issue:
>>>  https://protect2.fireeye.com/url?k=e8aedc29-b53072b3-e8af5766-0cc47a336fae-759579fd576d8382&u=https://lkml.org/lkml/2020/3/15/94 
>>>
>>>
>>>  I believe this means I cannot merge the i9100 devicetree until it is
>>>  acked.
>>
>> One more information - similar change has been already posted, but it
>> looks it got lost then: https://patchwork.kernel.org/patch/10550903/
>
> I was aware of this patch, but didn't know it was sent upstream.
>
> This other patch uses two regulators, vdd/avdd but doesn't give any 
> reason why.
>
I've checked the UniversalC210 schematic, which uses the same 
touchscreen chip. There are 2 supplies to the touchscreen chip: 2.8V VDD 
and 3.3V AVDD. Both are enabled by the same GPIO pin though. There is 
however no reset GPIO pin there.

> Paweł, is that really needed?
>
Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
@ 2020-03-31 13:55               ` Marek Szyprowski
  0 siblings, 0 replies; 35+ messages in thread
From: Marek Szyprowski @ 2020-03-31 13:55 UTC (permalink / raw)
  To: Paul Cercueil
  Cc: mark.rutland, devicetree, Stenkin Evgeniy, linux-samsung-soc,
	linux-kernel, Krzysztof Kozlowski, Rob Herring, Kukjin Kim,
	linux-arm-kernel, Paweł Chmiel

Hi Paul,

On 2020-03-31 15:09, Paul Cercueil wrote:
> Cc: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com>
>
> Hi Marek,
>
> Le mar. 31 mars 2020 à 7:36, Marek Szyprowski 
> <m.szyprowski@samsung.com> a écrit :
>> Hi Paul,
>>
>> On 2020-03-18 15:25, Paul Cercueil wrote:
>>>>>   +    };
>>>>>   +
>>>>>   +    tsp_reg: regulator-1 {
>>>>>   +        compatible = "regulator-fixed";
>>>>>   +        regulator-name = "TSP_FIXED_VOLTAGES";
>>>>>   +        regulator-min-microvolt = <3300000>;
>>>>>   +        regulator-max-microvolt = <3300000>;
>>>>>   +        gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
>>>>>   +        startup-delay-us = <70000>;
>>>>>   +        enable-active-high;
>>>>>   +        regulator-boot-on;
>>>>>   +        regulator-always-on;
>>>>
>>>>  always-on and boot-on should not be needed. You have a consumer 
>>>> for this
>>>>  regulator.
>>>
>>>  About this: the touchscreen driver does not use a regulator, so I
>>>  believe that's why these properties were here.
>>>
>>>  I sent patches upstream to address the issue:
>>>  https://protect2.fireeye.com/url?k=e8aedc29-b53072b3-e8af5766-0cc47a336fae-759579fd576d8382&u=https://lkml.org/lkml/2020/3/15/94 
>>>
>>>
>>>  I believe this means I cannot merge the i9100 devicetree until it is
>>>  acked.
>>
>> One more information - similar change has been already posted, but it
>> looks it got lost then: https://patchwork.kernel.org/patch/10550903/
>
> I was aware of this patch, but didn't know it was sent upstream.
>
> This other patch uses two regulators, vdd/avdd but doesn't give any 
> reason why.
>
I've checked the UniversalC210 schematic, which uses the same 
touchscreen chip. There are 2 supplies to the touchscreen chip: 2.8V VDD 
and 3.3V AVDD. Both are enabled by the same GPIO pin though. There is 
however no reset GPIO pin there.

> Paweł, is that really needed?
>
Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
  2020-03-31 13:55               ` Marek Szyprowski
@ 2020-03-31 15:29                 ` Paweł Chmiel
  -1 siblings, 0 replies; 35+ messages in thread
From: Paweł Chmiel @ 2020-03-31 15:29 UTC (permalink / raw)
  To: Marek Szyprowski, Paul Cercueil
  Cc: Krzysztof Kozlowski, Kukjin Kim, Rob Herring, mark.rutland,
	Stenkin Evgeniy, linux-arm-kernel, linux-samsung-soc, devicetree,
	linux-kernel

On Tue, 2020-03-31 at 15:55 +0200, Marek Szyprowski wrote:
> Hi Paul,
> 
> On 2020-03-31 15:09, Paul Cercueil wrote:
> > Cc: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com>
> > 
> > Hi Marek,
> > 
> > Le mar. 31 mars 2020 à 7:36, Marek Szyprowski 
> > <m.szyprowski@samsung.com> a écrit :
> > > Hi Paul,
> > > 
> > > On 2020-03-18 15:25, Paul Cercueil wrote:
> > > > > >   +    };
> > > > > >   +
> > > > > >   +    tsp_reg: regulator-1 {
> > > > > >   +        compatible = "regulator-fixed";
> > > > > >   +        regulator-name = "TSP_FIXED_VOLTAGES";
> > > > > >   +        regulator-min-microvolt = <3300000>;
> > > > > >   +        regulator-max-microvolt = <3300000>;
> > > > > >   +        gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
> > > > > >   +        startup-delay-us = <70000>;
> > > > > >   +        enable-active-high;
> > > > > >   +        regulator-boot-on;
> > > > > >   +        regulator-always-on;
> > > > > 
> > > > >  always-on and boot-on should not be needed. You have a consumer 
> > > > > for this
> > > > >  regulator.
> > > > 
> > > >  About this: the touchscreen driver does not use a regulator, so I
> > > >  believe that's why these properties were here.
> > > > 
> > > >  I sent patches upstream to address the issue:
> > > >  https://protect2.fireeye.com/url?k=e8aedc29-b53072b3-e8af5766-0cc47a336fae-759579fd576d8382&u=https://lkml.org/lkml/2020/3/15/94 
> > > > 
> > > > 
> > > >  I believe this means I cannot merge the i9100 devicetree until it is
> > > >  acked.
> > > 
> > > One more information - similar change has been already posted, but it
> > > looks it got lost then: https://patchwork.kernel.org/patch/10550903/
> > 
> > I was aware of this patch, but didn't know it was sent upstream.
> > 
> > This other patch uses two regulators, vdd/avdd but doesn't give any 
> > reason why.
> > 
> I've checked the UniversalC210 schematic, which uses the same 
> touchscreen chip. There are 2 supplies to the touchscreen chip: 2.8V VDD 
> and 3.3V AVDD. Both are enabled by the same GPIO pin though. There is 
> however no reset GPIO pin there.
Hi
Don't remember now how it worked on Galaxy S1, but it looks like it has
the same setup - two regulators enabled by one GPIO pin.
> 
> > Paweł, is that really needed?
> > 
> Best regards


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
@ 2020-03-31 15:29                 ` Paweł Chmiel
  0 siblings, 0 replies; 35+ messages in thread
From: Paweł Chmiel @ 2020-03-31 15:29 UTC (permalink / raw)
  To: Marek Szyprowski, Paul Cercueil
  Cc: mark.rutland, devicetree, Stenkin Evgeniy, linux-samsung-soc,
	linux-kernel, Krzysztof Kozlowski, Rob Herring, Kukjin Kim,
	linux-arm-kernel

On Tue, 2020-03-31 at 15:55 +0200, Marek Szyprowski wrote:
> Hi Paul,
> 
> On 2020-03-31 15:09, Paul Cercueil wrote:
> > Cc: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com>
> > 
> > Hi Marek,
> > 
> > Le mar. 31 mars 2020 à 7:36, Marek Szyprowski 
> > <m.szyprowski@samsung.com> a écrit :
> > > Hi Paul,
> > > 
> > > On 2020-03-18 15:25, Paul Cercueil wrote:
> > > > > >   +    };
> > > > > >   +
> > > > > >   +    tsp_reg: regulator-1 {
> > > > > >   +        compatible = "regulator-fixed";
> > > > > >   +        regulator-name = "TSP_FIXED_VOLTAGES";
> > > > > >   +        regulator-min-microvolt = <3300000>;
> > > > > >   +        regulator-max-microvolt = <3300000>;
> > > > > >   +        gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
> > > > > >   +        startup-delay-us = <70000>;
> > > > > >   +        enable-active-high;
> > > > > >   +        regulator-boot-on;
> > > > > >   +        regulator-always-on;
> > > > > 
> > > > >  always-on and boot-on should not be needed. You have a consumer 
> > > > > for this
> > > > >  regulator.
> > > > 
> > > >  About this: the touchscreen driver does not use a regulator, so I
> > > >  believe that's why these properties were here.
> > > > 
> > > >  I sent patches upstream to address the issue:
> > > >  https://protect2.fireeye.com/url?k=e8aedc29-b53072b3-e8af5766-0cc47a336fae-759579fd576d8382&u=https://lkml.org/lkml/2020/3/15/94 
> > > > 
> > > > 
> > > >  I believe this means I cannot merge the i9100 devicetree until it is
> > > >  acked.
> > > 
> > > One more information - similar change has been already posted, but it
> > > looks it got lost then: https://patchwork.kernel.org/patch/10550903/
> > 
> > I was aware of this patch, but didn't know it was sent upstream.
> > 
> > This other patch uses two regulators, vdd/avdd but doesn't give any 
> > reason why.
> > 
> I've checked the UniversalC210 schematic, which uses the same 
> touchscreen chip. There are 2 supplies to the touchscreen chip: 2.8V VDD 
> and 3.3V AVDD. Both are enabled by the same GPIO pin though. There is 
> however no reset GPIO pin there.
Hi
Don't remember now how it worked on Galaxy S1, but it looks like it has
the same setup - two regulators enabled by one GPIO pin.
> 
> > Paweł, is that really needed?
> > 
> Best regards


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
  2020-03-31 15:29                 ` Paweł Chmiel
@ 2020-03-31 19:29                   ` Marek Szyprowski
  -1 siblings, 0 replies; 35+ messages in thread
From: Marek Szyprowski @ 2020-03-31 19:29 UTC (permalink / raw)
  To: Paweł Chmiel, Paul Cercueil
  Cc: Krzysztof Kozlowski, Kukjin Kim, Rob Herring, mark.rutland,
	Stenkin Evgeniy, linux-arm-kernel, linux-samsung-soc, devicetree,
	linux-kernel

Hi

On 2020-03-31 17:29, Paweł Chmiel wrote:
> On Tue, 2020-03-31 at 15:55 +0200, Marek Szyprowski wrote:
>> Hi Paul,
>>
>> On 2020-03-31 15:09, Paul Cercueil wrote:
>>> Cc: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com>
>>>
>>> Hi Marek,
>>>
>>> Le mar. 31 mars 2020 à 7:36, Marek Szyprowski
>>> <m.szyprowski@samsung.com> a écrit :
>>>> Hi Paul,
>>>>
>>>> On 2020-03-18 15:25, Paul Cercueil wrote:
>>>>>>>    +    };
>>>>>>>    +
>>>>>>>    +    tsp_reg: regulator-1 {
>>>>>>>    +        compatible = "regulator-fixed";
>>>>>>>    +        regulator-name = "TSP_FIXED_VOLTAGES";
>>>>>>>    +        regulator-min-microvolt = <3300000>;
>>>>>>>    +        regulator-max-microvolt = <3300000>;
>>>>>>>    +        gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
>>>>>>>    +        startup-delay-us = <70000>;
>>>>>>>    +        enable-active-high;
>>>>>>>    +        regulator-boot-on;
>>>>>>>    +        regulator-always-on;
>>>>>>   always-on and boot-on should not be needed. You have a consumer
>>>>>> for this
>>>>>>   regulator.
>>>>>   About this: the touchscreen driver does not use a regulator, so I
>>>>>   believe that's why these properties were here.
>>>>>
>>>>>   I sent patches upstream to address the issue:
>>>>>   https://protect2.fireeye.com/url?k=e8aedc29-b53072b3-e8af5766-0cc47a336fae-759579fd576d8382&u=https://lkml.org/lkml/2020/3/15/94
>>>>>
>>>>>
>>>>>   I believe this means I cannot merge the i9100 devicetree until it is
>>>>>   acked.
>>>> One more information - similar change has been already posted, but it
>>>> looks it got lost then: https://patchwork.kernel.org/patch/10550903/
>>> I was aware of this patch, but didn't know it was sent upstream.
>>>
>>> This other patch uses two regulators, vdd/avdd but doesn't give any
>>> reason why.
>>>
>> I've checked the UniversalC210 schematic, which uses the same
>> touchscreen chip. There are 2 supplies to the touchscreen chip: 2.8V VDD
>> and 3.3V AVDD. Both are enabled by the same GPIO pin though. There is
>> however no reset GPIO pin there.
> Hi
> Don't remember now how it worked on Galaxy S1, but it looks like it has
> the same setup - two regulators enabled by one GPIO pin.

It is quite common for the regulators to share the enable GPIO line, so 
this is not an issue. Regulator framework supports such configuration 
for ages. I'm curious about the reset GPIO line, which were made 
mandatory for the regulators control in your patch. I didn't find it on 
any schematic of the devices with this touch screen, but I don't have a 
schematic of the Galaxy S1. IMHO the reset signal is simply derived from 
the supply regulators with some simple circuit, but I don't have 
schematic of that part.

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
@ 2020-03-31 19:29                   ` Marek Szyprowski
  0 siblings, 0 replies; 35+ messages in thread
From: Marek Szyprowski @ 2020-03-31 19:29 UTC (permalink / raw)
  To: Paweł Chmiel, Paul Cercueil
  Cc: mark.rutland, devicetree, Stenkin Evgeniy, linux-samsung-soc,
	linux-kernel, Krzysztof Kozlowski, Rob Herring, Kukjin Kim,
	linux-arm-kernel

Hi

On 2020-03-31 17:29, Paweł Chmiel wrote:
> On Tue, 2020-03-31 at 15:55 +0200, Marek Szyprowski wrote:
>> Hi Paul,
>>
>> On 2020-03-31 15:09, Paul Cercueil wrote:
>>> Cc: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com>
>>>
>>> Hi Marek,
>>>
>>> Le mar. 31 mars 2020 à 7:36, Marek Szyprowski
>>> <m.szyprowski@samsung.com> a écrit :
>>>> Hi Paul,
>>>>
>>>> On 2020-03-18 15:25, Paul Cercueil wrote:
>>>>>>>    +    };
>>>>>>>    +
>>>>>>>    +    tsp_reg: regulator-1 {
>>>>>>>    +        compatible = "regulator-fixed";
>>>>>>>    +        regulator-name = "TSP_FIXED_VOLTAGES";
>>>>>>>    +        regulator-min-microvolt = <3300000>;
>>>>>>>    +        regulator-max-microvolt = <3300000>;
>>>>>>>    +        gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
>>>>>>>    +        startup-delay-us = <70000>;
>>>>>>>    +        enable-active-high;
>>>>>>>    +        regulator-boot-on;
>>>>>>>    +        regulator-always-on;
>>>>>>   always-on and boot-on should not be needed. You have a consumer
>>>>>> for this
>>>>>>   regulator.
>>>>>   About this: the touchscreen driver does not use a regulator, so I
>>>>>   believe that's why these properties were here.
>>>>>
>>>>>   I sent patches upstream to address the issue:
>>>>>   https://protect2.fireeye.com/url?k=e8aedc29-b53072b3-e8af5766-0cc47a336fae-759579fd576d8382&u=https://lkml.org/lkml/2020/3/15/94
>>>>>
>>>>>
>>>>>   I believe this means I cannot merge the i9100 devicetree until it is
>>>>>   acked.
>>>> One more information - similar change has been already posted, but it
>>>> looks it got lost then: https://patchwork.kernel.org/patch/10550903/
>>> I was aware of this patch, but didn't know it was sent upstream.
>>>
>>> This other patch uses two regulators, vdd/avdd but doesn't give any
>>> reason why.
>>>
>> I've checked the UniversalC210 schematic, which uses the same
>> touchscreen chip. There are 2 supplies to the touchscreen chip: 2.8V VDD
>> and 3.3V AVDD. Both are enabled by the same GPIO pin though. There is
>> however no reset GPIO pin there.
> Hi
> Don't remember now how it worked on Galaxy S1, but it looks like it has
> the same setup - two regulators enabled by one GPIO pin.

It is quite common for the regulators to share the enable GPIO line, so 
this is not an issue. Regulator framework supports such configuration 
for ages. I'm curious about the reset GPIO line, which were made 
mandatory for the regulators control in your patch. I didn't find it on 
any schematic of the devices with this touch screen, but I don't have a 
schematic of the Galaxy S1. IMHO the reset signal is simply derived from 
the supply regulators with some simple circuit, but I don't have 
schematic of that part.

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
  2020-03-31 19:29                   ` Marek Szyprowski
@ 2020-03-31 19:50                     ` Paweł Chmiel
  -1 siblings, 0 replies; 35+ messages in thread
From: Paweł Chmiel @ 2020-03-31 19:50 UTC (permalink / raw)
  To: Marek Szyprowski, Paul Cercueil
  Cc: Krzysztof Kozlowski, Kukjin Kim, Rob Herring, mark.rutland,
	Stenkin Evgeniy, linux-arm-kernel, linux-samsung-soc, devicetree,
	linux-kernel

On Tue, 2020-03-31 at 21:29 +0200, Marek Szyprowski wrote:
> Hi
> 
> On 2020-03-31 17:29, Paweł Chmiel wrote:
> > On Tue, 2020-03-31 at 15:55 +0200, Marek Szyprowski wrote:
> > > Hi Paul,
> > > 
> > > On 2020-03-31 15:09, Paul Cercueil wrote:
> > > > Cc: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com>
> > > > 
> > > > Hi Marek,
> > > > 
> > > > Le mar. 31 mars 2020 à 7:36, Marek Szyprowski
> > > > <m.szyprowski@samsung.com> a écrit :
> > > > > Hi Paul,
> > > > > 
> > > > > On 2020-03-18 15:25, Paul Cercueil wrote:
> > > > > > > >    +    };
> > > > > > > >    +
> > > > > > > >    +    tsp_reg: regulator-1 {
> > > > > > > >    +        compatible = "regulator-fixed";
> > > > > > > >    +        regulator-name = "TSP_FIXED_VOLTAGES";
> > > > > > > >    +        regulator-min-microvolt = <3300000>;
> > > > > > > >    +        regulator-max-microvolt = <3300000>;
> > > > > > > >    +        gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
> > > > > > > >    +        startup-delay-us = <70000>;
> > > > > > > >    +        enable-active-high;
> > > > > > > >    +        regulator-boot-on;
> > > > > > > >    +        regulator-always-on;
> > > > > > >   always-on and boot-on should not be needed. You have a consumer
> > > > > > > for this
> > > > > > >   regulator.
> > > > > >   About this: the touchscreen driver does not use a regulator, so I
> > > > > >   believe that's why these properties were here.
> > > > > > 
> > > > > >   I sent patches upstream to address the issue:
> > > > > >   https://protect2.fireeye.com/url?k=e8aedc29-b53072b3-e8af5766-0cc47a336fae-759579fd576d8382&u=https://lkml.org/lkml/2020/3/15/94
> > > > > > 
> > > > > > 
> > > > > >   I believe this means I cannot merge the i9100 devicetree until it is
> > > > > >   acked.
> > > > > One more information - similar change has been already posted, but it
> > > > > looks it got lost then: https://patchwork.kernel.org/patch/10550903/
> > > > I was aware of this patch, but didn't know it was sent upstream.
> > > > 
> > > > This other patch uses two regulators, vdd/avdd but doesn't give any
> > > > reason why.
> > > > 
> > > I've checked the UniversalC210 schematic, which uses the same
> > > touchscreen chip. There are 2 supplies to the touchscreen chip: 2.8V VDD
> > > and 3.3V AVDD. Both are enabled by the same GPIO pin though. There is
> > > however no reset GPIO pin there.
> > Hi
> > Don't remember now how it worked on Galaxy S1, but it looks like it has
> > the same setup - two regulators enabled by one GPIO pin.
> 
> It is quite common for the regulators to share the enable GPIO line, so 
> this is not an issue. Regulator framework supports such configuration 
> for ages. I'm curious about the reset GPIO line, which were made 
> mandatory for the regulators control in your patch. I didn't find it on 
> any schematic of the devices with this touch screen, but I don't have a 
> schematic of the Galaxy S1. IMHO the reset signal is simply derived from 
> the supply regulators with some simple circuit, but I don't have 
> schematic of that part.
Hi
Regarding this change - it was suggested during review of v1 version of
those patches. It's first reply here 
https://patchwork.kernel.org/patch/10524007/

> 
> Best regards


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
@ 2020-03-31 19:50                     ` Paweł Chmiel
  0 siblings, 0 replies; 35+ messages in thread
From: Paweł Chmiel @ 2020-03-31 19:50 UTC (permalink / raw)
  To: Marek Szyprowski, Paul Cercueil
  Cc: mark.rutland, devicetree, Stenkin Evgeniy, linux-samsung-soc,
	linux-kernel, Krzysztof Kozlowski, Rob Herring, Kukjin Kim,
	linux-arm-kernel

On Tue, 2020-03-31 at 21:29 +0200, Marek Szyprowski wrote:
> Hi
> 
> On 2020-03-31 17:29, Paweł Chmiel wrote:
> > On Tue, 2020-03-31 at 15:55 +0200, Marek Szyprowski wrote:
> > > Hi Paul,
> > > 
> > > On 2020-03-31 15:09, Paul Cercueil wrote:
> > > > Cc: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com>
> > > > 
> > > > Hi Marek,
> > > > 
> > > > Le mar. 31 mars 2020 à 7:36, Marek Szyprowski
> > > > <m.szyprowski@samsung.com> a écrit :
> > > > > Hi Paul,
> > > > > 
> > > > > On 2020-03-18 15:25, Paul Cercueil wrote:
> > > > > > > >    +    };
> > > > > > > >    +
> > > > > > > >    +    tsp_reg: regulator-1 {
> > > > > > > >    +        compatible = "regulator-fixed";
> > > > > > > >    +        regulator-name = "TSP_FIXED_VOLTAGES";
> > > > > > > >    +        regulator-min-microvolt = <3300000>;
> > > > > > > >    +        regulator-max-microvolt = <3300000>;
> > > > > > > >    +        gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
> > > > > > > >    +        startup-delay-us = <70000>;
> > > > > > > >    +        enable-active-high;
> > > > > > > >    +        regulator-boot-on;
> > > > > > > >    +        regulator-always-on;
> > > > > > >   always-on and boot-on should not be needed. You have a consumer
> > > > > > > for this
> > > > > > >   regulator.
> > > > > >   About this: the touchscreen driver does not use a regulator, so I
> > > > > >   believe that's why these properties were here.
> > > > > > 
> > > > > >   I sent patches upstream to address the issue:
> > > > > >   https://protect2.fireeye.com/url?k=e8aedc29-b53072b3-e8af5766-0cc47a336fae-759579fd576d8382&u=https://lkml.org/lkml/2020/3/15/94
> > > > > > 
> > > > > > 
> > > > > >   I believe this means I cannot merge the i9100 devicetree until it is
> > > > > >   acked.
> > > > > One more information - similar change has been already posted, but it
> > > > > looks it got lost then: https://patchwork.kernel.org/patch/10550903/
> > > > I was aware of this patch, but didn't know it was sent upstream.
> > > > 
> > > > This other patch uses two regulators, vdd/avdd but doesn't give any
> > > > reason why.
> > > > 
> > > I've checked the UniversalC210 schematic, which uses the same
> > > touchscreen chip. There are 2 supplies to the touchscreen chip: 2.8V VDD
> > > and 3.3V AVDD. Both are enabled by the same GPIO pin though. There is
> > > however no reset GPIO pin there.
> > Hi
> > Don't remember now how it worked on Galaxy S1, but it looks like it has
> > the same setup - two regulators enabled by one GPIO pin.
> 
> It is quite common for the regulators to share the enable GPIO line, so 
> this is not an issue. Regulator framework supports such configuration 
> for ages. I'm curious about the reset GPIO line, which were made 
> mandatory for the regulators control in your patch. I didn't find it on 
> any schematic of the devices with this touch screen, but I don't have a 
> schematic of the Galaxy S1. IMHO the reset signal is simply derived from 
> the supply regulators with some simple circuit, but I don't have 
> schematic of that part.
Hi
Regarding this change - it was suggested during review of v1 version of
those patches. It's first reply here 
https://patchwork.kernel.org/patch/10524007/

> 
> Best regards


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
  2020-03-31 19:50                     ` Paweł Chmiel
@ 2020-04-01 10:42                       ` Marek Szyprowski
  -1 siblings, 0 replies; 35+ messages in thread
From: Marek Szyprowski @ 2020-04-01 10:42 UTC (permalink / raw)
  To: Paweł Chmiel, Paul Cercueil
  Cc: Krzysztof Kozlowski, Kukjin Kim, Rob Herring, mark.rutland,
	Stenkin Evgeniy, linux-arm-kernel, linux-samsung-soc, devicetree,
	linux-kernel

Hi Paweł,

On 2020-03-31 21:50, Paweł Chmiel wrote:
> On Tue, 2020-03-31 at 21:29 +0200, Marek Szyprowski wrote:
>> On 2020-03-31 17:29, Paweł Chmiel wrote:
>>> On Tue, 2020-03-31 at 15:55 +0200, Marek Szyprowski wrote:
>>>> On 2020-03-31 15:09, Paul Cercueil wrote:
>>>>> Le mar. 31 mars 2020 à 7:36, Marek Szyprowski
>>>>> <m.szyprowski@samsung.com> a écrit :
>>>>>> On 2020-03-18 15:25, Paul Cercueil wrote:
>>>>>>>>>     +    };
>>>>>>>>>     +
>>>>>>>>>     +    tsp_reg: regulator-1 {
>>>>>>>>>     +        compatible = "regulator-fixed";
>>>>>>>>>     +        regulator-name = "TSP_FIXED_VOLTAGES";
>>>>>>>>>     +        regulator-min-microvolt = <3300000>;
>>>>>>>>>     +        regulator-max-microvolt = <3300000>;
>>>>>>>>>     +        gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
>>>>>>>>>     +        startup-delay-us = <70000>;
>>>>>>>>>     +        enable-active-high;
>>>>>>>>>     +        regulator-boot-on;
>>>>>>>>>     +        regulator-always-on;
>>>>>>>>    always-on and boot-on should not be needed. You have a consumer
>>>>>>>> for this
>>>>>>>>    regulator.
>>>>>>>    About this: the touchscreen driver does not use a regulator, so I
>>>>>>>    believe that's why these properties were here.
>>>>>>>
>>>>>>>    I sent patches upstream to address the issue:
>>>>>>>    https://protect2.fireeye.com/url?k=e8aedc29-b53072b3-e8af5766-0cc47a336fae-759579fd576d8382&u=https://lkml.org/lkml/2020/3/15/94
>>>>>>>
>>>>>>>
>>>>>>>    I believe this means I cannot merge the i9100 devicetree until it is
>>>>>>>    acked.
>>>>>> One more information - similar change has been already posted, but it
>>>>>> looks it got lost then: https://patchwork.kernel.org/patch/10550903/
>>>>> I was aware of this patch, but didn't know it was sent upstream.
>>>>>
>>>>> This other patch uses two regulators, vdd/avdd but doesn't give any
>>>>> reason why.
>>>>>
>>>> I've checked the UniversalC210 schematic, which uses the same
>>>> touchscreen chip. There are 2 supplies to the touchscreen chip: 2.8V VDD
>>>> and 3.3V AVDD. Both are enabled by the same GPIO pin though. There is
>>>> however no reset GPIO pin there.
>>> Hi
>>> Don't remember now how it worked on Galaxy S1, but it looks like it has
>>> the same setup - two regulators enabled by one GPIO pin.
>> It is quite common for the regulators to share the enable GPIO line, so
>> this is not an issue. Regulator framework supports such configuration
>> for ages. I'm curious about the reset GPIO line, which were made
>> mandatory for the regulators control in your patch. I didn't find it on
>> any schematic of the devices with this touch screen, but I don't have a
>> schematic of the Galaxy S1. IMHO the reset signal is simply derived from
>> the supply regulators with some simple circuit, but I don't have
>> schematic of that part.
> Hi
> Regarding this change - it was suggested during review of v1 version of
> those patches. It's first reply here
> https://patchwork.kernel.org/patch/10524007/

Well, I know that this has been requested in v1 review, but I thought 
that you have tested v3 of your patch on I9000, thus I was curious about 
that reset GPIO line.

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland


^ permalink raw reply	[flat|nested] 35+ messages in thread

* Re: [PATCH 2/2] ARM: DTS: Add devicetree file for the Galaxy S2
@ 2020-04-01 10:42                       ` Marek Szyprowski
  0 siblings, 0 replies; 35+ messages in thread
From: Marek Szyprowski @ 2020-04-01 10:42 UTC (permalink / raw)
  To: Paweł Chmiel, Paul Cercueil
  Cc: mark.rutland, devicetree, Stenkin Evgeniy, linux-samsung-soc,
	linux-kernel, Krzysztof Kozlowski, Rob Herring, Kukjin Kim,
	linux-arm-kernel

Hi Paweł,

On 2020-03-31 21:50, Paweł Chmiel wrote:
> On Tue, 2020-03-31 at 21:29 +0200, Marek Szyprowski wrote:
>> On 2020-03-31 17:29, Paweł Chmiel wrote:
>>> On Tue, 2020-03-31 at 15:55 +0200, Marek Szyprowski wrote:
>>>> On 2020-03-31 15:09, Paul Cercueil wrote:
>>>>> Le mar. 31 mars 2020 à 7:36, Marek Szyprowski
>>>>> <m.szyprowski@samsung.com> a écrit :
>>>>>> On 2020-03-18 15:25, Paul Cercueil wrote:
>>>>>>>>>     +    };
>>>>>>>>>     +
>>>>>>>>>     +    tsp_reg: regulator-1 {
>>>>>>>>>     +        compatible = "regulator-fixed";
>>>>>>>>>     +        regulator-name = "TSP_FIXED_VOLTAGES";
>>>>>>>>>     +        regulator-min-microvolt = <3300000>;
>>>>>>>>>     +        regulator-max-microvolt = <3300000>;
>>>>>>>>>     +        gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
>>>>>>>>>     +        startup-delay-us = <70000>;
>>>>>>>>>     +        enable-active-high;
>>>>>>>>>     +        regulator-boot-on;
>>>>>>>>>     +        regulator-always-on;
>>>>>>>>    always-on and boot-on should not be needed. You have a consumer
>>>>>>>> for this
>>>>>>>>    regulator.
>>>>>>>    About this: the touchscreen driver does not use a regulator, so I
>>>>>>>    believe that's why these properties were here.
>>>>>>>
>>>>>>>    I sent patches upstream to address the issue:
>>>>>>>    https://protect2.fireeye.com/url?k=e8aedc29-b53072b3-e8af5766-0cc47a336fae-759579fd576d8382&u=https://lkml.org/lkml/2020/3/15/94
>>>>>>>
>>>>>>>
>>>>>>>    I believe this means I cannot merge the i9100 devicetree until it is
>>>>>>>    acked.
>>>>>> One more information - similar change has been already posted, but it
>>>>>> looks it got lost then: https://patchwork.kernel.org/patch/10550903/
>>>>> I was aware of this patch, but didn't know it was sent upstream.
>>>>>
>>>>> This other patch uses two regulators, vdd/avdd but doesn't give any
>>>>> reason why.
>>>>>
>>>> I've checked the UniversalC210 schematic, which uses the same
>>>> touchscreen chip. There are 2 supplies to the touchscreen chip: 2.8V VDD
>>>> and 3.3V AVDD. Both are enabled by the same GPIO pin though. There is
>>>> however no reset GPIO pin there.
>>> Hi
>>> Don't remember now how it worked on Galaxy S1, but it looks like it has
>>> the same setup - two regulators enabled by one GPIO pin.
>> It is quite common for the regulators to share the enable GPIO line, so
>> this is not an issue. Regulator framework supports such configuration
>> for ages. I'm curious about the reset GPIO line, which were made
>> mandatory for the regulators control in your patch. I didn't find it on
>> any schematic of the devices with this touch screen, but I don't have a
>> schematic of the Galaxy S1. IMHO the reset signal is simply derived from
>> the supply regulators with some simple circuit, but I don't have
>> schematic of that part.
> Hi
> Regarding this change - it was suggested during review of v1 version of
> those patches. It's first reply here
> https://patchwork.kernel.org/patch/10524007/

Well, I know that this has been requested in v1 review, but I thought 
that you have tested v3 of your patch on I9000, thus I was curious about 
that reset GPIO line.

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2020-04-01 10:42 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-12 15:34 [PATCH 1/2] dt-bindings: arm/samsung: Add compatible string for the Galaxy S2 Paul Cercueil
2020-03-12 15:34 ` Paul Cercueil
2020-03-12 15:34 ` [PATCH 2/2] ARM: DTS: Add devicetree file " Paul Cercueil
2020-03-12 15:34   ` Paul Cercueil
2020-03-13  8:03   ` Marek Szyprowski
2020-03-13  8:03     ` Marek Szyprowski
2020-03-13 14:29     ` Paul Cercueil
2020-03-13 14:29       ` Paul Cercueil
2020-03-13 14:36       ` Paul Cercueil
2020-03-13 14:36         ` Paul Cercueil
2020-03-13  9:00   ` Krzysztof Kozlowski
2020-03-13  9:00     ` Krzysztof Kozlowski
2020-03-13 14:33     ` Paul Cercueil
2020-03-13 14:33       ` Paul Cercueil
2020-03-13 15:24       ` Marek Szyprowski
2020-03-13 15:24         ` Marek Szyprowski
2020-03-18 14:25     ` Paul Cercueil
     [not found]     ` <20200318142543.C167520772@mail.kernel.org>
2020-03-18 15:23       ` Krzysztof Kozlowski
2020-03-18 15:23         ` Krzysztof Kozlowski
     [not found]     ` <CGME20200318142549eucas1p1793027850923ebad20b4691cba676671@eucas1p1.samsung.com>
     [not found]       ` <D6.31.03891.A6F227E5@epmailinsp8.samsung.com>
2020-03-31  5:36         ` Marek Szyprowski
2020-03-31  5:36           ` Marek Szyprowski
2020-03-31 13:09           ` Paul Cercueil
2020-03-31 13:09             ` Paul Cercueil
2020-03-31 13:55             ` Marek Szyprowski
2020-03-31 13:55               ` Marek Szyprowski
2020-03-31 15:29               ` Paweł Chmiel
2020-03-31 15:29                 ` Paweł Chmiel
2020-03-31 19:29                 ` Marek Szyprowski
2020-03-31 19:29                   ` Marek Szyprowski
2020-03-31 19:50                   ` Paweł Chmiel
2020-03-31 19:50                     ` Paweł Chmiel
2020-04-01 10:42                     ` Marek Szyprowski
2020-04-01 10:42                       ` Marek Szyprowski
2020-03-13  8:29 ` [PATCH 1/2] dt-bindings: arm/samsung: Add compatible string " Krzysztof Kozlowski
2020-03-13  8:29   ` Krzysztof Kozlowski

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.