Create common device tree for Samsung Espresso series devices
Differentiate based on screen sizes, panels, touch controllers,
and batteries
Signed-off-by: Mithil Bavishi <bavishimithil@gmail.com>
---
.../omap/omap4-samsung-espresso-common.dtsi | 690 ++++++++++++++++++
1 file changed, 690 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..5efa49382
--- /dev/null
+++ b/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso-common.dtsi
@@ -0,0 +1,690 @@
+// 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;
+
+ ramoops_region@A0000000 {
+ no-map;
+ reg = <0xA0000000 0x200000>;
+ };
+
+ continuous_splash: framebuffer@bef00000{
+ reg = <0xbef00000 (1024 * 600 * 4)>;
+ no-map;
+ };
+ };
+
+ chosen {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ };
+
+ i2c-gpio-5 {
+ compatible = "i2c-gpio";
+ 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>;
+ };
+
+ i2c-gpio-6 {
+ compatible = "i2c-gpio";
+ 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>;
+ };
+
+ i2c-gpio-7 {
+ compatible = "i2c-gpio";
+ 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 */
+ regulator-always-on;
+ 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>;
+
+ 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: dmtimer-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 = "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>;
+ io-channel-ranges;
+ };
+
+ irled@0 {
+ compatible = "gpio-ir-tx";
+ gpios = <&gpio2 27 GPIO_ACTIVE_HIGH>; /* GPIO_59 */
+ };
+};
+
+&omap4_pmx_wkup {
+ twl6030_wkup_pins: pinmux-twl6030-wkup-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x54, PIN_OUTPUT | MUX_MODE3)
+ /* fref_clk0_out.sys_drm_msecure */
+ >;
+ };
+
+ gpio_keys: pinmux-gpio-keys {
+ 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: pinmux-prox-irq {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x042, WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE3)
+ /* sim_clk.gpio_wk1 - PS_VOUT */
+ >;
+ };
+};
+
+&omap4_pmx_core {
+ pwm10_default: pinmux-pwm10-default {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0X0D6, PIN_OUTPUT | PIN_OFF_OUTPUT_LOW | MUX_MODE1)
+ /* usbb1_ulpitll_dat6.dmtimer10_pwm_evt - LED_BACKLIGHT_PWM */
+ >;
+ };
+
+ 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 */
+ >;
+ };
+
+ lvds_pins: pinmux-lvds-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0X136, PIN_OUTPUT | MUX_MODE3)
+ /* mcspi1_simo.gpio_136 - LVDS_nSHDN */
+ >;
+ };
+
+ 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 */
+ >;
+ };
+
+ 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 */
+ >;
+ };
+
+ 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 */
+ >;
+ };
+
+ 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 */
+ >;
+ };
+
+ 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 */
+ >;
+ };
+
+ wlanen_gpio: pinmux-wlanen-gpio {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x096, PIN_OUTPUT | MUX_MODE3) /* gpmc_ncs7.gpio_104 */
+ >;
+ };
+
+ twl6030_pins: pinmux-twl6030-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x19e, WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0)
+ /* sys_nirq1.sys_nirq1 */
+ >;
+ };
+
+ fuel_alert_irq: fuel-alert-irq {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x068, WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE3)
+ /* gpmc_a20.gpio_44 */
+ >;
+ };
+
+ 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 */
+ >;
+ };
+
+ 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 */
+ >;
+ };
+
+ wlan_host_wake: pinmux-wlan-host-wake {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x0bc, WAKEUP_EN | PIN_INPUT | MUX_MODE3)
+ /* cam_shutter.gpio_81 - WLAN_HOST_WAKE */
+ >;
+ };
+
+ 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, WAKEUP_EN | 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 */
+ >;
+ };
+
+ touch_pins: pinmux-touch-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x06c, PIN_INPUT | MUX_MODE3)
+ /* gpmc_a22.gpio_46 - TSP_INT */
+ >;
+ };
+
+ vibrator_default: pinmux-vibrator-default {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x05c, PIN_INPUT_PULLDOWN | MUX_MODE3)
+ /* gpmc_ad14.gpio_38 - MOTOR_EN */
+ >;
+ };
+
+ gp2a_irq: pinmux-gp2a-irq {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x052, WAKEUP_EN | PIN_INPUT | MUX_MODE3)
+ /* gpmc_ad9.gpio_33 - ALS_INT_18 */
+ >;
+ };
+};
+
+&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: twl@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>;
+ ti,system-power-controller;
+ };
+};
+
+#include "twl6032.dtsi"
+
+&vana {
+ regulator-min-microvolt = <2100000>;
+ regulator-max-microvolt = <2100000>;
+ regulator-always-on;
+ regulator-state-mem {
+ regulator-off-in-suspend;
+ };
+};
+
+&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)>;
+ mount-matrix = "-1", "0", "0",
+ "0", "1", "0",
+ "0", "0", "1";
+ };
+
+ 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 = <&gp2a_irq &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 = "ok";
+ 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>;
+
+ 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>;
+ mmc-pwrseq = <&wlan_pwrseq>;
+ };
+};
+
+&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>;
+ };
+};
--
2.43.0
Hi Mithil, Am Wed, 30 Oct 2024 21:12:11 +0000 schrieb Mithil Bavishi <bavishimithil@gmail.com>: > + twl: twl@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>; > + ti,system-power-controller; this has to be system-power-controller; And you have it correctly here: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/blob/master/device/community/linux-postmarketos-omap/0002-arm-dts-Add-common-dtsi-for-espresso.patch?ref_type=heads#L532 so, please double-check if you are trying to mainline the right branch. No need to respin just for this line. There is still a lot other stuff to fix here but I want to make sure we are looking at the right thing. Regards, Andreas
> this has to be system-power-controller; I am so sorry for the mess up, I was on the wrong branch which is almost the same as pmOS but a bit older, hence the entire mess up. I'll run a quick diff from pmOS and this patch and fix them accordingly. > There is still a lot other stuff to fix here but I want to make sure we are looking at the right thing. Could you please go ahead and mention them as well. Best Regards, Mithil
Hi, Am Thu, 31 Oct 2024 06:55:24 +0000 schrieb Mithil Bavishi <bavishimithil@gmail.com>: > > this has to be system-power-controller; > > I am so sorry for the mess up, I was on the wrong branch which is > almost the same as pmOS but a bit older, hence the entire mess up. > I'll run a quick diff from pmOS and this patch and fix them > accordingly. > > > There is still a lot other stuff to fix here but I want to make > > sure we are looking at the right thing. > > Could you please go ahead and mention them as well. > well, that takes time, I wanted to start that on the right thing. 1. make dtbs shows warnings 2. make CHECK_DTBS=y ti/omap/omap4-samsung-espresso7.dtb is too noisy (probably same for espresso10). a lot comes from the dtsi files, so you need to ignore a lot, probably either strip down the new dts to almost nothing besides dtsi includes to determine the background noise or take a similar device, redirect output and errors, diff that output with the full devicetree. I am trying to clean that dtsi warning mess up, linux-next shows a lot less warnings but that takes time. One of the warnings that should be fixed: dts/ti/omap/omap4-samsung-espresso7.dtb: lvds-encoder: compatible: 'oneOf' conditional failed, one must be fixed: ['lvds-encoder'] is too short 'lvds-encoder' is not one of ['ti,ds90c185', 'ti,ds90c187', 'ti,sn75lvds83'] 'lvds-encoder' is not one of ['ti,ds90cf364a', 'ti,ds90cf384a', 'ti,sn65lvds94'] 'lvds-encoder' is not one of ['thine,thc63lvdm83d'] from schema $id: http://devicetree.org/schemas/display/bridge/lvds-codec.yaml Regards, Andreas
> well, that takes time, I wanted to start that on the right thing. Yes indeed, I'll be more careful the next time, again sorry for the trouble, I am not used to the process of mailing lists and may have done some mistakes there as well. > 1. make dtbs shows warnings > 2. make CHECK_DTBS=y ti/omap/omap4-samsung-espresso7.dtb is too noisy > (probably same for espresso10). > a lot comes from the dtsi files, so you need to ignore a lot, probably > either strip down the new dts to almost nothing besides dtsi includes > to determine the background noise or take a similar device, redirect > output and errors, diff that output with the full devicetree. > I am trying to clean that dtsi warning mess up, linux-next shows a lot > less warnings but that takes time. Oh, I was not aware of such tool, ran it and yeah there are a ton of warnings, where can I ask for assitance if I need it while fixing them. > One of the warnings that should be fixed: > dts/ti/omap/omap4-samsung-espresso7.dtb: lvds-encoder: compatible: > 'oneOf' conditional failed, one must be fixed: ['lvds-encoder'] is too > short 'lvds-encoder' is not one of ['ti,ds90c185', 'ti,ds90c187', > 'ti,sn75lvds83'] 'lvds-encoder' is not one of ['ti,ds90cf364a', > 'ti,ds90cf384a', 'ti,sn65lvds94'] 'lvds-encoder' is not one of > ['thine,thc63lvdm83d'] from schema $id: > http://devicetree.org/schemas/display/bridge/lvds-codec.yaml Ah right, I have to add the encoder (doestek, dtc34lm85am) in bindings and in vendor, this patchset may grow too big I assume. Best Regards, Mithil
Am Thu, 31 Oct 2024 10:41:45 +0000 schrieb Mithil Bavishi <bavishimithil@gmail.com>: > > well, that takes time, I wanted to start that on the right thing. > > Yes indeed, I'll be more careful the next time, again sorry for the > trouble, I am not used to the process of mailing lists and may have > done some mistakes there as well. > probably you did not notice an error in make dtbs and the old devicetree on the device was still there and was used. > > 1. make dtbs shows warnings > > > 2. make CHECK_DTBS=y ti/omap/omap4-samsung-espresso7.dtb is too > > noisy (probably same for espresso10). > > > a lot comes from the dtsi files, so you need to ignore a lot, > > probably either strip down the new dts to almost nothing besides > > dtsi includes to determine the background noise or take a similar > > device, redirect output and errors, diff that output with the full > > devicetree. I am trying to clean that dtsi warning mess up, > > linux-next shows a lot less warnings but that takes time. > > Oh, I was not aware of such tool, ran it and yeah there are a ton of > warnings, where can I ask for assitance if I need it while fixing > them. > I hope you understood that warnings like this: arch/arm/boot/dts/ti/omap/omap4-samsung-espresso7.dtb: /ocp/interconnect@4a000000/segment@0/target-module@4000/cm1@0/clocks/pad_clks_ck@108: failed to match any schema with compatible: ['ti,gate-clock'] are not the ones you need to fix, so just the diff between old and new. > > One of the warnings that should be fixed: > > dts/ti/omap/omap4-samsung-espresso7.dtb: lvds-encoder: compatible: > > 'oneOf' conditional failed, one must be fixed: ['lvds-encoder'] is > > too short 'lvds-encoder' is not one of ['ti,ds90c185', > > 'ti,ds90c187', 'ti,sn75lvds83'] 'lvds-encoder' is not one of > > ['ti,ds90cf364a', 'ti,ds90cf384a', 'ti,sn65lvds94'] 'lvds-encoder' > > is not one of ['thine,thc63lvdm83d'] from schema $id: > > http://devicetree.org/schemas/display/bridge/lvds-codec.yaml > > > > Ah right, I have to add the encoder (doestek, dtc34lm85am) in > bindings and in vendor, this patchset may grow too big I assume. > You can do the binding stuff separately, lvds-encoder/panel should be trivial, so one patch for vendor prefix if needed and one for the binding. Regards, Andreas
> probably you did not notice an error in make dtbs and the old > devicetree on the device was still there and was used. I messed up my PowerVR tree with mainline, hence the problems. I've fixed it now locally. > are not the ones you need to fix, so just the diff between old and new. Yeah, I ran the command for espresso and then panda for a comparision. The diff is what i worked on, but I have some doubts which I'd like to ask dts/ti/omap/omap4-samsung-espresso7.dtb: /: irled@0: 'anyOf' conditional failed, one must be fixed: 'reg' is a required property 'ranges' is a required property from schema $id: http://devicetree.org/schemas/root-node.yaml# Documentation/devicetree/bindings/leds/irled/gpio-ir-tx.yaml does not say those properties to be required, is the node placed incorrectly? /home/mighty/linux/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso7.dtb: /: pwm@10: 'anyOf' conditional failed, one must be fixed: 'reg' is a required property 'ranges' is a required property from schema $id: http://devicetree.org/schemas/root-node.yaml# Similarly here as well. /home/mighty/linux/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso7.dtb: current-sense-shunt: 'io-channel-ranges' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/iio/afe/current-sense-shunt.yaml# I tried searching the tree for "io-channel-ranges" which has only one example - ste-ux500-samsung-janice.dts. In that dts the node is same as in espresso. Best Regards, Mithil
Am Fri, 8 Nov 2024 09:51:07 +0000 schrieb Mithil Bavishi <bavishimithil@gmail.com>: > > probably you did not notice an error in make dtbs and the old > > devicetree on the device was still there and was used. > > I messed up my PowerVR tree with mainline, hence the problems. I've fixed > it now locally. > > > are not the ones you need to fix, so just the diff between old and new. > > Yeah, I ran the command for espresso and then panda for a comparision. > The diff is what i worked on, but I have some doubts which I'd like to ask > > dts/ti/omap/omap4-samsung-espresso7.dtb: /: irled@0: 'anyOf' conditional > failed, one must be fixed: > 'reg' is a required property > 'ranges' is a required property > from schema $id: http://devicetree.org/schemas/root-node.yaml# > > Documentation/devicetree/bindings/leds/irled/gpio-ir-tx.yaml does not say > those properties to be required, is the node placed incorrectly? > Well, anything with @ in the node nade needs reg as a property. So probably best is led-ir since having reg does not make any sense here since we are not on a bus with devices having addresses on that bus. > /home/mighty/linux/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso7.dtb: > /: pwm@10: 'anyOf' conditional failed, one must be fixed: > 'reg' is a required property > 'ranges' is a required property > from schema $id: http://devicetree.org/schemas/root-node.yaml# > > Similarly here as well. > Same issue here, too. > /home/mighty/linux/arch/arm/boot/dts/ti/omap/omap4-samsung-espresso7.dtb: > current-sense-shunt: 'io-channel-ranges' does not match any of the > regexes: 'pinctrl-[0-9]+' > from schema $id: > http://devicetree.org/schemas/iio/afe/current-sense-shunt.yaml# > > I tried searching the tree for "io-channel-ranges" which has only one > example - ste-ux500-samsung-janice.dts. In that dts the node is same as > in espresso. > Not documented, so not allowed. There is code using it in kernel, but that might only come into effect if current-sense-shunt has children nodes. So drop it and check functionality. Regards, Andreas
© 2016 - 2024 Red Hat, Inc.