* [PATCH v6 1/8] ARM: dts: twl6032: Add DTS file for TWL6032 PMIC
2026-02-19 21:03 [PATCH v6 0/8] Initial support for Samsung Galaxy Tab 2 series Mithil Bavishi
@ 2026-02-19 21:04 ` Mithil Bavishi
2026-02-22 20:16 ` Claude review: " Claude Code Review Bot
2026-02-19 21:04 ` [PATCH v6 2/8] dt-bindings: vendor-prefixes: Add Doestek Mithil Bavishi
` (7 subsequent siblings)
8 siblings, 1 reply; 21+ messages in thread
From: Mithil Bavishi @ 2026-02-19 21:04 UTC (permalink / raw)
To: aaro.koskinen, airlied, andreas, conor+dt, jernej.skrabec, jonas,
khilman, krzk+dt, laurent.pinchart, maarten.lankhorst, mripard,
neil.armstrong, prabhakar.mahadev-lad.rj, jesszhan0024, rfoss,
robh, rogerq, simona, thierry.reding, tony, tzimmermann,
andrzej.hajda, bavishimithil
Cc: devicetree, dri-devel, linux-kernel, linux-omap
Add a dedicated DTS file for the TWL6032 PMIC (Phoenix Lite). Already
has driver support with TWL6030 (Phoenix) since both of them are so
similar, some nodes can be reused from TWL6030 as well
This can be included in the board files like twl6030
Example:
...
&i2c1 {
twl: twl@48 {
reg = <0x48>;
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
interrupt-controller;
interrupt-parent = <&gic>;
};
};
/include/ "twl6032.dtsi"
...
Used in devices like samsung-espresso, amazon-jem, epson-embt2ws etc
Signed-off-by: Mithil Bavishi <bavishimithil@gmail.com>
---
arch/arm/boot/dts/ti/omap/twl6032.dtsi | 77 ++++++++++++++++++++++++++
1 file changed, 77 insertions(+)
create mode 100644 arch/arm/boot/dts/ti/omap/twl6032.dtsi
diff --git a/arch/arm/boot/dts/ti/omap/twl6032.dtsi b/arch/arm/boot/dts/ti/omap/twl6032.dtsi
new file mode 100644
index 000000000..d599a2ca6
--- /dev/null
+++ b/arch/arm/boot/dts/ti/omap/twl6032.dtsi
@@ -0,0 +1,77 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Integrated Power Management Chip
+ * https://www.ti.com/lit/ds/symlink/twl6032.pdf
+ */
+
+&twl {
+ compatible = "ti,twl6032";
+ interrupt-controller;
+ #interrupt-cells = <1>;
+
+ rtc {
+ compatible = "ti,twl4030-rtc";
+ interrupts = <11>;
+ };
+
+ vio: regulator-vio {
+ compatible = "ti,twl6032-vio";
+ };
+
+ ldo1: regulator-ldo1 {
+ compatible = "ti,twl6032-ldo1";
+ };
+
+ ldo2: regulator-ldo2 {
+ compatible = "ti,twl6032-ldo2";
+ };
+
+ ldo3: regulator-ldo3 {
+ compatible = "ti,twl6032-ldo3";
+ };
+
+ ldo4: regulator-ldo4 {
+ compatible = "ti,twl6032-ldo4";
+ };
+
+ ldo5: regulator-ldo5 {
+ compatible = "ti,twl6032-ldo5";
+ };
+
+ ldo6: regulator-ldo6 {
+ compatible = "ti,twl6032-ldo6";
+ };
+
+ ldoln: regulator-ldoln {
+ compatible = "ti,twl6032-ldoln";
+ };
+
+ ldousb: regulator-ldousb {
+ compatible = "ti,twl6032-ldousb";
+ };
+
+ smps4: regulator-smps4 {
+ compatible = "ti,twl6032-smps4";
+ };
+
+ gpadc: gpadc {
+ compatible = "ti,twl6032-gpadc";
+ interrupts = <3>;
+ #io-channel-cells = <1>;
+ };
+
+ twl_usb_comparator: usb-comparator {
+ compatible = "ti,twl6030-usb";
+ interrupts = <4>, <10>;
+ };
+
+ twl_pwm: pwm {
+ compatible = "ti,twl6030-pwm";
+ #pwm-cells = <2>;
+ };
+
+ twl_pwmled: pwmled {
+ compatible = "ti,twl6030-pwmled";
+ #pwm-cells = <2>;
+ };
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* Claude review: ARM: dts: twl6032: Add DTS file for TWL6032 PMIC
2026-02-19 21:04 ` [PATCH v6 1/8] ARM: dts: twl6032: Add DTS file for TWL6032 PMIC Mithil Bavishi
@ 2026-02-22 20:16 ` Claude Code Review Bot
0 siblings, 0 replies; 21+ messages in thread
From: Claude Code Review Bot @ 2026-02-22 20:16 UTC (permalink / raw)
To: dri-devel-reviews
Patch Review
This adds a new dtsi for the TWL6032 PMIC, modeled after the existing twl6030.dtsi. The structure and compatible strings look correct. The TWL6032 has a different regulator set (ldo1-ldo6, vio, ldoln, ldousb, smps4) compared to the TWL6030 (vaux1-3, vmmc, vpp, vusim, etc.), and the `gpadc` node correctly uses the `ti,twl6032-gpadc` compatible. The shared peripherals (usb-comparator, pwm, pwmled) reuse the `ti,twl6030-*` compatibles, which is appropriate since the driver handles both.
One difference from twl6030.dtsi: this file adds a `gpadc:` label on the gpadc node, which is needed because the espresso common dtsi references `&gpadc` for the current-sense-shunt io-channel. The twl6030.dtsi does not have this label. This is fine and intentional.
No issues found.
---
Generated by Claude Code Patch Reviewer
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH v6 2/8] dt-bindings: vendor-prefixes: Add Doestek
2026-02-19 21:03 [PATCH v6 0/8] Initial support for Samsung Galaxy Tab 2 series Mithil Bavishi
2026-02-19 21:04 ` [PATCH v6 1/8] ARM: dts: twl6032: Add DTS file for TWL6032 PMIC Mithil Bavishi
@ 2026-02-19 21:04 ` Mithil Bavishi
2026-02-22 20:16 ` Claude review: " Claude Code Review Bot
2026-02-19 21:04 ` [PATCH v6 3/8] dt-bindings: display: bridge: lvds-codec: add doestek, dtc34lm85am Mithil Bavishi
` (6 subsequent siblings)
8 siblings, 1 reply; 21+ messages in thread
From: Mithil Bavishi @ 2026-02-19 21:04 UTC (permalink / raw)
To: aaro.koskinen, airlied, andreas, conor+dt, jernej.skrabec, jonas,
khilman, krzk+dt, laurent.pinchart, maarten.lankhorst, mripard,
neil.armstrong, prabhakar.mahadev-lad.rj, jesszhan0024, rfoss,
robh, rogerq, simona, thierry.reding, tony, tzimmermann,
andrzej.hajda, bavishimithil
Cc: devicetree, dri-devel, linux-kernel, linux-omap,
Krzysztof Kozlowski
Add vendor prefix for Doestek Co., Ltd.
Link: http://www.doestek.co.kr/
Signed-off-by: Mithil Bavishi <bavishimithil@gmail.com>
Acked-by: Krzysztof Kozlowski <krzk@kernel.org>
---
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index c7591b2ae..70a195fc6 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -437,6 +437,8 @@ patternProperties:
description: D-Link Corporation
"^dmo,.*":
description: Data Modul AG
+ "^doestek,.*":
+ description: Doestek Co., Ltd.
"^domintech,.*":
description: Domintech Co., Ltd.
"^dongwoon,.*":
--
2.43.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v6 3/8] dt-bindings: display: bridge: lvds-codec: add doestek, dtc34lm85am
2026-02-19 21:03 [PATCH v6 0/8] Initial support for Samsung Galaxy Tab 2 series Mithil Bavishi
2026-02-19 21:04 ` [PATCH v6 1/8] ARM: dts: twl6032: Add DTS file for TWL6032 PMIC Mithil Bavishi
2026-02-19 21:04 ` [PATCH v6 2/8] dt-bindings: vendor-prefixes: Add Doestek Mithil Bavishi
@ 2026-02-19 21:04 ` Mithil Bavishi
2026-02-22 20:16 ` Claude review: " Claude Code Review Bot
2026-02-19 21:04 ` [PATCH v6 4/8] dt-bindings: display: panel-lvds: Add compatibles for Samsung LTN070NL01 and LTN101AL03 panels Mithil Bavishi
` (5 subsequent siblings)
8 siblings, 1 reply; 21+ messages in thread
From: Mithil Bavishi @ 2026-02-19 21:04 UTC (permalink / raw)
To: aaro.koskinen, airlied, andreas, conor+dt, jernej.skrabec, jonas,
khilman, krzk+dt, laurent.pinchart, maarten.lankhorst, mripard,
neil.armstrong, prabhakar.mahadev-lad.rj, jesszhan0024, rfoss,
robh, rogerq, simona, thierry.reding, tony, tzimmermann,
andrzej.hajda, bavishimithil
Cc: devicetree, dri-devel, linux-kernel, linux-omap,
Krzysztof Kozlowski
Add compatible strings for the Doestek DTC34LM85AM Flat Panel Display
Transmitter
Signed-off-by: Mithil Bavishi <bavishimithil@gmail.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml b/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml
index 4f7d3e9cf..3ad01645c 100644
--- a/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml
@@ -33,6 +33,7 @@ properties:
oneOf:
- items:
- enum:
+ - doestek,dtc34lm85am # For the Doestek DTC34LM85AM Flat Panel Display (FPD) Transmitter
- ti,ds90c185 # For the TI DS90C185 FPD-Link Serializer
- ti,ds90c187 # For the TI DS90C187 FPD-Link Serializer
- ti,sn75lvds83 # For the TI SN75LVDS83 FlatLink transmitter
--
2.43.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v6 4/8] dt-bindings: display: panel-lvds: Add compatibles for Samsung LTN070NL01 and LTN101AL03 panels
2026-02-19 21:03 [PATCH v6 0/8] Initial support for Samsung Galaxy Tab 2 series Mithil Bavishi
` (2 preceding siblings ...)
2026-02-19 21:04 ` [PATCH v6 3/8] dt-bindings: display: bridge: lvds-codec: add doestek, dtc34lm85am Mithil Bavishi
@ 2026-02-19 21:04 ` Mithil Bavishi
2026-02-22 20:16 ` Claude review: " Claude Code Review Bot
2026-02-19 21:04 ` [PATCH v6 5/8] ARM: dts: ti: omap: espresso-common: Add common device tree for Samsung Galaxy Tab 2 series Mithil Bavishi
` (4 subsequent siblings)
8 siblings, 1 reply; 21+ messages in thread
From: Mithil Bavishi @ 2026-02-19 21:04 UTC (permalink / raw)
To: aaro.koskinen, airlied, andreas, conor+dt, jernej.skrabec, jonas,
khilman, krzk+dt, laurent.pinchart, maarten.lankhorst, mripard,
neil.armstrong, prabhakar.mahadev-lad.rj, jesszhan0024, rfoss,
robh, rogerq, simona, thierry.reding, tony, tzimmermann,
andrzej.hajda, bavishimithil
Cc: devicetree, dri-devel, linux-kernel, linux-omap,
Krzysztof Kozlowski
The LTN070NL01 is a 7.0 inch 1024x600, 24 bit, VESA Compatible, TFT
display panel
The LTN101AL03 is a 10.1 inch 800x1280, 24 bit, VESA Compatible, TFT
display panel
Signed-off-by: Mithil Bavishi <bavishimithil@gmail.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
.../devicetree/bindings/display/panel/panel-lvds.yaml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml b/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml
index dbc01e640..b31c67bab 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml
+++ b/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml
@@ -58,6 +58,10 @@ properties:
- hydis,hv070wx2-1e0
# Jenson Display BL-JT60050-01A 7" WSVGA (1024x600) color TFT LCD LVDS panel
- jenson,bl-jt60050-01a
+ # Samsung LTN070NL01 7.0" WSVGA (1024x600) TFT LCD LVDS panel
+ - samsung,ltn070nl01
+ # Samsung LTN101AL03 10.1" WXGA (800x1280) TFT LCD LVDS panel
+ - samsung,ltn101al03
- tbs,a711-panel
# Winstar WF70A8SYJHLNGA 7" WSVGA (1024x600) color TFT LCD LVDS panel
- winstar,wf70a8syjhlnga
--
2.43.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v6 5/8] ARM: dts: ti: omap: espresso-common: Add common device tree for Samsung Galaxy Tab 2 series
2026-02-19 21:03 [PATCH v6 0/8] Initial support for Samsung Galaxy Tab 2 series Mithil Bavishi
` (3 preceding siblings ...)
2026-02-19 21:04 ` [PATCH v6 4/8] dt-bindings: display: panel-lvds: Add compatibles for Samsung LTN070NL01 and LTN101AL03 panels Mithil Bavishi
@ 2026-02-19 21:04 ` Mithil Bavishi
2026-02-20 20:55 ` Andreas Kemnade
2026-02-22 20:16 ` Claude review: " Claude Code Review Bot
2026-02-19 21:04 ` [PATCH v6 6/8] dt-bindings: omap: Add Samsung Galaxy Tab 2 7.0 and 10.1 Mithil Bavishi
` (3 subsequent siblings)
8 siblings, 2 replies; 21+ messages in thread
From: Mithil Bavishi @ 2026-02-19 21:04 UTC (permalink / raw)
To: aaro.koskinen, airlied, andreas, conor+dt, jernej.skrabec, jonas,
khilman, krzk+dt, laurent.pinchart, maarten.lankhorst, mripard,
neil.armstrong, prabhakar.mahadev-lad.rj, jesszhan0024, rfoss,
robh, rogerq, simona, thierry.reding, tony, tzimmermann,
andrzej.hajda, bavishimithil
Cc: devicetree, dri-devel, linux-kernel, linux-omap
Create common device tree for Samsung Espresso series devices
Let's create a common tree for all the variants first, later we can
device specific trees based on their screen sizes
Signed-off-by: Mithil Bavishi <bavishimithil@gmail.com>
---
.../omap/omap4-samsung-espresso-common.dtsi | 753 ++++++++++++++++++
1 file changed, 753 insertions(+)
create mode 100644 arch/arm/boot/dts/ti/omap/omap4-samsung-espresso-common.dtsi
diff --git a/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso-common.dtsi b/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso-common.dtsi
new file mode 100644
index 000000000..ab8e5f39d
--- /dev/null
+++ b/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso-common.dtsi
@@ -0,0 +1,753 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/dts-v1/;
+#include "dt-bindings/gpio/gpio.h"
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/input/input.h>
+#include "omap443x.dtsi"
+
+/ {
+ memory@80000000 {
+ device_type = "memory";
+ reg = <0x80000000 0x40000000>; /* 1 GB */
+ };
+
+ reserved-memory {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ continuous_splash: framebuffer@bef00000{
+ reg = <0xbef00000 (1024 * 600 * 4)>;
+ no-map;
+ };
+ };
+
+ chosen {
+ stdout-path = &uart3;
+ #address-cells = <1>;
+ };
+
+ i2c-gpio5 {
+ compatible = "i2c-gpio";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c5_pins>;
+ sda-gpios = <&gpio4 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ scl-gpios = <&gpio4 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ i2c-gpio,delay-us = <10>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* TODO: SMB136 Charger for 7" variant at 0x4d */
+ };
+
+ i2c-gpio6 {
+ compatible = "i2c-gpio";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c6_pins>;
+ sda-gpios = <&gpio3 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ scl-gpios = <&gpio3 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ i2c-gpio,delay-us = <10>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* TODO: STMPE811 ADC at 0x41 */
+ };
+
+ i2c-gpio7 {
+ compatible = "i2c-gpio";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c7_pins>;
+ sda-gpios = <&gpio2 30 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ scl-gpios = <&gpio2 29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ i2c-gpio,delay-us = <3>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ fuel-gauge@36 {
+ compatible = "maxim,max17042";
+ reg = <0x36>;
+ pinctrl-0 = <&fuel_alert_irq>;
+ pinctrl-names = "default";
+ interrupt-parent = <&gpio2>;
+ interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
+ maxim,rsns-microohm = <10000>;
+ maxim,over-heat-temp = <500>;
+ maxim,dead-volt = <2500>;
+ maxim,over-volt = <4300>;
+ };
+ };
+
+ reg_espresso_wlan: regulator-espresso-wlan {
+ pinctrl-names = "default";
+ pinctrl-0 = <&wlanen_gpio>;
+ compatible = "regulator-fixed";
+ regulator-name = "espresso_wlan";
+ regulator-max-microvolt = <2000000>;
+ regulator-min-microvolt = <2000000>;
+ gpio = <&gpio4 8 GPIO_ACTIVE_HIGH>; /* GPIO_104 */
+ startup-delay-us = <70000>;
+ regulator-always-on;
+ enable-active-high;
+ };
+
+ wlan_pwrseq: wlan-pwrseq {
+ compatible = "mmc-pwrseq-simple";
+ clocks = <&twl 0>;
+ clock-names = "ext_clock";
+ };
+
+ reg_espresso_internal: regulator-espresso-internal {
+ compatible = "regulator-fixed";
+ regulator-name = "eMMC_LDO";
+ regulator-max-microvolt = <1800000>;
+ regulator-min-microvolt = <1800000>;
+ gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>; /* GPIO_63 */
+ startup-delay-us = <100000>;
+ regulator-boot-on;
+ regulator-always-on;
+ enable-active-high;
+ };
+
+ reg_espresso_external: regulator-espresso-external {
+ compatible = "regulator-fixed";
+ regulator-name = "vmmc1";
+ regulator-max-microvolt = <2800000>;
+ regulator-min-microvolt = <2800000>;
+ gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>; /* GPIO_34 */
+ enable-active-high;
+ };
+
+ reg_touch_ldo_en: regulator-touch-ldo-en {
+ compatible = "regulator-fixed";
+ regulator-name = "touch_ldo_en";
+ regulator-max-microvolt = <2800000>;
+ regulator-min-microvolt = <2800000>;
+ gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>; /* GPIO_54 */
+ regulator-always-on;
+ enable-active-high;
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ pinctrl-names = "default";
+ pinctrl-0 = <&gpio_keys>;
+
+ key-power {
+ label = "power";
+
+ gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>; /* GPIO_wk3 */
+ linux,code = <KEY_POWER>;
+ wakeup-source;
+ };
+
+ button-volup {
+ linux,code = <KEY_VOLUMEUP>;
+ label = "volume_up"; /* GPIO_wk30 */
+ gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
+ };
+
+ button-voldown {
+ linux,code = <KEY_VOLUMEDOWN>;
+ label = "volume_down"; /* GPIO_wk8 */
+ gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ reg_lcd: regulator-lcd {
+ compatible = "regulator-fixed";
+ regulator-name = "lcd_en";
+ gpios = <&gpio5 7 GPIO_ACTIVE_HIGH>; /* GPIO_135 */
+ regulator-max-microvolt = <3300000>;
+ regulator-min-microvolt = <3300000>;
+ enable-active-high;
+ regulator-boot-on;
+ };
+
+ pwm10: pwm-10 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pwm10_default>;
+ compatible = "ti,omap-dmtimer-pwm";
+ #pwm-cells = <3>;
+ ti,timers = <&timer10>;
+ ti,clock-source = <0x00>;
+ };
+
+ lvds-encoder {
+ compatible = "doestek,dtc34lm85am", "lvds-encoder";
+ powerdown-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>; /* GPIO_136 */
+ power-supply = <®_lcd>;
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ bridge_in: endpoint {
+ remote-endpoint = <&dpi_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ bridge_out: endpoint {
+ remote-endpoint = <&panel_in>;
+ };
+ };
+ };
+ };
+
+ vibrator {
+ compatible = "gpio-vibrator";
+ enable-gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>; /* GPIO_38 */
+ pinctrl-names = "default";
+ pinctrl-0 = <&vibrator_default>;
+ };
+
+ gp2a_shunt: current-sense-shunt {
+ compatible = "current-sense-shunt";
+ io-channels = <&gpadc 4>;
+ shunt-resistor-micro-ohms = <24000000>; /* 24 ohms */
+ #io-channel-cells = <0>;
+ };
+
+ led-ir {
+ compatible = "gpio-ir-tx";
+ gpios = <&gpio2 27 GPIO_ACTIVE_HIGH>; /* GPIO_59 */
+ pinctrl-names = "default";
+ pinctrl-0 = <&ledir_pins>;
+ };
+};
+
+&omap4_pmx_wkup {
+ gpio_keys: gpio-keys-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x046, WAKEUP_EN | PIN_INPUT | MUX_MODE3)
+ /* sim_cd.gpio_wk3 - EXT_WAKEUP */
+ OMAP4_IOPAD(0x056, WAKEUP_EN | PIN_INPUT | MUX_MODE3)
+ /* fref_clk3_req.gpio_wk30 - VOL_UP */
+ OMAP4_IOPAD(0x05C, WAKEUP_EN | PIN_INPUT | MUX_MODE3)
+ /* fref_clk4_out.gpio_wk8 - VOL_DN */
+ >;
+ };
+
+ prox_irq: prox-irq-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x042, WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE3)
+ /* sim_clk.gpio_wk1 - PS_VOUT */
+ >;
+ };
+};
+
+&omap4_pmx_core {
+ backlight_pins: pinmux-backlight-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0X0D8, PIN_OUTPUT | PIN_OFF_OUTPUT_LOW | MUX_MODE3)
+ /* usbb1_ulpitll_dat7.gpio_95 - LED_BACKLIGHT_RESET */
+ >;
+ };
+
+ bluetooth_pins: pinmux-bluetooth-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x094, PIN_OUTPUT | MUX_MODE3)
+ /* gpmc_ncs6.gpio_103 - BT_EN */
+ OMAP4_IOPAD(0x0be, PIN_OUTPUT | MUX_MODE3)
+ /* cam_strobe.gpio_82 - BT_nRST */
+ OMAP4_IOPAD(0x0c0, PIN_INPUT | MUX_MODE3)
+ /* cam_globalreset.gpio_83 - BT_HOST_WAKE */
+ OMAP4_IOPAD(0x0d4, PIN_OUTPUT | MUX_MODE3)
+ /* usbb1_ulpitll_dat5.gpio_93 - BT_WAKE */
+ >;
+ };
+
+ dss_dpi_pins: pinmux-dss-dpi-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x162, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data23 */
+ OMAP4_IOPAD(0x164, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data22 */
+ OMAP4_IOPAD(0x166, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data21 */
+ OMAP4_IOPAD(0x168, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data20 */
+ OMAP4_IOPAD(0x16a, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data19 */
+ OMAP4_IOPAD(0x16c, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data18 */
+ OMAP4_IOPAD(0x16e, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data15 */
+ OMAP4_IOPAD(0x170, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data14 */
+ OMAP4_IOPAD(0x172, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data13 */
+ OMAP4_IOPAD(0x174, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data12 */
+ OMAP4_IOPAD(0x176, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data11 */
+ OMAP4_IOPAD(0x1b4, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data10 */
+ OMAP4_IOPAD(0x1b6, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data9 */
+ OMAP4_IOPAD(0x1b8, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data16 */
+ OMAP4_IOPAD(0x1ba, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data17 */
+ OMAP4_IOPAD(0x1bc, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_hsync */
+ OMAP4_IOPAD(0x1be, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_pclk */
+ OMAP4_IOPAD(0x1c0, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_vsync */
+ OMAP4_IOPAD(0x1c2, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_de */
+ OMAP4_IOPAD(0x1c4, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data8 */
+ OMAP4_IOPAD(0x1c6, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data7 */
+ OMAP4_IOPAD(0x1c8, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data6 */
+ OMAP4_IOPAD(0x1ca, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data5 */
+ OMAP4_IOPAD(0x1cc, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data4 */
+ OMAP4_IOPAD(0x1ce, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data3 */
+
+ OMAP4_IOPAD(0x1d0, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data2 */
+ OMAP4_IOPAD(0x1d2, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data1 */
+ OMAP4_IOPAD(0x1d4, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data0 */
+ >;
+ };
+
+ fuel_alert_irq: pinmux-fuel-alert-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x068, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* gpmc_a20.gpio_44 */
+ >;
+ };
+
+ i2c1_pins: pinmux-i2c1-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x122, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c1_scl */
+ OMAP4_IOPAD(0x124, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c1_sda */
+ >;
+ };
+
+ i2c2_pins: pinmux-i2c2-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x126, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c2_scl */
+ OMAP4_IOPAD(0x128, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c2_sda */
+ >;
+ };
+
+ i2c3_pins: pinmux-i2c3-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x12a, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c3_scl */
+ OMAP4_IOPAD(0x12c, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c3_sda */
+ >;
+ };
+
+ i2c4_pins: pinmux-i2c4-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x12e, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c4_scl */
+ OMAP4_IOPAD(0x130, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c4_sda */
+ >;
+ };
+
+ i2c5_pins: pinmux-i2c5-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x0de, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* usbc1_icusb_dp.gpio_98 */
+ OMAP4_IOPAD(0x0e0, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* usbc1_icusb_dm.gpio_99 */
+ >;
+ };
+
+ i2c6_pins: pinmux-i2c6-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x09c, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* hdmi_ddc_scl.gpio_65 */
+ OMAP4_IOPAD(0x09e, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* hdmi_ddc_sda.gpio_66 */
+ >;
+ };
+
+ i2c7_pins: pinmux-i2c7-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x08a, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* gpmc_wait0.gpio_61 */
+ OMAP4_IOPAD(0x08c, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* gpmc_wait1.gpio_62 */
+ >;
+ };
+
+ ledir_pins: pimux-ledir-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x086, PIN_INPUT_PULLDOWN | MUX_MODE7)
+ /* gpmc_nbe0_cle.gpio_59 */
+ OMAP4_IOPAD(0x156, PIN_INPUT_PULLDOWN | MUX_MODE7)
+ /* mcspi4_simo.gpio_152 */
+ >;
+ };
+
+ lvds_pins: pinmux-lvds-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0X136, PIN_OUTPUT | MUX_MODE3)
+ /* mcspi1_simo.gpio_136 - LVDS_nSHDN */
+ >;
+ };
+
+ mmc1_pins: pinmux-mmc1-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x0e2, PIN_INPUT_PULLDOWN | MUX_MODE0)
+ /* sdmmc1_clk */
+ OMAP4_IOPAD(0x0e4, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmcc1_cmd */
+ OMAP4_IOPAD(0x0e6, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmcc1_dat0 */
+ OMAP4_IOPAD(0x0e8, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc1_dat1 */
+ OMAP4_IOPAD(0x0ea, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc1_dat2 */
+ OMAP4_IOPAD(0x0ec, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc1_dat3 */
+ >;
+ };
+
+ mmc2_pins: pinmux-mmc2-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x040, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat0 */
+ OMAP4_IOPAD(0x042, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat1 */
+ OMAP4_IOPAD(0x044, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat2 */
+ OMAP4_IOPAD(0x046, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat3 */
+ OMAP4_IOPAD(0x048, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat4 */
+ OMAP4_IOPAD(0x04a, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat5 */
+ OMAP4_IOPAD(0x04c, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat6 */
+ OMAP4_IOPAD(0x04e, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat7 */
+ OMAP4_IOPAD(0x082, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_clk */
+ OMAP4_IOPAD(0x084, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_cmd */
+ >;
+ };
+
+ mmc5_pins: pinmux-mmc5-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x148, PIN_INPUT_PULLDOWN | MUX_MODE0)
+ /* sdmmc5_clk.sdmmc5_clk */
+ OMAP4_IOPAD(0x14a, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc5_cmd.sdmmc5_cmd */
+ OMAP4_IOPAD(0x14c, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc5_dat0.sdmmc5_dat0 */
+ OMAP4_IOPAD(0x14e, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc5_dat1.sdmmc5_dat1 */
+ OMAP4_IOPAD(0x150, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc5_dat2.sdmmc5_dat2 */
+ OMAP4_IOPAD(0x152, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc5_dat3.sdmmc5_dat3 */
+ >;
+ };
+
+ pwm10_default: pinmux-pwm10-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0X0D6, PIN_OUTPUT | PIN_OFF_OUTPUT_LOW | MUX_MODE1)
+ /* usbb1_ulpitll_dat6.dmtimer10_pwm_evt - LED_BACKLIGHT_PWM */
+ >;
+ };
+
+ touch_pins: pinmux-touch-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x06c, PIN_INPUT | MUX_MODE3)
+ /* gpmc_a22.gpio_46 - TSP_INT */
+ >;
+ };
+
+ uart2_pins: pinmux-uart2-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x118, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* uart2_cts.uart2_cts */
+ OMAP4_IOPAD(0x11a, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* uart2_rts.uart2_rts */
+ OMAP4_IOPAD(0x11c, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* uart2_rx.uart2_rx */
+ OMAP4_IOPAD(0x11e, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* uart2_tx.uart2_tx */
+ >;
+ };
+
+ uart3_pins: pinmux-uart3-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x144, PIN_INPUT | MUX_MODE0)
+ /* uart3_rx_irrx */
+ OMAP4_IOPAD(0x146, PIN_OUTPUT | MUX_MODE0)
+ /* uart3_tx_irtx */
+ >;
+ };
+
+ vibrator_default: pinmux-vibrator-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x05c, PIN_INPUT_PULLDOWN | MUX_MODE3)
+ /* gpmc_ad14.gpio_38 - MOTOR_EN */
+ >;
+ };
+
+ wlanen_gpio: pinmux-wlanen-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x096, PIN_OUTPUT | MUX_MODE3)
+ /* gpmc_ncs7.gpio_104 */
+ >;
+ };
+
+ wlan_host_wake: pinmux-wlan-host-wake-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x0bc, PIN_INPUT | MUX_MODE3)
+ /* cam_shutter.gpio_81 - WLAN_HOST_WAKE */
+ >;
+ };
+};
+
+&uart3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart3_pins>;
+
+ interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH
+ &omap4_pmx_core OMAP4_UART3_RX>;
+};
+
+&i2c1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c1_pins>;
+
+ clock-frequency = <400000>;
+
+ twl: pmic@48 {
+ reg = <0x48>;
+ #clock-cells = <1>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <
+ &twl6030_pins
+ &twl6030_wkup_pins
+ >;
+
+ /* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */
+ interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
+ interrupt-parent = <&gic>;
+ system-power-controller;
+ };
+};
+
+#include "twl6032.dtsi"
+#include "twl6030_omap4.dtsi"
+
+&ldo1 {
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-always-on;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+};
+
+&ldo3 {
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+};
+
+&ldo4 {
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-always-on;
+};
+
+&ldo5 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+};
+
+&ldo6 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+};
+
+&smps4 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+};
+
+&ldousb {
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+};
+
+&i2c2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c2_pins>;
+};
+
+&i2c3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c3_pins>;
+};
+
+&i2c4 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c4_pins>;
+
+ accelerometer@18 {
+ compatible = "bosch,bma254";
+ reg = <0x18>;
+ vdd-supply = <&ldo4>;
+ vddio-supply = <&ldo5>;
+ interrupt-parent = <&gpio4>;
+ interrupts = <25 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>,
+ <26 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>;
+ };
+
+ magnetometer@2e {
+ compatible = "yamaha,yas530";
+ reg = <0x2e>;
+ vdd-supply = <&ldo4>;
+ iovdd-supply = <&ldo5>;
+ reset-gpios = <&gpio5 29 GPIO_ACTIVE_LOW>;
+ interrupts = <&gpio6 10 IRQ_TYPE_EDGE_RISING>;
+ };
+
+ light-sensor@44 {
+ compatible = "sharp,gp2ap002a00f";
+ reg = <0x44>;
+ interrupt-parent = <&gpio1>;
+ interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+ vdd-supply = <&ldo4>;
+ vio-supply = <&ldo4>;
+ io-channels = <&gp2a_shunt>;
+ io-channel-names = "alsout";
+ sharp,proximity-far-hysteresis = /bits/ 8 <0x40>;
+ sharp,proximity-close-hysteresis = /bits/ 8 <0x20>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&prox_irq>;
+ };
+};
+
+&dss {
+ status = "okay";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&dss_dpi_pins>;
+
+ port {
+ dpi_out: endpoint {
+ remote-endpoint = <&bridge_in>;
+ data-lines = <24>;
+ };
+ };
+};
+
+&twl_usb_comparator {
+ usb-supply = <&ldousb>;
+};
+
+&usb_otg_hs {
+ interface-type = <1>;
+ mode = <3>;
+ power = <50>;
+};
+
+&mmc1 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc1_pins>;
+
+ vmmc-supply = <®_espresso_external>;
+ bus-width = <4>;
+};
+
+&mmc2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc2_pins>;
+
+ vmmc-supply = <®_espresso_internal>;
+ ti,non-removable;
+ bus-width = <8>;
+};
+
+&mmc3 {
+ status = "disabled";
+};
+
+&mmc4 {
+ status = "disabled";
+};
+
+&mmc5 {
+ status = "okay";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ non-removable;
+ bus-width = <4>;
+ vmmc-supply = <®_espresso_wlan>;
+ mmc-pwrseq = <&wlan_pwrseq>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc5_pins>;
+
+ brcmf: wifi@1 {
+ compatible = "brcm,bcm4330-fmac", "brcm,bcm4329-fmac";
+ reg = <1>;
+
+ interrupt-parent = <&gpio3>;
+ interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "host-wake";
+ pinctrl-names = "default";
+ pinctrl-0 = <&wlan_host_wake>;
+ };
+};
+
+&uart2 {
+ interrupts-extended = <&wakeupgen GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH
+ &omap4_pmx_core OMAP4_UART2_RX>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart2_pins>;
+ bluetooth {
+ compatible = "brcm,bcm4330-bt";
+ pinctrl-names = "default";
+ pinctrl-0 = <&bluetooth_pins>;
+ shutdown-gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&gpio3 18 GPIO_ACTIVE_LOW>;
+ device-wakeup-gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
+ interrupt-parent = <&gpio3>;
+ interrupts = <19 IRQ_TYPE_EDGE_FALLING>;
+ interrupt-names = "host-wakeup";
+ };
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* Re: [PATCH v6 5/8] ARM: dts: ti: omap: espresso-common: Add common device tree for Samsung Galaxy Tab 2 series
2026-02-19 21:04 ` [PATCH v6 5/8] ARM: dts: ti: omap: espresso-common: Add common device tree for Samsung Galaxy Tab 2 series Mithil Bavishi
@ 2026-02-20 20:55 ` Andreas Kemnade
2026-02-22 20:16 ` Claude review: " Claude Code Review Bot
1 sibling, 0 replies; 21+ messages in thread
From: Andreas Kemnade @ 2026-02-20 20:55 UTC (permalink / raw)
To: Mithil Bavishi
Cc: aaro.koskinen, airlied, conor+dt, jernej.skrabec, jonas, khilman,
krzk+dt, laurent.pinchart, maarten.lankhorst, mripard,
neil.armstrong, prabhakar.mahadev-lad.rj, jesszhan0024, rfoss,
robh, rogerq, simona, thierry.reding, tony, tzimmermann,
andrzej.hajda, devicetree, dri-devel, linux-kernel, linux-omap
On Thu, 19 Feb 2026 16:04:04 -0500
Mithil Bavishi <bavishimithil@gmail.com> wrote:
> Create common device tree for Samsung Espresso series devices
>
> Let's create a common tree for all the variants first, later we can
> device specific trees based on their screen sizes
>
Imperative mood.
> Signed-off-by: Mithil Bavishi <bavishimithil@gmail.com>
> ---
[...]
> +&omap4_pmx_wkup {
> + gpio_keys: gpio-keys-pins {
> + pinctrl-single,pins = <
> + OMAP4_IOPAD(0x046, WAKEUP_EN | PIN_INPUT | MUX_MODE3)
> + /* sim_cd.gpio_wk3 - EXT_WAKEUP */
> + OMAP4_IOPAD(0x056, WAKEUP_EN | PIN_INPUT | MUX_MODE3)
> + /* fref_clk3_req.gpio_wk30 - VOL_UP */
> + OMAP4_IOPAD(0x05C, WAKEUP_EN | PIN_INPUT | MUX_MODE3)
> + /* fref_clk4_out.gpio_wk8 - VOL_DN */
> + >;
> + };
> +
> + prox_irq: prox-irq-pins {
> + pinctrl-single,pins = <
> + OMAP4_IOPAD(0x042, WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE3)
> + /* sim_clk.gpio_wk1 - PS_VOUT */
> + >;
> + };
According to
https://www.ti.com/lit/ug/swpu231ap/swpu231ap.pdf
Table 3-327
the gpio1 cntroller is always active. So here the WAKEUP_EN is not
needed at all (so also no additional irq required).
Regards,
Andreas
^ permalink raw reply [flat|nested] 21+ messages in thread* Claude review: ARM: dts: ti: omap: espresso-common: Add common device tree for Samsung Galaxy Tab 2 series
2026-02-19 21:04 ` [PATCH v6 5/8] ARM: dts: ti: omap: espresso-common: Add common device tree for Samsung Galaxy Tab 2 series Mithil Bavishi
2026-02-20 20:55 ` Andreas Kemnade
@ 2026-02-22 20:16 ` Claude Code Review Bot
1 sibling, 0 replies; 21+ messages in thread
From: Claude Code Review Bot @ 2026-02-22 20:16 UTC (permalink / raw)
To: dri-devel-reviews
Patch Review
This is the largest patch and has several issues.
> + magnetometer@2e {
> + compatible = "yamaha,yas530";
> + reg = <0x2e>;
> + vdd-supply = <&ldo4>;
> + iovdd-supply = <&ldo5>;
> + reset-gpios = <&gpio5 29 GPIO_ACTIVE_LOW>;
> + interrupts = <&gpio6 10 IRQ_TYPE_EDGE_RISING>;
> + };
The `interrupts` property here contains a phandle (`&gpio6`) which is not valid for this property. The `interrupts` property expects only the interrupt specifier (numeric cells), with the interrupt controller specified separately via `interrupt-parent`. To include an inline phandle reference, this should be `interrupts-extended = <&gpio6 10 IRQ_TYPE_EDGE_RISING>;`. As written, the DT compiler may not flag this, but the kernel will misparse the interrupt specifier.
> + continuous_splash: framebuffer@bef00000{
> + reg = <0xbef00000 (1024 * 600 * 4)>;
> + no-map;
> + };
Two issues here. First, missing space before `{` (`framebuffer@bef00000{` should be `framebuffer@bef00000 {`).
Second, this is in the common dtsi but the framebuffer size `(1024 * 600 * 4)` is specific to the 7" variant's resolution. The 10" variant uses 1280x800, which would need `(1280 * 800 * 4)` -- nearly double the size. If the bootloader sets up a splash screen on the 10" variant, this reservation is too small and memory could be corrupted. This should either be overridden in the variant-specific dts files, or use the larger size of the two variants, or not be in the common dtsi at all. Additionally, the `continuous_splash` label is never referenced anywhere.
> + ledir_pins: pimux-ledir-pins {
Typo: `pimux-ledir-pins` should be `pinmux-ledir-pins`.
> + chosen {
> + stdout-path = &uart3;
> + #address-cells = <1>;
> + };
Having `#address-cells` in `chosen` without `#size-cells` is unusual. Is this intentionally here for something specific (e.g., a bootloader convention), or is it leftover?
> +&omap4_pmx_wkup {
> + gpio_keys: gpio-keys-pins {
> + pinctrl-single,pins = <
> + OMAP4_IOPAD(0x046, WAKEUP_EN | PIN_INPUT | MUX_MODE3)
> + /* sim_cd.gpio_wk3 - EXT_WAKEUP */
> + OMAP4_IOPAD(0x056, WAKEUP_EN | PIN_INPUT | MUX_MODE3)
> + /* fref_clk3_req.gpio_wk30 - VOL_UP */
> + OMAP4_IOPAD(0x05C, WAKEUP_EN | PIN_INPUT | MUX_MODE3)
> + /* fref_clk4_out.gpio_wk8 - VOL_DN */
> + >;
> + };
> +
> + prox_irq: prox-irq-pins {
> + pinctrl-single,pins = <
> + OMAP4_IOPAD(0x042, WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE3)
> + /* sim_clk.gpio_wk1 - PS_VOUT */
> + >;
> + };
The v6 changelog states "Remove references to WAKEUP_EN (drivers dont support interrupts-extended)" but WAKEUP_EN is still present in these pin definitions. Andreas Kemnade also pointed out in his review that WAKEUP_EN is not needed for the gpio1 controller since it's always active per the OMAP4 TRM Table 3-327.
The commit message could also use improvement: "Let's create a common tree for all the variants first, later we can device specific trees based on their screen sizes" appears to be missing the word "add" or "create" after "we can."
---
Generated by Claude Code Patch Reviewer
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH v6 6/8] dt-bindings: omap: Add Samsung Galaxy Tab 2 7.0 and 10.1
2026-02-19 21:03 [PATCH v6 0/8] Initial support for Samsung Galaxy Tab 2 series Mithil Bavishi
` (4 preceding siblings ...)
2026-02-19 21:04 ` [PATCH v6 5/8] ARM: dts: ti: omap: espresso-common: Add common device tree for Samsung Galaxy Tab 2 series Mithil Bavishi
@ 2026-02-19 21:04 ` Mithil Bavishi
2026-02-22 20:16 ` Claude review: " Claude Code Review Bot
2026-02-19 21:04 ` [PATCH v6 7/8] ARM: dts: ti: omap: samsung-espresso7: Add initial support for Galaxy Tab 2 7.0 Mithil Bavishi
` (2 subsequent siblings)
8 siblings, 1 reply; 21+ messages in thread
From: Mithil Bavishi @ 2026-02-19 21:04 UTC (permalink / raw)
To: aaro.koskinen, airlied, andreas, conor+dt, jernej.skrabec, jonas,
khilman, krzk+dt, laurent.pinchart, maarten.lankhorst, mripard,
neil.armstrong, prabhakar.mahadev-lad.rj, jesszhan0024, rfoss,
robh, rogerq, simona, thierry.reding, tony, tzimmermann,
andrzej.hajda, bavishimithil
Cc: devicetree, dri-devel, linux-kernel, linux-omap,
Krzysztof Kozlowski
Add samsung-espresso7 codename for the 7 inch variant
Add samsung-espresso10 codename for the 10 inch variant
Signed-off-by: Mithil Bavishi <bavishimithil@gmail.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
Documentation/devicetree/bindings/arm/ti/omap.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/ti/omap.yaml b/Documentation/devicetree/bindings/arm/ti/omap.yaml
index 14f1b9d8f..f694dcbf2 100644
--- a/Documentation/devicetree/bindings/arm/ti/omap.yaml
+++ b/Documentation/devicetree/bindings/arm/ti/omap.yaml
@@ -144,6 +144,8 @@ properties:
- motorola,droid-bionic # Motorola Droid Bionic XT875
- motorola,xyboard-mz609
- motorola,xyboard-mz617
+ - samsung,espresso7
+ - samsung,espresso10
- ti,omap4-panda
- ti,omap4-sdp
- const: ti,omap4430
--
2.43.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v6 7/8] ARM: dts: ti: omap: samsung-espresso7: Add initial support for Galaxy Tab 2 7.0
2026-02-19 21:03 [PATCH v6 0/8] Initial support for Samsung Galaxy Tab 2 series Mithil Bavishi
` (5 preceding siblings ...)
2026-02-19 21:04 ` [PATCH v6 6/8] dt-bindings: omap: Add Samsung Galaxy Tab 2 7.0 and 10.1 Mithil Bavishi
@ 2026-02-19 21:04 ` Mithil Bavishi
2026-02-22 20:16 ` Claude review: " Claude Code Review Bot
2026-02-19 21:04 ` [PATCH v6 8/8] ARM: dts: ti: omap: samsung-espresso10: Add initial support for Galaxy Tab 2 10.1 Mithil Bavishi
2026-02-22 20:16 ` Claude review: Initial support for Samsung Galaxy Tab 2 series Claude Code Review Bot
8 siblings, 1 reply; 21+ messages in thread
From: Mithil Bavishi @ 2026-02-19 21:04 UTC (permalink / raw)
To: aaro.koskinen, airlied, andreas, conor+dt, jernej.skrabec, jonas,
khilman, krzk+dt, laurent.pinchart, maarten.lankhorst, mripard,
neil.armstrong, prabhakar.mahadev-lad.rj, jesszhan0024, rfoss,
robh, rogerq, simona, thierry.reding, tony, tzimmermann,
andrzej.hajda, bavishimithil
Cc: devicetree, dri-devel, linux-kernel, linux-omap
Create a device tree for the 7 inch variants (P3100, P3110, P3113)
Signed-off-by: Mithil Bavishi <bavishimithil@gmail.com>
---
arch/arm/boot/dts/ti/omap/Makefile | 1 +
.../dts/ti/omap/omap4-samsung-espresso7.dts | 70 +++++++++++++++++++
2 files changed, 71 insertions(+)
create mode 100644 arch/arm/boot/dts/ti/omap/omap4-samsung-espresso7.dts
diff --git a/arch/arm/boot/dts/ti/omap/Makefile b/arch/arm/boot/dts/ti/omap/Makefile
index 14e500846..d24f13efd 100644
--- a/arch/arm/boot/dts/ti/omap/Makefile
+++ b/arch/arm/boot/dts/ti/omap/Makefile
@@ -80,6 +80,7 @@ dtb-$(CONFIG_ARCH_OMAP4) += \
omap4-sdp-es23plus.dtb \
omap4-var-dvk-om44.dtb \
omap4-var-stk-om44.dtb \
+ omap4-samsung-espresso7.dtb \
omap4-xyboard-mz609.dtb \
omap4-xyboard-mz617.dtb
dtb-$(CONFIG_SOC_AM33XX) += \
diff --git a/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso7.dts b/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso7.dts
new file mode 100644
index 000000000..cae37ff06
--- /dev/null
+++ b/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso7.dts
@@ -0,0 +1,70 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/dts-v1/;
+
+#include "omap4-samsung-espresso-common.dtsi"
+
+/ {
+ model = "Samsung Galaxy Tab 2 (7 inch)";
+ compatible = "samsung,espresso7", "ti,omap4430", "ti,omap4";
+
+ backlight: backlight {
+ compatible = "pwm-backlight";
+ pinctrl-names = "default";
+ pinctrl-0 = <&backlight_pins>;
+ pwms = <&pwm10 0 1200 0>;
+ power-supply = <®_lcd>;
+ enable-gpios = <&gpio3 31 GPIO_ACTIVE_HIGH>;
+ brightness-levels = <0 4 8 16 32 64 128 255>;
+ default-brightness-level = <2>;
+ };
+
+ panel {
+ compatible = "samsung,ltn070nl01", "panel-lvds";
+ power-supply = <®_lcd>;
+ width-mm = <154>;
+ height-mm = <90>;
+ data-mapping = "vesa-24";
+ backlight = <&backlight>;
+
+ panel-timing {
+ clock-frequency = <47255554>;
+
+ hback-porch = <210>;
+ hactive = <1024>;
+ hfront-porch = <186>;
+ hsync-len = <50>;
+
+ vback-porch = <11>;
+ vactive = <600>;
+ vfront-porch = <24>;
+ vsync-len = <10>;
+
+ hsync-active = <0>;
+ vsync-active = <0>;
+ de-active = <1>;
+ pixelclk-active = <1>;
+ syncclk-active = <0>;
+ };
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&bridge_out>;
+ };
+ };
+ };
+};
+
+&i2c3 {
+ touchscreen@48 {
+ compatible = "melfas,mms136";
+ reg = <0x48>;
+ interrupt-parent = <&gpio2>;
+ interrupts = <14 IRQ_TYPE_EDGE_FALLING>;
+ touchscreen-size-x = <1024>;
+ touchscreen-size-y = <600>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&touch_pins>;
+ avdd-supply = <®_touch_ldo_en>;
+ vdd-supply = <&ldo6>;
+ };
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v6 8/8] ARM: dts: ti: omap: samsung-espresso10: Add initial support for Galaxy Tab 2 10.1
2026-02-19 21:03 [PATCH v6 0/8] Initial support for Samsung Galaxy Tab 2 series Mithil Bavishi
` (6 preceding siblings ...)
2026-02-19 21:04 ` [PATCH v6 7/8] ARM: dts: ti: omap: samsung-espresso7: Add initial support for Galaxy Tab 2 7.0 Mithil Bavishi
@ 2026-02-19 21:04 ` Mithil Bavishi
2026-02-22 20:16 ` Claude review: " Claude Code Review Bot
2026-02-22 20:16 ` Claude review: Initial support for Samsung Galaxy Tab 2 series Claude Code Review Bot
8 siblings, 1 reply; 21+ messages in thread
From: Mithil Bavishi @ 2026-02-19 21:04 UTC (permalink / raw)
To: aaro.koskinen, airlied, andreas, conor+dt, jernej.skrabec, jonas,
khilman, krzk+dt, laurent.pinchart, maarten.lankhorst, mripard,
neil.armstrong, prabhakar.mahadev-lad.rj, jesszhan0024, rfoss,
robh, rogerq, simona, thierry.reding, tony, tzimmermann,
andrzej.hajda, bavishimithil
Cc: devicetree, dri-devel, linux-kernel, linux-omap
Create a device tree for the 10 inch variants (P5100, P5110, P5113)
Signed-off-by: Mithil Bavishi <bavishimithil@gmail.com>
---
arch/arm/boot/dts/ti/omap/Makefile | 1 +
.../dts/ti/omap/omap4-samsung-espresso10.dts | 104 ++++++++++++++++++
2 files changed, 105 insertions(+)
create mode 100644 arch/arm/boot/dts/ti/omap/omap4-samsung-espresso10.dts
diff --git a/arch/arm/boot/dts/ti/omap/Makefile b/arch/arm/boot/dts/ti/omap/Makefile
index d24f13efd..140ac39b3 100644
--- a/arch/arm/boot/dts/ti/omap/Makefile
+++ b/arch/arm/boot/dts/ti/omap/Makefile
@@ -81,6 +81,7 @@ dtb-$(CONFIG_ARCH_OMAP4) += \
omap4-var-dvk-om44.dtb \
omap4-var-stk-om44.dtb \
omap4-samsung-espresso7.dtb \
+ omap4-samsung-espresso10.dtb \
omap4-xyboard-mz609.dtb \
omap4-xyboard-mz617.dtb
dtb-$(CONFIG_SOC_AM33XX) += \
diff --git a/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso10.dts b/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso10.dts
new file mode 100644
index 000000000..5c00d67ac
--- /dev/null
+++ b/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso10.dts
@@ -0,0 +1,104 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/dts-v1/;
+
+#include "omap4-samsung-espresso-common.dtsi"
+#include <dt-bindings/power/summit,smb347-charger.h>
+/ {
+ model = "Samsung Galaxy Tab 2 (10 inch)";
+ compatible = "samsung,espresso10", "ti,omap4430", "ti,omap4";
+
+ i2c-gpio5 {
+ smb347: charger@6 {
+ compatible = "summit,smb347";
+ reg = <0x6>; // 0x0C >> 1
+ interrupt-parent = <&gpio2>;
+ interrupts = <0 IRQ_TYPE_EDGE_BOTH>;
+
+ summit,enable-usb-charging;
+ summit,enable-charge-control = <SMB3XX_CHG_ENABLE_SW>;
+ summit,chip-temperature-threshold-celsius = <120>;
+ summit,usb-current-limit-microamp = <1800000>;
+ };
+ };
+
+ backlight: backlight {
+ compatible = "pwm-backlight";
+ pinctrl-names = "default";
+ pinctrl-0 = <&backlight_pins>;
+ pwms = <&pwm10 0 1600 0>;
+ power-supply = <®_lcd>;
+ enable-gpios = <&gpio3 31 GPIO_ACTIVE_HIGH>;
+ brightness-levels = <0 4 8 16 32 64 128 255>;
+ default-brightness-level = <7>;
+ };
+
+ panel {
+ compatible = "samsung,ltn101al03", "panel-lvds";
+ power-supply = <®_lcd>;
+ width-mm = <223>;
+ height-mm = <125>;
+ data-mapping = "vesa-24";
+ backlight = <&backlight>;
+
+ panel-timing {
+ clock-frequency = <69818000>;
+
+ hback-porch = <64>;
+ hactive = <1280>;
+ hfront-porch = <16>;
+ hsync-len = <48>;
+
+ vback-porch = <11>;
+ vactive = <800>;
+ vfront-porch = <16>;
+ vsync-len = <3>;
+
+ hsync-active = <0>;
+ vsync-active = <0>;
+ de-active = <1>;
+ pixelclk-active = <1>;
+ };
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&bridge_out>;
+ };
+ };
+ };
+};
+
+&i2c3 {
+ touchscreen@20 {
+ compatible = "syna,rmi4-i2c";
+ reg = <0x20>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ interrupt-parent = <&gpio2>;
+ interrupts = <14 IRQ_TYPE_EDGE_FALLING>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&touch_pins>;
+
+ //avdd-supply = <®_touch_ldo_en>;
+ vdd-supply = <&ldo6>;
+
+ syna,reset-delay-ms = <200>;
+ syna,startup-delay-ms = <200>;
+
+ touchscreen-size-x = <1280>;
+ touchscreen-size-y = <800>;
+
+ rmi4-f01@1 {
+ reg = <0x01>;
+ syna,nosleep-mode = <1>;
+ };
+
+ rmi4-f11@11 {
+ reg = <0x11>;
+ touchscreen-size-x = <1280>;
+ touchscreen-size-y = <800>;
+ syna,sensor-type = <1>;
+ };
+ };
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* Claude review: ARM: dts: ti: omap: samsung-espresso10: Add initial support for Galaxy Tab 2 10.1
2026-02-19 21:04 ` [PATCH v6 8/8] ARM: dts: ti: omap: samsung-espresso10: Add initial support for Galaxy Tab 2 10.1 Mithil Bavishi
@ 2026-02-22 20:16 ` Claude Code Review Bot
0 siblings, 0 replies; 21+ messages in thread
From: Claude Code Review Bot @ 2026-02-22 20:16 UTC (permalink / raw)
To: dri-devel-reviews
Patch Review
> + //avdd-supply = <®_touch_ldo_en>;
> + vdd-supply = <&ldo6>;
Commented-out code should not be submitted. If this supply connection is unknown or needs investigation, a `/* TODO: ... */` comment explaining why it's missing would be more appropriate than leaving the property commented out. As-is, it looks like debugging leftover.
> +#include "omap4-samsung-espresso-common.dtsi"
> +#include <dt-bindings/power/summit,smb347-charger.h>
> +/ {
Missing a blank line between the `#include` and the `/ {` root node for readability (the espresso7 variant has this blank line).
The SMB347 charger node at address 0x6 (from 7-bit I2C address 0x0C >> 1) looks correct for the summit,smb347 binding.
---
Generated by Claude Code Patch Reviewer
^ permalink raw reply [flat|nested] 21+ messages in thread
* Claude review: Initial support for Samsung Galaxy Tab 2 series
2026-02-19 21:03 [PATCH v6 0/8] Initial support for Samsung Galaxy Tab 2 series Mithil Bavishi
` (7 preceding siblings ...)
2026-02-19 21:04 ` [PATCH v6 8/8] ARM: dts: ti: omap: samsung-espresso10: Add initial support for Galaxy Tab 2 10.1 Mithil Bavishi
@ 2026-02-22 20:16 ` Claude Code Review Bot
8 siblings, 0 replies; 21+ messages in thread
From: Claude Code Review Bot @ 2026-02-22 20:16 UTC (permalink / raw)
To: dri-devel-reviews
Overall Series Review
Subject: Initial support for Samsung Galaxy Tab 2 series
Author: Mithil Bavishi <bavishimithil@gmail.com>
Patches: 10
Reviewed: 2026-02-23T06:16:27.647295
---
This is a v6 device tree series adding initial support for the Samsung Galaxy Tab 2 (7" and 10.1") series, codenamed "espresso7" and "espresso10." The series is well-structured: it first introduces a TWL6032 PMIC dtsi, then adds the necessary dt-bindings (vendor prefix, LVDS codec compatible, panel compatibles, board compatibles), defines a common dtsi with shared hardware, and finally adds variant-specific dts files for each screen size.
The overall architecture of splitting common and variant-specific device tree content is appropriate. Most of the dt-binding patches have already received Acked-by tags from Krzysztof Kozlowski. The TWL6032 dtsi mirrors the existing TWL6030 dtsi structure, and the board files follow established OMAP4 device tree patterns.
There are a few issues worth addressing. The most significant is an incorrect use of `interrupts` (instead of `interrupts-extended`) for the magnetometer node, which will produce incorrect DT parsing. The reserved memory framebuffer sizing in the common dtsi is hardcoded for the 7" resolution and will be too small for the 10" variant. There is also a typo in a pinctrl node name, commented-out code in the espresso10 dts, and the WAKEUP_EN flags remain despite the v6 changelog claiming they were removed (though Andreas Kemnade's review already noted that WAKEUP_EN is unnecessary for the always-on gpio1 controller).
---
Generated by Claude Code Patch Reviewer
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH v7 5/8] ARM: dts: ti: omap: espresso-common: Add common device tree for Samsung Galaxy Tab 2 series
2026-02-23 5:51 [PATCH v7 0/8] " Mithil Bavishi
@ 2026-02-23 5:51 ` Mithil Bavishi
2026-02-24 0:31 ` Claude review: " Claude Code Review Bot
0 siblings, 1 reply; 21+ messages in thread
From: Mithil Bavishi @ 2026-02-23 5:51 UTC (permalink / raw)
To: aaro.koskinen, airlied, andreas, conor+dt, jernej.skrabec, jonas,
khilman, krzk+dt, laurent.pinchart, maarten.lankhorst, mripard,
neil.armstrong, prabhakar.mahadev-lad.rj, jesszhan0024, rfoss,
robh, rogerq, simona, thierry.reding, tony, tzimmermann,
andrzej.hajda, bavishimithil
Cc: devicetree, dri-devel, linux-kernel, linux-omap
Create common device tree for Samsung Espresso series devices
Create a shared device tree for all variants first.
Device-specific trees will be added later based on screen size.
Signed-off-by: Mithil Bavishi <bavishimithil@gmail.com>
---
.../omap/omap4-samsung-espresso-common.dtsi | 744 ++++++++++++++++++
1 file changed, 744 insertions(+)
create mode 100644 arch/arm/boot/dts/ti/omap/omap4-samsung-espresso-common.dtsi
diff --git a/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso-common.dtsi b/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso-common.dtsi
new file mode 100644
index 000000000..63dd192f2
--- /dev/null
+++ b/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso-common.dtsi
@@ -0,0 +1,744 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/dts-v1/;
+#include "dt-bindings/gpio/gpio.h"
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/input/input.h>
+#include "omap443x.dtsi"
+
+/ {
+ memory@80000000 {
+ device_type = "memory";
+ reg = <0x80000000 0x40000000>; /* 1 GB */
+ };
+
+ reserved-memory {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ continuous_splash: framebuffer@bef00000{
+ reg = <0xbef00000 (1024 * 600 * 4)>;
+ no-map;
+ };
+ };
+
+ chosen {
+ stdout-path = &uart3;
+ #address-cells = <1>;
+ };
+
+ i2c-gpio5 {
+ compatible = "i2c-gpio";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c5_pins>;
+ sda-gpios = <&gpio4 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ scl-gpios = <&gpio4 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ i2c-gpio,delay-us = <10>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* TODO: SMB136 Charger for 7" variant at 0x4d */
+ };
+
+ i2c-gpio6 {
+ compatible = "i2c-gpio";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c6_pins>;
+ sda-gpios = <&gpio3 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ scl-gpios = <&gpio3 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ i2c-gpio,delay-us = <10>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* TODO: STMPE811 ADC at 0x41 */
+ };
+
+ i2c-gpio7 {
+ compatible = "i2c-gpio";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c7_pins>;
+ sda-gpios = <&gpio2 30 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ scl-gpios = <&gpio2 29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ i2c-gpio,delay-us = <3>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ fuel-gauge@36 {
+ compatible = "maxim,max17042";
+ reg = <0x36>;
+ pinctrl-0 = <&fuel_alert_irq>;
+ pinctrl-names = "default";
+ interrupt-parent = <&gpio2>;
+ interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
+ maxim,rsns-microohm = <10000>;
+ maxim,over-heat-temp = <500>;
+ maxim,dead-volt = <2500>;
+ maxim,over-volt = <4300>;
+ };
+ };
+
+ reg_espresso_wlan: regulator-espresso-wlan {
+ pinctrl-names = "default";
+ pinctrl-0 = <&wlanen_gpio>;
+ compatible = "regulator-fixed";
+ regulator-name = "espresso_wlan";
+ regulator-max-microvolt = <2000000>;
+ regulator-min-microvolt = <2000000>;
+ gpio = <&gpio4 8 GPIO_ACTIVE_HIGH>; /* GPIO_104 */
+ startup-delay-us = <70000>;
+ regulator-always-on;
+ enable-active-high;
+ };
+
+ wlan_pwrseq: wlan-pwrseq {
+ compatible = "mmc-pwrseq-simple";
+ clocks = <&twl 0>;
+ clock-names = "ext_clock";
+ };
+
+ reg_espresso_internal: regulator-espresso-internal {
+ compatible = "regulator-fixed";
+ regulator-name = "eMMC_LDO";
+ regulator-max-microvolt = <1800000>;
+ regulator-min-microvolt = <1800000>;
+ gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>; /* GPIO_63 */
+ startup-delay-us = <100000>;
+ regulator-boot-on;
+ regulator-always-on;
+ enable-active-high;
+ };
+
+ reg_espresso_external: regulator-espresso-external {
+ compatible = "regulator-fixed";
+ regulator-name = "vmmc1";
+ regulator-max-microvolt = <2800000>;
+ regulator-min-microvolt = <2800000>;
+ gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>; /* GPIO_34 */
+ enable-active-high;
+ };
+
+ reg_touch_ldo_en: regulator-touch-ldo-en {
+ compatible = "regulator-fixed";
+ regulator-name = "touch_ldo_en";
+ regulator-max-microvolt = <2800000>;
+ regulator-min-microvolt = <2800000>;
+ gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>; /* GPIO_54 */
+ regulator-always-on;
+ enable-active-high;
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ pinctrl-names = "default";
+ pinctrl-0 = <&gpio_keys>;
+
+ key-power {
+ label = "power";
+
+ gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>; /* GPIO_wk3 */
+ linux,code = <KEY_POWER>;
+ wakeup-source;
+ };
+
+ button-volup {
+ linux,code = <KEY_VOLUMEUP>;
+ label = "volume_up"; /* GPIO_wk30 */
+ gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
+ };
+
+ button-voldown {
+ linux,code = <KEY_VOLUMEDOWN>;
+ label = "volume_down"; /* GPIO_wk8 */
+ gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ reg_lcd: regulator-lcd {
+ compatible = "regulator-fixed";
+ regulator-name = "lcd_en";
+ gpios = <&gpio5 7 GPIO_ACTIVE_HIGH>; /* GPIO_135 */
+ regulator-max-microvolt = <3300000>;
+ regulator-min-microvolt = <3300000>;
+ enable-active-high;
+ regulator-boot-on;
+ };
+
+ pwm10: pwm-10 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pwm10_default>;
+ compatible = "ti,omap-dmtimer-pwm";
+ #pwm-cells = <3>;
+ ti,timers = <&timer10>;
+ ti,clock-source = <0x00>;
+ };
+
+ lvds-encoder {
+ compatible = "doestek,dtc34lm85am", "lvds-encoder";
+ powerdown-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>; /* GPIO_136 */
+ power-supply = <®_lcd>;
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ bridge_in: endpoint {
+ remote-endpoint = <&dpi_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ bridge_out: endpoint {
+ remote-endpoint = <&panel_in>;
+ };
+ };
+ };
+ };
+
+ vibrator {
+ compatible = "gpio-vibrator";
+ enable-gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>; /* GPIO_38 */
+ pinctrl-names = "default";
+ pinctrl-0 = <&vibrator_default>;
+ };
+
+ gp2a_shunt: current-sense-shunt {
+ compatible = "current-sense-shunt";
+ io-channels = <&gpadc 4>;
+ shunt-resistor-micro-ohms = <24000000>; /* 24 ohms */
+ #io-channel-cells = <0>;
+ };
+
+ led-ir {
+ compatible = "gpio-ir-tx";
+ gpios = <&gpio2 27 GPIO_ACTIVE_HIGH>; /* GPIO_59 */
+ pinctrl-names = "default";
+ pinctrl-0 = <&ledir_pins>;
+ };
+};
+
+&omap4_pmx_wkup {
+ gpio_keys: gpio-keys-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x046, WAKEUP_EN | PIN_INPUT | MUX_MODE3)
+ /* sim_cd.gpio_wk3 - EXT_WAKEUP */
+ OMAP4_IOPAD(0x056, WAKEUP_EN | PIN_INPUT | MUX_MODE3)
+ /* fref_clk3_req.gpio_wk30 - VOL_UP */
+ OMAP4_IOPAD(0x05C, WAKEUP_EN | PIN_INPUT | MUX_MODE3)
+ /* fref_clk4_out.gpio_wk8 - VOL_DN */
+ >;
+ };
+};
+
+&omap4_pmx_core {
+ backlight_pins: pinmux-backlight-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0X0D8, PIN_OUTPUT | PIN_OFF_OUTPUT_LOW | MUX_MODE3)
+ /* usbb1_ulpitll_dat7.gpio_95 - LED_BACKLIGHT_RESET */
+ >;
+ };
+
+ bluetooth_pins: pinmux-bluetooth-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x094, PIN_OUTPUT | MUX_MODE3)
+ /* gpmc_ncs6.gpio_103 - BT_EN */
+ OMAP4_IOPAD(0x0be, PIN_OUTPUT | MUX_MODE3)
+ /* cam_strobe.gpio_82 - BT_nRST */
+ OMAP4_IOPAD(0x0c0, PIN_INPUT | MUX_MODE3)
+ /* cam_globalreset.gpio_83 - BT_HOST_WAKE */
+ OMAP4_IOPAD(0x0d4, PIN_OUTPUT | MUX_MODE3)
+ /* usbb1_ulpitll_dat5.gpio_93 - BT_WAKE */
+ >;
+ };
+
+ dss_dpi_pins: pinmux-dss-dpi-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x162, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data23 */
+ OMAP4_IOPAD(0x164, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data22 */
+ OMAP4_IOPAD(0x166, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data21 */
+ OMAP4_IOPAD(0x168, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data20 */
+ OMAP4_IOPAD(0x16a, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data19 */
+ OMAP4_IOPAD(0x16c, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data18 */
+ OMAP4_IOPAD(0x16e, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data15 */
+ OMAP4_IOPAD(0x170, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data14 */
+ OMAP4_IOPAD(0x172, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data13 */
+ OMAP4_IOPAD(0x174, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data12 */
+ OMAP4_IOPAD(0x176, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data11 */
+ OMAP4_IOPAD(0x1b4, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data10 */
+ OMAP4_IOPAD(0x1b6, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data9 */
+ OMAP4_IOPAD(0x1b8, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data16 */
+ OMAP4_IOPAD(0x1ba, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data17 */
+ OMAP4_IOPAD(0x1bc, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_hsync */
+ OMAP4_IOPAD(0x1be, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_pclk */
+ OMAP4_IOPAD(0x1c0, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_vsync */
+ OMAP4_IOPAD(0x1c2, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_de */
+ OMAP4_IOPAD(0x1c4, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data8 */
+ OMAP4_IOPAD(0x1c6, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data7 */
+ OMAP4_IOPAD(0x1c8, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data6 */
+ OMAP4_IOPAD(0x1ca, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data5 */
+ OMAP4_IOPAD(0x1cc, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data4 */
+ OMAP4_IOPAD(0x1ce, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data3 */
+
+ OMAP4_IOPAD(0x1d0, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data2 */
+ OMAP4_IOPAD(0x1d2, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data1 */
+ OMAP4_IOPAD(0x1d4, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data0 */
+ >;
+ };
+
+ fuel_alert_irq: pinmux-fuel-alert-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x068, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* gpmc_a20.gpio_44 */
+ >;
+ };
+
+ i2c1_pins: pinmux-i2c1-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x122, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c1_scl */
+ OMAP4_IOPAD(0x124, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c1_sda */
+ >;
+ };
+
+ i2c2_pins: pinmux-i2c2-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x126, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c2_scl */
+ OMAP4_IOPAD(0x128, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c2_sda */
+ >;
+ };
+
+ i2c3_pins: pinmux-i2c3-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x12a, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c3_scl */
+ OMAP4_IOPAD(0x12c, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c3_sda */
+ >;
+ };
+
+ i2c4_pins: pinmux-i2c4-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x12e, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c4_scl */
+ OMAP4_IOPAD(0x130, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c4_sda */
+ >;
+ };
+
+ i2c5_pins: pinmux-i2c5-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x0de, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* usbc1_icusb_dp.gpio_98 */
+ OMAP4_IOPAD(0x0e0, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* usbc1_icusb_dm.gpio_99 */
+ >;
+ };
+
+ i2c6_pins: pinmux-i2c6-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x09c, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* hdmi_ddc_scl.gpio_65 */
+ OMAP4_IOPAD(0x09e, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* hdmi_ddc_sda.gpio_66 */
+ >;
+ };
+
+ i2c7_pins: pinmux-i2c7-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x08a, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* gpmc_wait0.gpio_61 */
+ OMAP4_IOPAD(0x08c, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* gpmc_wait1.gpio_62 */
+ >;
+ };
+
+ ledir_pins: pimux-ledir-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x086, PIN_INPUT_PULLDOWN | MUX_MODE7)
+ /* gpmc_nbe0_cle.gpio_59 */
+ OMAP4_IOPAD(0x156, PIN_INPUT_PULLDOWN | MUX_MODE7)
+ /* mcspi4_simo.gpio_152 */
+ >;
+ };
+
+ lvds_pins: pinmux-lvds-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0X136, PIN_OUTPUT | MUX_MODE3)
+ /* mcspi1_simo.gpio_136 - LVDS_nSHDN */
+ >;
+ };
+
+ mmc1_pins: pinmux-mmc1-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x0e2, PIN_INPUT_PULLDOWN | MUX_MODE0)
+ /* sdmmc1_clk */
+ OMAP4_IOPAD(0x0e4, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmcc1_cmd */
+ OMAP4_IOPAD(0x0e6, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmcc1_dat0 */
+ OMAP4_IOPAD(0x0e8, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc1_dat1 */
+ OMAP4_IOPAD(0x0ea, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc1_dat2 */
+ OMAP4_IOPAD(0x0ec, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc1_dat3 */
+ >;
+ };
+
+ mmc2_pins: pinmux-mmc2-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x040, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat0 */
+ OMAP4_IOPAD(0x042, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat1 */
+ OMAP4_IOPAD(0x044, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat2 */
+ OMAP4_IOPAD(0x046, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat3 */
+ OMAP4_IOPAD(0x048, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat4 */
+ OMAP4_IOPAD(0x04a, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat5 */
+ OMAP4_IOPAD(0x04c, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat6 */
+ OMAP4_IOPAD(0x04e, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat7 */
+ OMAP4_IOPAD(0x082, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_clk */
+ OMAP4_IOPAD(0x084, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_cmd */
+ >;
+ };
+
+ mmc5_pins: pinmux-mmc5-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x148, PIN_INPUT_PULLDOWN | MUX_MODE0)
+ /* sdmmc5_clk.sdmmc5_clk */
+ OMAP4_IOPAD(0x14a, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc5_cmd.sdmmc5_cmd */
+ OMAP4_IOPAD(0x14c, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc5_dat0.sdmmc5_dat0 */
+ OMAP4_IOPAD(0x14e, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc5_dat1.sdmmc5_dat1 */
+ OMAP4_IOPAD(0x150, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc5_dat2.sdmmc5_dat2 */
+ OMAP4_IOPAD(0x152, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc5_dat3.sdmmc5_dat3 */
+ >;
+ };
+
+ pwm10_default: pinmux-pwm10-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0X0D6, PIN_OUTPUT | PIN_OFF_OUTPUT_LOW | MUX_MODE1)
+ /* usbb1_ulpitll_dat6.dmtimer10_pwm_evt - LED_BACKLIGHT_PWM */
+ >;
+ };
+
+ touch_pins: pinmux-touch-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x06c, PIN_INPUT | MUX_MODE3)
+ /* gpmc_a22.gpio_46 - TSP_INT */
+ >;
+ };
+
+ uart2_pins: pinmux-uart2-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x118, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* uart2_cts.uart2_cts */
+ OMAP4_IOPAD(0x11a, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* uart2_rts.uart2_rts */
+ OMAP4_IOPAD(0x11c, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* uart2_rx.uart2_rx */
+ OMAP4_IOPAD(0x11e, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* uart2_tx.uart2_tx */
+ >;
+ };
+
+ uart3_pins: pinmux-uart3-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x144, PIN_INPUT | MUX_MODE0)
+ /* uart3_rx_irrx */
+ OMAP4_IOPAD(0x146, PIN_OUTPUT | MUX_MODE0)
+ /* uart3_tx_irtx */
+ >;
+ };
+
+ vibrator_default: pinmux-vibrator-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x05c, PIN_INPUT_PULLDOWN | MUX_MODE3)
+ /* gpmc_ad14.gpio_38 - MOTOR_EN */
+ >;
+ };
+
+ wlanen_gpio: pinmux-wlanen-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x096, PIN_OUTPUT | MUX_MODE3)
+ /* gpmc_ncs7.gpio_104 */
+ >;
+ };
+
+ wlan_host_wake: pinmux-wlan-host-wake-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x0bc, PIN_INPUT | MUX_MODE3)
+ /* cam_shutter.gpio_81 - WLAN_HOST_WAKE */
+ >;
+ };
+};
+
+&uart3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart3_pins>;
+
+ interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH
+ &omap4_pmx_core OMAP4_UART3_RX>;
+};
+
+&i2c1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c1_pins>;
+
+ clock-frequency = <400000>;
+
+ twl: pmic@48 {
+ reg = <0x48>;
+ #clock-cells = <1>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <
+ &twl6030_pins
+ &twl6030_wkup_pins
+ >;
+
+ /* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */
+ interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
+ interrupt-parent = <&gic>;
+ system-power-controller;
+ };
+};
+
+#include "twl6032.dtsi"
+#include "twl6030_omap4.dtsi"
+
+&ldo1 {
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-always-on;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+};
+
+&ldo3 {
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+};
+
+&ldo4 {
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-always-on;
+};
+
+&ldo5 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+};
+
+&ldo6 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+};
+
+&smps4 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+};
+
+&ldousb {
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+};
+
+&i2c2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c2_pins>;
+};
+
+&i2c3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c3_pins>;
+};
+
+&i2c4 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c4_pins>;
+
+ accelerometer@18 {
+ compatible = "bosch,bma254";
+ reg = <0x18>;
+ vdd-supply = <&ldo4>;
+ vddio-supply = <&ldo5>;
+ interrupt-parent = <&gpio4>;
+ interrupts = <25 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>,
+ <26 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>;
+ };
+
+ magnetometer@2e {
+ compatible = "yamaha,yas530";
+ reg = <0x2e>;
+ vdd-supply = <&ldo4>;
+ iovdd-supply = <&ldo5>;
+ reset-gpios = <&gpio5 29 GPIO_ACTIVE_LOW>;
+ interrupts = <&gpio6 10 IRQ_TYPE_EDGE_RISING>;
+ };
+
+ light-sensor@44 {
+ compatible = "sharp,gp2ap002a00f";
+ reg = <0x44>;
+ interrupt-parent = <&gpio1>;
+ interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+ vdd-supply = <&ldo4>;
+ vio-supply = <&ldo4>;
+ io-channels = <&gp2a_shunt>;
+ io-channel-names = "alsout";
+ sharp,proximity-far-hysteresis = /bits/ 8 <0x40>;
+ sharp,proximity-close-hysteresis = /bits/ 8 <0x20>;
+ };
+};
+
+&dss {
+ status = "okay";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&dss_dpi_pins>;
+
+ port {
+ dpi_out: endpoint {
+ remote-endpoint = <&bridge_in>;
+ data-lines = <24>;
+ };
+ };
+};
+
+&twl_usb_comparator {
+ usb-supply = <&ldousb>;
+};
+
+&usb_otg_hs {
+ interface-type = <1>;
+ mode = <3>;
+ power = <50>;
+};
+
+&mmc1 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc1_pins>;
+
+ vmmc-supply = <®_espresso_external>;
+ bus-width = <4>;
+};
+
+&mmc2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc2_pins>;
+
+ vmmc-supply = <®_espresso_internal>;
+ ti,non-removable;
+ bus-width = <8>;
+};
+
+&mmc3 {
+ status = "disabled";
+};
+
+&mmc4 {
+ status = "disabled";
+};
+
+&mmc5 {
+ status = "okay";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ non-removable;
+ bus-width = <4>;
+ vmmc-supply = <®_espresso_wlan>;
+ mmc-pwrseq = <&wlan_pwrseq>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc5_pins>;
+
+ brcmf: wifi@1 {
+ compatible = "brcm,bcm4330-fmac", "brcm,bcm4329-fmac";
+ reg = <1>;
+
+ interrupt-parent = <&gpio3>;
+ interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "host-wake";
+ pinctrl-names = "default";
+ pinctrl-0 = <&wlan_host_wake>;
+ };
+};
+
+&uart2 {
+ interrupts-extended = <&wakeupgen GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH
+ &omap4_pmx_core OMAP4_UART2_RX>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart2_pins>;
+ bluetooth {
+ compatible = "brcm,bcm4330-bt";
+ pinctrl-names = "default";
+ pinctrl-0 = <&bluetooth_pins>;
+ shutdown-gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&gpio3 18 GPIO_ACTIVE_LOW>;
+ device-wakeup-gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
+ interrupt-parent = <&gpio3>;
+ interrupts = <19 IRQ_TYPE_EDGE_FALLING>;
+ interrupt-names = "host-wakeup";
+ };
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* Claude review: ARM: dts: ti: omap: espresso-common: Add common device tree for Samsung Galaxy Tab 2 series
2026-02-23 5:51 ` [PATCH v7 5/8] ARM: dts: ti: omap: espresso-common: Add common device tree " Mithil Bavishi
@ 2026-02-24 0:31 ` Claude Code Review Bot
0 siblings, 0 replies; 21+ messages in thread
From: Claude Code Review Bot @ 2026-02-24 0:31 UTC (permalink / raw)
To: dri-devel-reviews
Patch Review
This is the largest patch, adding the shared common dtsi. Several items to note:
> +#include "dt-bindings/gpio/gpio.h"
> +#include <dt-bindings/interrupt-controller/irq.h>
> +#include <dt-bindings/input/input.h>
The first include uses quotes while the other two use angle brackets. Every other file in the OMAP DT directory uses angle brackets for dt-bindings includes. This should be `#include <dt-bindings/gpio/gpio.h>` for consistency.
> + continuous_splash: framebuffer@bef00000{
> + reg = <0xbef00000 (1024 * 600 * 4)>;
> + no-map;
> + };
Two issues here. First, there's a missing space before `{`. Second, and more substantively, this reserves `1024 * 600 * 4` bytes (about 2.4 MB), which is sized for the 7" panel. The espresso10 variant uses a 1280x800 panel, which would need `1280 * 800 * 4` bytes (about 3.9 MB). If the bootloader renders a splash screen at the native 10" resolution, this reservation is too small and the framebuffer would overlap with non-reserved memory. Should this size be overridden in the espresso10 DTS, or should the common dtsi use the larger of the two sizes?
> + chosen {
> + stdout-path = &uart3;
> + #address-cells = <1>;
> + };
The `#address-cells` property in `chosen` without a corresponding `#size-cells` seems like a leftover. The v4 changelog mentions "Removed address/size-cells in chosen" but `#address-cells` is still present. Does the `chosen` node actually need this?
> + magnetometer@2e {
> + compatible = "yamaha,yas530";
> + reg = <0x2e>;
> + vdd-supply = <&ldo4>;
> + iovdd-supply = <&ldo5>;
> + reset-gpios = <&gpio5 29 GPIO_ACTIVE_LOW>;
> + interrupts = <&gpio6 10 IRQ_TYPE_EDGE_RISING>;
> + };
The `interrupts` property does not accept phandle references -- it only takes interrupt specifier cells relative to the node's interrupt parent. This should be either `interrupts-extended = <&gpio6 10 IRQ_TYPE_EDGE_RISING>;` or split into `interrupt-parent = <&gpio6>;` plus `interrupts = <10 IRQ_TYPE_EDGE_RISING>;`. As written, dtc should flag this.
> + ledir_pins: pimux-ledir-pins {
Typo: `pimux` should be `pinmux`.
> + lvds_pins: pinmux-lvds-pins {
> + pinctrl-single,pins = <
> + OMAP4_IOPAD(0X136, PIN_OUTPUT | MUX_MODE3)
A few OMAP4_IOPAD calls use uppercase `0X` for the hex prefix (also `0X0D8`, `0X0D6` in other pin groups). The rest of the file and the tree generally use lowercase `0x`. Minor inconsistency.
> + pinctrl-names = "default";
> + pinctrl-0 = <
> + &twl6030_pins
> + &twl6030_wkup_pins
> + >;
These pinctrl properties on the `twl` node are redundant since `twl6030_omap4.dtsi` (included a few lines later) sets the same properties on `&twl`. You could drop these from the inline node definition and rely on the include.
---
Generated by Claude Code Patch Reviewer
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH v9 5/8] ARM: dts: ti: omap: espresso-common: Add common device tree for Samsung Galaxy Tab 2 series
2026-03-03 20:30 [PATCH v9 0/8] Initial support " Mithil Bavishi
@ 2026-03-03 20:30 ` Mithil Bavishi
2026-03-03 20:45 ` Claude review: " Claude Code Review Bot
0 siblings, 1 reply; 21+ messages in thread
From: Mithil Bavishi @ 2026-03-03 20:30 UTC (permalink / raw)
To: aaro.koskinen, airlied, andreas, conor+dt, jernej.skrabec, jonas,
khilman, krzk+dt, laurent.pinchart, maarten.lankhorst, mripard,
neil.armstrong, prabhakar.mahadev-lad.rj, jesszhan0024, rfoss,
robh, rogerq, simona, thierry.reding, tony, tzimmermann,
andrzej.hajda, bavishimithil
Cc: devicetree, dri-devel, linux-kernel, linux-omap
Create common device tree for Samsung Espresso series devices
Create a shared device tree for all variants first.
Device-specific trees will be added later based on screen size.
Signed-off-by: Mithil Bavishi <bavishimithil@gmail.com>
---
.../omap/omap4-samsung-espresso-common.dtsi | 744 ++++++++++++++++++
1 file changed, 744 insertions(+)
create mode 100644 arch/arm/boot/dts/ti/omap/omap4-samsung-espresso-common.dtsi
diff --git a/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso-common.dtsi b/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso-common.dtsi
new file mode 100644
index 000000000..06651072f
--- /dev/null
+++ b/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso-common.dtsi
@@ -0,0 +1,744 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/dts-v1/;
+#include "dt-bindings/gpio/gpio.h"
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/input/input.h>
+#include "omap443x.dtsi"
+
+/ {
+ memory@80000000 {
+ device_type = "memory";
+ reg = <0x80000000 0x40000000>; /* 1 GB */
+ };
+
+ reserved-memory {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ continuous_splash: framebuffer@bef00000{
+ reg = <0xbef00000 (1024 * 600 * 4)>;
+ no-map;
+ };
+ };
+
+ chosen {
+ stdout-path = &uart3;
+ #address-cells = <1>;
+ };
+
+ i2c-gpio5 {
+ compatible = "i2c-gpio";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c5_pins>;
+ sda-gpios = <&gpio4 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ scl-gpios = <&gpio4 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ i2c-gpio,delay-us = <10>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* TODO: SMB136 Charger for 7" variant at 0x4d */
+ };
+
+ i2c-gpio6 {
+ compatible = "i2c-gpio";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c6_pins>;
+ sda-gpios = <&gpio3 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ scl-gpios = <&gpio3 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ i2c-gpio,delay-us = <10>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* TODO: STMPE811 ADC at 0x41 */
+ };
+
+ i2c-gpio7 {
+ compatible = "i2c-gpio";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c7_pins>;
+ sda-gpios = <&gpio2 30 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ scl-gpios = <&gpio2 29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ i2c-gpio,delay-us = <3>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ fuel-gauge@36 {
+ compatible = "maxim,max17042";
+ reg = <0x36>;
+ pinctrl-0 = <&fuel_alert_irq>;
+ pinctrl-names = "default";
+ interrupt-parent = <&gpio2>;
+ interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
+ maxim,rsns-microohm = <10000>;
+ maxim,over-heat-temp = <500>;
+ maxim,dead-volt = <2500>;
+ maxim,over-volt = <4300>;
+ };
+ };
+
+ reg_espresso_wlan: regulator-espresso-wlan {
+ pinctrl-names = "default";
+ pinctrl-0 = <&wlanen_gpio>;
+ compatible = "regulator-fixed";
+ regulator-name = "espresso_wlan";
+ regulator-max-microvolt = <2000000>;
+ regulator-min-microvolt = <2000000>;
+ gpio = <&gpio4 8 GPIO_ACTIVE_HIGH>; /* GPIO_104 */
+ startup-delay-us = <70000>;
+ regulator-always-on;
+ enable-active-high;
+ };
+
+ wlan_pwrseq: wlan-pwrseq {
+ compatible = "mmc-pwrseq-simple";
+ clocks = <&twl 0>;
+ clock-names = "ext_clock";
+ };
+
+ reg_espresso_internal: regulator-espresso-internal {
+ compatible = "regulator-fixed";
+ regulator-name = "eMMC_LDO";
+ regulator-max-microvolt = <1800000>;
+ regulator-min-microvolt = <1800000>;
+ gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>; /* GPIO_63 */
+ startup-delay-us = <100000>;
+ regulator-boot-on;
+ regulator-always-on;
+ enable-active-high;
+ };
+
+ reg_espresso_external: regulator-espresso-external {
+ compatible = "regulator-fixed";
+ regulator-name = "vmmc1";
+ regulator-max-microvolt = <2800000>;
+ regulator-min-microvolt = <2800000>;
+ gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>; /* GPIO_34 */
+ enable-active-high;
+ };
+
+ reg_touch_ldo_en: regulator-touch-ldo-en {
+ compatible = "regulator-fixed";
+ regulator-name = "touch_ldo_en";
+ regulator-max-microvolt = <2800000>;
+ regulator-min-microvolt = <2800000>;
+ gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>; /* GPIO_54 */
+ regulator-always-on;
+ enable-active-high;
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ pinctrl-names = "default";
+ pinctrl-0 = <&gpio_keys>;
+
+ key-power {
+ label = "power";
+
+ gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>; /* GPIO_wk3 */
+ linux,code = <KEY_POWER>;
+ wakeup-source;
+ };
+
+ button-volup {
+ linux,code = <KEY_VOLUMEUP>;
+ label = "volume_up"; /* GPIO_wk30 */
+ gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
+ };
+
+ button-voldown {
+ linux,code = <KEY_VOLUMEDOWN>;
+ label = "volume_down"; /* GPIO_wk8 */
+ gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ reg_lcd: regulator-lcd {
+ compatible = "regulator-fixed";
+ regulator-name = "lcd_en";
+ gpios = <&gpio5 7 GPIO_ACTIVE_HIGH>; /* GPIO_135 */
+ regulator-max-microvolt = <3300000>;
+ regulator-min-microvolt = <3300000>;
+ enable-active-high;
+ regulator-boot-on;
+ };
+
+ pwm10: pwm-10 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pwm10_default>;
+ compatible = "ti,omap-dmtimer-pwm";
+ #pwm-cells = <3>;
+ ti,timers = <&timer10>;
+ ti,clock-source = <0x00>;
+ };
+
+ lvds-encoder {
+ compatible = "doestek,dtc34lm85am", "lvds-encoder";
+ powerdown-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>; /* GPIO_136 */
+ power-supply = <®_lcd>;
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ bridge_in: endpoint {
+ remote-endpoint = <&dpi_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ bridge_out: endpoint {
+ remote-endpoint = <&panel_in>;
+ };
+ };
+ };
+ };
+
+ vibrator {
+ compatible = "gpio-vibrator";
+ enable-gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>; /* GPIO_38 */
+ pinctrl-names = "default";
+ pinctrl-0 = <&vibrator_default>;
+ };
+
+ gp2a_shunt: current-sense-shunt {
+ compatible = "current-sense-shunt";
+ io-channels = <&gpadc 4>;
+ shunt-resistor-micro-ohms = <24000000>; /* 24 ohms */
+ #io-channel-cells = <0>;
+ };
+
+ led-ir {
+ compatible = "gpio-ir-tx";
+ gpios = <&gpio2 27 GPIO_ACTIVE_HIGH>; /* GPIO_59 */
+ pinctrl-names = "default";
+ pinctrl-0 = <&ledir_pins>;
+ };
+};
+
+&omap4_pmx_wkup {
+ gpio_keys: gpio-keys-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x046, PIN_INPUT | MUX_MODE3)
+ /* sim_cd.gpio_wk3 - EXT_WAKEUP */
+ OMAP4_IOPAD(0x056, PIN_INPUT | MUX_MODE3)
+ /* fref_clk3_req.gpio_wk30 - VOL_UP */
+ OMAP4_IOPAD(0x05C, PIN_INPUT | MUX_MODE3)
+ /* fref_clk4_out.gpio_wk8 - VOL_DN */
+ >;
+ };
+};
+
+&omap4_pmx_core {
+ backlight_pins: pinmux-backlight-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0X0D8, PIN_OUTPUT | PIN_OFF_OUTPUT_LOW | MUX_MODE3)
+ /* usbb1_ulpitll_dat7.gpio_95 - LED_BACKLIGHT_RESET */
+ >;
+ };
+
+ bluetooth_pins: pinmux-bluetooth-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x094, PIN_OUTPUT | MUX_MODE3)
+ /* gpmc_ncs6.gpio_103 - BT_EN */
+ OMAP4_IOPAD(0x0be, PIN_OUTPUT | MUX_MODE3)
+ /* cam_strobe.gpio_82 - BT_nRST */
+ OMAP4_IOPAD(0x0c0, PIN_INPUT | MUX_MODE3)
+ /* cam_globalreset.gpio_83 - BT_HOST_WAKE */
+ OMAP4_IOPAD(0x0d4, PIN_OUTPUT | MUX_MODE3)
+ /* usbb1_ulpitll_dat5.gpio_93 - BT_WAKE */
+ >;
+ };
+
+ dss_dpi_pins: pinmux-dss-dpi-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x162, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data23 */
+ OMAP4_IOPAD(0x164, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data22 */
+ OMAP4_IOPAD(0x166, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data21 */
+ OMAP4_IOPAD(0x168, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data20 */
+ OMAP4_IOPAD(0x16a, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data19 */
+ OMAP4_IOPAD(0x16c, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data18 */
+ OMAP4_IOPAD(0x16e, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data15 */
+ OMAP4_IOPAD(0x170, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data14 */
+ OMAP4_IOPAD(0x172, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data13 */
+ OMAP4_IOPAD(0x174, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data12 */
+ OMAP4_IOPAD(0x176, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data11 */
+ OMAP4_IOPAD(0x1b4, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data10 */
+ OMAP4_IOPAD(0x1b6, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data9 */
+ OMAP4_IOPAD(0x1b8, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data16 */
+ OMAP4_IOPAD(0x1ba, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data17 */
+ OMAP4_IOPAD(0x1bc, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_hsync */
+ OMAP4_IOPAD(0x1be, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_pclk */
+ OMAP4_IOPAD(0x1c0, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_vsync */
+ OMAP4_IOPAD(0x1c2, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_de */
+ OMAP4_IOPAD(0x1c4, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data8 */
+ OMAP4_IOPAD(0x1c6, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data7 */
+ OMAP4_IOPAD(0x1c8, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data6 */
+ OMAP4_IOPAD(0x1ca, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data5 */
+ OMAP4_IOPAD(0x1cc, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data4 */
+ OMAP4_IOPAD(0x1ce, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data3 */
+
+ OMAP4_IOPAD(0x1d0, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data2 */
+ OMAP4_IOPAD(0x1d2, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data1 */
+ OMAP4_IOPAD(0x1d4, PIN_OFF_OUTPUT_LOW | MUX_MODE5)
+ /* dispc2_data0 */
+ >;
+ };
+
+ fuel_alert_irq: pinmux-fuel-alert-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x068, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* gpmc_a20.gpio_44 */
+ >;
+ };
+
+ i2c1_pins: pinmux-i2c1-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x122, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c1_scl */
+ OMAP4_IOPAD(0x124, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c1_sda */
+ >;
+ };
+
+ i2c2_pins: pinmux-i2c2-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x126, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c2_scl */
+ OMAP4_IOPAD(0x128, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c2_sda */
+ >;
+ };
+
+ i2c3_pins: pinmux-i2c3-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x12a, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c3_scl */
+ OMAP4_IOPAD(0x12c, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c3_sda */
+ >;
+ };
+
+ i2c4_pins: pinmux-i2c4-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x12e, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c4_scl */
+ OMAP4_IOPAD(0x130, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* i2c4_sda */
+ >;
+ };
+
+ i2c5_pins: pinmux-i2c5-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x0de, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* usbc1_icusb_dp.gpio_98 */
+ OMAP4_IOPAD(0x0e0, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* usbc1_icusb_dm.gpio_99 */
+ >;
+ };
+
+ i2c6_pins: pinmux-i2c6-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x09c, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* hdmi_ddc_scl.gpio_65 */
+ OMAP4_IOPAD(0x09e, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* hdmi_ddc_sda.gpio_66 */
+ >;
+ };
+
+ i2c7_pins: pinmux-i2c7-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x08a, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* gpmc_wait0.gpio_61 */
+ OMAP4_IOPAD(0x08c, PIN_INPUT_PULLUP | MUX_MODE3)
+ /* gpmc_wait1.gpio_62 */
+ >;
+ };
+
+ ledir_pins: pimux-ledir-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x086, PIN_INPUT_PULLDOWN | MUX_MODE7)
+ /* gpmc_nbe0_cle.gpio_59 */
+ OMAP4_IOPAD(0x156, PIN_INPUT_PULLDOWN | MUX_MODE7)
+ /* mcspi4_simo.gpio_152 */
+ >;
+ };
+
+ lvds_pins: pinmux-lvds-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0X136, PIN_OUTPUT | MUX_MODE3)
+ /* mcspi1_simo.gpio_136 - LVDS_nSHDN */
+ >;
+ };
+
+ mmc1_pins: pinmux-mmc1-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x0e2, PIN_INPUT_PULLDOWN | MUX_MODE0)
+ /* sdmmc1_clk */
+ OMAP4_IOPAD(0x0e4, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmcc1_cmd */
+ OMAP4_IOPAD(0x0e6, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmcc1_dat0 */
+ OMAP4_IOPAD(0x0e8, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc1_dat1 */
+ OMAP4_IOPAD(0x0ea, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc1_dat2 */
+ OMAP4_IOPAD(0x0ec, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc1_dat3 */
+ >;
+ };
+
+ mmc2_pins: pinmux-mmc2-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x040, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat0 */
+ OMAP4_IOPAD(0x042, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat1 */
+ OMAP4_IOPAD(0x044, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat2 */
+ OMAP4_IOPAD(0x046, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat3 */
+ OMAP4_IOPAD(0x048, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat4 */
+ OMAP4_IOPAD(0x04a, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat5 */
+ OMAP4_IOPAD(0x04c, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat6 */
+ OMAP4_IOPAD(0x04e, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_dat7 */
+ OMAP4_IOPAD(0x082, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_clk */
+ OMAP4_IOPAD(0x084, PIN_INPUT_PULLUP | MUX_MODE1)
+ /* sdmmc2_cmd */
+ >;
+ };
+
+ mmc5_pins: pinmux-mmc5-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x148, PIN_INPUT_PULLDOWN | MUX_MODE0)
+ /* sdmmc5_clk.sdmmc5_clk */
+ OMAP4_IOPAD(0x14a, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc5_cmd.sdmmc5_cmd */
+ OMAP4_IOPAD(0x14c, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc5_dat0.sdmmc5_dat0 */
+ OMAP4_IOPAD(0x14e, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc5_dat1.sdmmc5_dat1 */
+ OMAP4_IOPAD(0x150, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc5_dat2.sdmmc5_dat2 */
+ OMAP4_IOPAD(0x152, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sdmmc5_dat3.sdmmc5_dat3 */
+ >;
+ };
+
+ pwm10_default: pinmux-pwm10-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0X0D6, PIN_OUTPUT | PIN_OFF_OUTPUT_LOW | MUX_MODE1)
+ /* usbb1_ulpitll_dat6.dmtimer10_pwm_evt - LED_BACKLIGHT_PWM */
+ >;
+ };
+
+ touch_pins: pinmux-touch-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x06c, PIN_INPUT | MUX_MODE3)
+ /* gpmc_a22.gpio_46 - TSP_INT */
+ >;
+ };
+
+ uart2_pins: pinmux-uart2-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x118, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* uart2_cts.uart2_cts */
+ OMAP4_IOPAD(0x11a, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* uart2_rts.uart2_rts */
+ OMAP4_IOPAD(0x11c, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* uart2_rx.uart2_rx */
+ OMAP4_IOPAD(0x11e, PIN_INPUT_PULLUP | MUX_MODE0)
+ /* uart2_tx.uart2_tx */
+ >;
+ };
+
+ uart3_pins: pinmux-uart3-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x144, PIN_INPUT | MUX_MODE0)
+ /* uart3_rx_irrx */
+ OMAP4_IOPAD(0x146, PIN_OUTPUT | MUX_MODE0)
+ /* uart3_tx_irtx */
+ >;
+ };
+
+ vibrator_default: pinmux-vibrator-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x05c, PIN_INPUT_PULLDOWN | MUX_MODE3)
+ /* gpmc_ad14.gpio_38 - MOTOR_EN */
+ >;
+ };
+
+ wlanen_gpio: pinmux-wlanen-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x096, PIN_OUTPUT | MUX_MODE3)
+ /* gpmc_ncs7.gpio_104 */
+ >;
+ };
+
+ wlan_host_wake: pinmux-wlan-host-wake-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x0bc, PIN_INPUT | MUX_MODE3)
+ /* cam_shutter.gpio_81 - WLAN_HOST_WAKE */
+ >;
+ };
+};
+
+&uart3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart3_pins>;
+
+ interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH
+ &omap4_pmx_core OMAP4_UART3_RX>;
+};
+
+&i2c1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c1_pins>;
+
+ clock-frequency = <400000>;
+
+ twl: pmic@48 {
+ reg = <0x48>;
+ #clock-cells = <1>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <
+ &twl6030_pins
+ &twl6030_wkup_pins
+ >;
+
+ /* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */
+ interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
+ interrupt-parent = <&gic>;
+ system-power-controller;
+ };
+};
+
+#include "twl6032.dtsi"
+#include "twl6030_omap4.dtsi"
+
+&ldo1 {
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-always-on;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+};
+
+&ldo3 {
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+};
+
+&ldo4 {
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-always-on;
+};
+
+&ldo5 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+};
+
+&ldo6 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+};
+
+&smps4 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+};
+
+&ldousb {
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+};
+
+&i2c2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c2_pins>;
+};
+
+&i2c3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c3_pins>;
+};
+
+&i2c4 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c4_pins>;
+
+ accelerometer@18 {
+ compatible = "bosch,bma254";
+ reg = <0x18>;
+ vdd-supply = <&ldo4>;
+ vddio-supply = <&ldo5>;
+ interrupt-parent = <&gpio4>;
+ interrupts = <25 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>,
+ <26 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>;
+ };
+
+ magnetometer@2e {
+ compatible = "yamaha,yas530";
+ reg = <0x2e>;
+ vdd-supply = <&ldo4>;
+ iovdd-supply = <&ldo5>;
+ reset-gpios = <&gpio5 29 GPIO_ACTIVE_LOW>;
+ interrupts = <&gpio6 10 IRQ_TYPE_EDGE_RISING>;
+ };
+
+ light-sensor@44 {
+ compatible = "sharp,gp2ap002a00f";
+ reg = <0x44>;
+ interrupt-parent = <&gpio1>;
+ interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+ vdd-supply = <&ldo4>;
+ vio-supply = <&ldo4>;
+ io-channels = <&gp2a_shunt>;
+ io-channel-names = "alsout";
+ sharp,proximity-far-hysteresis = /bits/ 8 <0x40>;
+ sharp,proximity-close-hysteresis = /bits/ 8 <0x20>;
+ };
+};
+
+&dss {
+ status = "okay";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&dss_dpi_pins>;
+
+ port {
+ dpi_out: endpoint {
+ remote-endpoint = <&bridge_in>;
+ data-lines = <24>;
+ };
+ };
+};
+
+&twl_usb_comparator {
+ usb-supply = <&ldousb>;
+};
+
+&usb_otg_hs {
+ interface-type = <1>;
+ mode = <3>;
+ power = <50>;
+};
+
+&mmc1 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc1_pins>;
+
+ vmmc-supply = <®_espresso_external>;
+ bus-width = <4>;
+};
+
+&mmc2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc2_pins>;
+
+ vmmc-supply = <®_espresso_internal>;
+ ti,non-removable;
+ bus-width = <8>;
+};
+
+&mmc3 {
+ status = "disabled";
+};
+
+&mmc4 {
+ status = "disabled";
+};
+
+&mmc5 {
+ status = "okay";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ non-removable;
+ bus-width = <4>;
+ vmmc-supply = <®_espresso_wlan>;
+ mmc-pwrseq = <&wlan_pwrseq>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc5_pins>;
+
+ brcmf: wifi@1 {
+ compatible = "brcm,bcm4330-fmac", "brcm,bcm4329-fmac";
+ reg = <1>;
+
+ interrupt-parent = <&gpio3>;
+ interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "host-wake";
+ pinctrl-names = "default";
+ pinctrl-0 = <&wlan_host_wake>;
+ };
+};
+
+&uart2 {
+ interrupts-extended = <&wakeupgen GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH
+ &omap4_pmx_core OMAP4_UART2_RX>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart2_pins>;
+ bluetooth {
+ compatible = "brcm,bcm4330-bt";
+ pinctrl-names = "default";
+ pinctrl-0 = <&bluetooth_pins>;
+ shutdown-gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&gpio3 18 GPIO_ACTIVE_LOW>;
+ device-wakeup-gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
+ interrupt-parent = <&gpio3>;
+ interrupts = <19 IRQ_TYPE_EDGE_FALLING>;
+ interrupt-names = "host-wakeup";
+ };
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* Claude review: ARM: dts: ti: omap: espresso-common: Add common device tree for Samsung Galaxy Tab 2 series
2026-03-03 20:30 ` [PATCH v9 5/8] ARM: dts: ti: omap: espresso-common: Add common device tree " Mithil Bavishi
@ 2026-03-03 20:45 ` Claude Code Review Bot
0 siblings, 0 replies; 21+ messages in thread
From: Claude Code Review Bot @ 2026-03-03 20:45 UTC (permalink / raw)
To: dri-devel-reviews
Patch Review
This is the largest patch (744 lines) and has several issues:
**Bug - magnetometer interrupts property:**
```
magnetometer@2e {
compatible = "yamaha,yas530";
...
interrupts = <&gpio6 10 IRQ_TYPE_EDGE_RISING>;
};
```
The `interrupts` property takes plain interrupt specifiers, not phandle references. This should be either:
```
interrupt-parent = <&gpio6>;
interrupts = <10 IRQ_TYPE_EDGE_RISING>;
```
or:
```
interrupts-extended = <&gpio6 10 IRQ_TYPE_EDGE_RISING>;
```
**Issue - reserved-memory size hardcoded for 7" variant only:**
```
continuous_splash: framebuffer@bef00000{
reg = <0xbef00000 (1024 * 600 * 4)>;
no-map;
};
```
The size `1024 * 600 * 4` corresponds to the 7" panel (1024x600). The 10" panel is 1280x800, which requires `1280 * 800 * 4` bytes. This is in the **common** dtsi but the size is variant-specific. Either this should be moved to the per-variant dts files, or the size should be large enough for the largest panel, or the 10" variant should override it.
**Style - missing space before brace:**
```
continuous_splash: framebuffer@bef00000{
```
Should be `framebuffer@bef00000 {` (space before `{`).
**Typo in node name:**
```
ledir_pins: pimux-ledir-pins {
```
Should be `pinmux-ledir-pins` (missing `n` in `pinmux`).
**Inconsistent include syntax:**
```
#include "dt-bindings/gpio/gpio.h"
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/input/input.h>
```
The first include uses double quotes while the others use angle brackets. Should be consistent — prefer angle brackets (`<...>`) as used elsewhere in the kernel DTS files.
**Inconsistent hex prefix case in OMAP4_IOPAD:**
```
OMAP4_IOPAD(0X0D8, PIN_OUTPUT | PIN_OFF_OUTPUT_LOW | MUX_MODE3)
OMAP4_IOPAD(0X0D6, PIN_OUTPUT | PIN_OFF_OUTPUT_LOW | MUX_MODE1)
OMAP4_IOPAD(0X136, PIN_OUTPUT | MUX_MODE3)
```
These use uppercase `0X` prefix while all other entries use lowercase `0x`. Should be consistent (lowercase).
**Questionable interrupt flags on accelerometer:**
```
accelerometer@18 {
...
interrupts = <25 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>,
<26 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>;
};
```
Combining `IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING` (value 5) is unusual. Typically an interrupt is either level-triggered or edge-triggered, not both. Please verify this is correct for the BMA254 accelerometer.
**Unnecessary `#address-cells` in chosen:**
```
chosen {
stdout-path = &uart3;
#address-cells = <1>;
};
```
The `#address-cells` in the `chosen` node is unnecessary if there are no child nodes. Can be dropped.
**Minor - `ti,non-removable` in mmc2:**
```
&mmc2 {
...
ti,non-removable;
bus-width = <8>;
};
```
This is consistent with other OMAP DTS files that use the same property, so it's fine. (Though some newer DTS files use standard `non-removable`.)
---
Generated by Claude Code Patch Reviewer
^ permalink raw reply [flat|nested] 21+ messages in thread