162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/dts-v1/; 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci#include "ste-db8500.dtsi" 562306a36Sopenharmony_ci#include "ste-ab8505.dtsi" 662306a36Sopenharmony_ci#include "ste-dbx5x0-pinctrl.dtsi" 762306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h> 862306a36Sopenharmony_ci#include <dt-bindings/leds/common.h> 962306a36Sopenharmony_ci#include <dt-bindings/input/input.h> 1062306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci/* 1362306a36Sopenharmony_ci * Note: This device tree cannot be booted directly with the Samsung bootloader. 1462306a36Sopenharmony_ci * You need an intermediate, device-tree compatible bootloader 1562306a36Sopenharmony_ci * that locks the L2 cache. Otherwise the kernel will crash after decompression. 1662306a36Sopenharmony_ci * 1762306a36Sopenharmony_ci * There is a port of (mainline) U-Boot, see 1862306a36Sopenharmony_ci * https://wiki.postmarketos.org/wiki/ST-Ericsson_NovaThor_U8500#U-Boot 1962306a36Sopenharmony_ci */ 2062306a36Sopenharmony_ci/ { 2162306a36Sopenharmony_ci model = "Samsung Galaxy S III mini (GT-I8190)"; 2262306a36Sopenharmony_ci compatible = "samsung,golden", "st-ericsson,u8500"; 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci chosen { 2562306a36Sopenharmony_ci stdout-path = &serial2; 2662306a36Sopenharmony_ci }; 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci battery: battery { 2962306a36Sopenharmony_ci compatible = "samsung,eb-l1m7flu"; 3062306a36Sopenharmony_ci }; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci thermal-zones { 3362306a36Sopenharmony_ci battery-thermal { 3462306a36Sopenharmony_ci /* This zone will be polled by the battery temperature code */ 3562306a36Sopenharmony_ci polling-delay = <0>; 3662306a36Sopenharmony_ci polling-delay-passive = <0>; 3762306a36Sopenharmony_ci thermal-sensors = <&bat_therm>; 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci trips { 4062306a36Sopenharmony_ci battery-crit-hi { 4162306a36Sopenharmony_ci temperature = <70000>; 4262306a36Sopenharmony_ci hysteresis = <2000>; 4362306a36Sopenharmony_ci type = "critical"; 4462306a36Sopenharmony_ci }; 4562306a36Sopenharmony_ci }; 4662306a36Sopenharmony_ci }; 4762306a36Sopenharmony_ci }; 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci bat_therm: thermistor { 5062306a36Sopenharmony_ci compatible = "samsung,1404-001221"; 5162306a36Sopenharmony_ci io-channels = <&gpadc 0x02>; /* BatTemp */ 5262306a36Sopenharmony_ci pullup-uv = <1800000>; 5362306a36Sopenharmony_ci pullup-ohm = <230000>; 5462306a36Sopenharmony_ci pulldown-ohm = <0>; 5562306a36Sopenharmony_ci #thermal-sensor-cells = <0>; 5662306a36Sopenharmony_ci }; 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci i2c-gpio-0 { 5962306a36Sopenharmony_ci compatible = "i2c-gpio"; 6062306a36Sopenharmony_ci sda-gpios = <&gpio2 14 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 6162306a36Sopenharmony_ci scl-gpios = <&gpio2 13 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci pinctrl-names = "default"; 6462306a36Sopenharmony_ci pinctrl-0 = <&i2c_gpio_0_default>; 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci #address-cells = <1>; 6762306a36Sopenharmony_ci #size-cells = <0>; 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci touchkey@20 { 7062306a36Sopenharmony_ci compatible = "coreriver,tc360-touchkey"; 7162306a36Sopenharmony_ci reg = <0x20>; 7262306a36Sopenharmony_ci vdd-supply = <&ab8500_ldo_aux4_reg>; 7362306a36Sopenharmony_ci vcc-supply = <&ab8500_ldo_aux6_reg>; 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci interrupt-parent = <&gpio2>; 7662306a36Sopenharmony_ci interrupts = <15 IRQ_TYPE_EDGE_FALLING>; 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci pinctrl-names = "default"; 7962306a36Sopenharmony_ci pinctrl-0 = <&touchkey_default>; 8062306a36Sopenharmony_ci linux,keycodes = <KEY_MENU KEY_BACK>; 8162306a36Sopenharmony_ci }; 8262306a36Sopenharmony_ci }; 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci i2c-gpio-1 { 8562306a36Sopenharmony_ci compatible = "i2c-gpio"; 8662306a36Sopenharmony_ci sda-gpios = <&gpio4 24 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 8762306a36Sopenharmony_ci scl-gpios = <&gpio4 23 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci pinctrl-names = "default"; 9062306a36Sopenharmony_ci pinctrl-0 = <&i2c_gpio_1_default>; 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci #address-cells = <1>; 9362306a36Sopenharmony_ci #size-cells = <0>; 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci magnetometer@c { 9662306a36Sopenharmony_ci compatible = "alps,hscdtd008a"; 9762306a36Sopenharmony_ci reg = <0x0c>; 9862306a36Sopenharmony_ci 9962306a36Sopenharmony_ci avdd-supply = <&ab8500_ldo_aux1_reg>; 10062306a36Sopenharmony_ci dvdd-supply = <&ab8500_ldo_aux8_reg>; 10162306a36Sopenharmony_ci }; 10262306a36Sopenharmony_ci }; 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci soc { 10562306a36Sopenharmony_ci /* External Micro SD card slot */ 10662306a36Sopenharmony_ci mmc@80126000 { 10762306a36Sopenharmony_ci status = "okay"; 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ci arm,primecell-periphid = <0x10480180>; 11062306a36Sopenharmony_ci max-frequency = <100000000>; 11162306a36Sopenharmony_ci bus-width = <4>; 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci non-removable; 11462306a36Sopenharmony_ci /* 11562306a36Sopenharmony_ci * Unfortunately, there is no way to enable the UHS 11662306a36Sopenharmony_ci * modes due to a limitation of the SD level translator: 11762306a36Sopenharmony_ci * It will either translate to 2.9V or disconnect the 11862306a36Sopenharmony_ci * DATA lines, so switching to 1.8V signal voltage fails. 11962306a36Sopenharmony_ci */ 12062306a36Sopenharmony_ci cap-sd-highspeed; 12162306a36Sopenharmony_ci cap-mmc-highspeed; 12262306a36Sopenharmony_ci st,sig-pin-fbclk; 12362306a36Sopenharmony_ci full-pwr-cycle; 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci vmmc-supply = <&ab8500_ldo_aux3_reg>; 12662306a36Sopenharmony_ci vqmmc-supply = <&sd_level_translator>; 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ci pinctrl-names = "default", "sleep"; 12962306a36Sopenharmony_ci pinctrl-0 = <&mc0_a_2_default>; 13062306a36Sopenharmony_ci pinctrl-1 = <&mc0_a_2_sleep>; 13162306a36Sopenharmony_ci }; 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_ci /* WLAN SDIO */ 13462306a36Sopenharmony_ci mmc@80118000 { 13562306a36Sopenharmony_ci status = "okay"; 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_ci arm,primecell-periphid = <0x10480180>; 13862306a36Sopenharmony_ci max-frequency = <50000000>; 13962306a36Sopenharmony_ci bus-width = <4>; 14062306a36Sopenharmony_ci 14162306a36Sopenharmony_ci non-removable; 14262306a36Sopenharmony_ci cap-sd-highspeed; 14362306a36Sopenharmony_ci 14462306a36Sopenharmony_ci vmmc-supply = <&wl_reg_on>; 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ci pinctrl-names = "default", "sleep"; 14762306a36Sopenharmony_ci pinctrl-0 = <&mc1_a_2_default>; 14862306a36Sopenharmony_ci pinctrl-1 = <&mc1_a_2_sleep>; 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ci #address-cells = <1>; 15162306a36Sopenharmony_ci #size-cells = <0>; 15262306a36Sopenharmony_ci 15362306a36Sopenharmony_ci wifi@1 { 15462306a36Sopenharmony_ci compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac"; 15562306a36Sopenharmony_ci reg = <1>; 15662306a36Sopenharmony_ci 15762306a36Sopenharmony_ci /* GPIO216 (WLAN_HOST_WAKE) */ 15862306a36Sopenharmony_ci interrupt-parent = <&gpio6>; 15962306a36Sopenharmony_ci interrupts = <24 IRQ_TYPE_EDGE_FALLING>; 16062306a36Sopenharmony_ci interrupt-names = "host-wake"; 16162306a36Sopenharmony_ci 16262306a36Sopenharmony_ci pinctrl-names = "default"; 16362306a36Sopenharmony_ci pinctrl-0 = <&wlan_default>; 16462306a36Sopenharmony_ci }; 16562306a36Sopenharmony_ci }; 16662306a36Sopenharmony_ci 16762306a36Sopenharmony_ci /* eMMC */ 16862306a36Sopenharmony_ci mmc@80005000 { 16962306a36Sopenharmony_ci status = "okay"; 17062306a36Sopenharmony_ci 17162306a36Sopenharmony_ci arm,primecell-periphid = <0x10480180>; 17262306a36Sopenharmony_ci max-frequency = <100000000>; 17362306a36Sopenharmony_ci bus-width = <8>; 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ci non-removable; 17662306a36Sopenharmony_ci cap-mmc-highspeed; 17762306a36Sopenharmony_ci mmc-ddr-1_8v; 17862306a36Sopenharmony_ci no-sdio; 17962306a36Sopenharmony_ci no-sd; 18062306a36Sopenharmony_ci 18162306a36Sopenharmony_ci vmmc-supply = <&vmem_3v3>; 18262306a36Sopenharmony_ci 18362306a36Sopenharmony_ci pinctrl-names = "default", "sleep"; 18462306a36Sopenharmony_ci pinctrl-0 = <&mc2_a_1_default>; 18562306a36Sopenharmony_ci pinctrl-1 = <&mc2_a_1_sleep>; 18662306a36Sopenharmony_ci }; 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_ci /* BT UART */ 18962306a36Sopenharmony_ci serial@80120000 { 19062306a36Sopenharmony_ci status = "okay"; 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ci pinctrl-names = "default", "sleep"; 19362306a36Sopenharmony_ci pinctrl-0 = <&u0_a_1_default>; 19462306a36Sopenharmony_ci pinctrl-1 = <&u0_a_1_sleep>; 19562306a36Sopenharmony_ci 19662306a36Sopenharmony_ci bluetooth { 19762306a36Sopenharmony_ci /* BCM4334B0 actually */ 19862306a36Sopenharmony_ci compatible = "brcm,bcm4330-bt"; 19962306a36Sopenharmony_ci /* GPIO222 (BT_VREG_ON) */ 20062306a36Sopenharmony_ci shutdown-gpios = <&gpio6 30 GPIO_ACTIVE_HIGH>; 20162306a36Sopenharmony_ci /* GPIO199 (BT_WAKE) */ 20262306a36Sopenharmony_ci device-wakeup-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>; 20362306a36Sopenharmony_ci /* GPIO97 (BT_HOST_WAKE) */ 20462306a36Sopenharmony_ci host-wakeup-gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>; 20562306a36Sopenharmony_ci 20662306a36Sopenharmony_ci pinctrl-names = "default"; 20762306a36Sopenharmony_ci pinctrl-0 = <&bluetooth_default>; 20862306a36Sopenharmony_ci }; 20962306a36Sopenharmony_ci }; 21062306a36Sopenharmony_ci 21162306a36Sopenharmony_ci /* GPF UART */ 21262306a36Sopenharmony_ci serial@80121000 { 21362306a36Sopenharmony_ci status = "okay"; 21462306a36Sopenharmony_ci 21562306a36Sopenharmony_ci pinctrl-names = "default", "sleep"; 21662306a36Sopenharmony_ci pinctrl-0 = <&u1rxtx_a_1_default &u1ctsrts_a_1_default>; 21762306a36Sopenharmony_ci pinctrl-1 = <&u1rxtx_a_1_sleep &u1ctsrts_a_1_sleep>; 21862306a36Sopenharmony_ci }; 21962306a36Sopenharmony_ci 22062306a36Sopenharmony_ci /* Debugging console UART */ 22162306a36Sopenharmony_ci serial@80007000 { 22262306a36Sopenharmony_ci status = "okay"; 22362306a36Sopenharmony_ci 22462306a36Sopenharmony_ci pinctrl-names = "default", "sleep"; 22562306a36Sopenharmony_ci pinctrl-0 = <&u2rxtx_c_1_default>; 22662306a36Sopenharmony_ci pinctrl-1 = <&u2rxtx_c_1_sleep>; 22762306a36Sopenharmony_ci }; 22862306a36Sopenharmony_ci 22962306a36Sopenharmony_ci i2c@80004000 { 23062306a36Sopenharmony_ci status = "okay"; 23162306a36Sopenharmony_ci 23262306a36Sopenharmony_ci pinctrl-names = "default", "sleep"; 23362306a36Sopenharmony_ci pinctrl-0 = <&i2c0_a_1_default>; 23462306a36Sopenharmony_ci pinctrl-1 = <&i2c0_a_1_sleep>; 23562306a36Sopenharmony_ci 23662306a36Sopenharmony_ci proximity@44 { 23762306a36Sopenharmony_ci compatible = "sharp,gp2ap002s00f"; 23862306a36Sopenharmony_ci reg = <0x44>; 23962306a36Sopenharmony_ci 24062306a36Sopenharmony_ci /* GPIO146 (PS_INT) */ 24162306a36Sopenharmony_ci interrupt-parent = <&gpio4>; 24262306a36Sopenharmony_ci interrupts = <18 IRQ_TYPE_EDGE_FALLING>; 24362306a36Sopenharmony_ci 24462306a36Sopenharmony_ci vdd-supply = <&ab8500_ldo_aux1_reg>; 24562306a36Sopenharmony_ci vio-supply = <&ab8500_ldo_aux8_reg>; 24662306a36Sopenharmony_ci 24762306a36Sopenharmony_ci pinctrl-names = "default"; 24862306a36Sopenharmony_ci pinctrl-0 = <&proximity_default>; 24962306a36Sopenharmony_ci 25062306a36Sopenharmony_ci sharp,proximity-far-hysteresis = <0x40>; 25162306a36Sopenharmony_ci sharp,proximity-close-hysteresis = <0x0f>; 25262306a36Sopenharmony_ci }; 25362306a36Sopenharmony_ci }; 25462306a36Sopenharmony_ci 25562306a36Sopenharmony_ci i2c@80128000 { 25662306a36Sopenharmony_ci status = "okay"; 25762306a36Sopenharmony_ci 25862306a36Sopenharmony_ci pinctrl-names = "default", "sleep"; 25962306a36Sopenharmony_ci pinctrl-0 = <&i2c2_b_2_default>; 26062306a36Sopenharmony_ci pinctrl-1 = <&i2c2_b_2_sleep>; 26162306a36Sopenharmony_ci 26262306a36Sopenharmony_ci imu@68 { 26362306a36Sopenharmony_ci compatible = "invensense,mpu6050"; 26462306a36Sopenharmony_ci reg = <0x68>; 26562306a36Sopenharmony_ci 26662306a36Sopenharmony_ci /* GPIO206 (ACC_INT) */ 26762306a36Sopenharmony_ci interrupt-parent = <&gpio6>; 26862306a36Sopenharmony_ci interrupts = <14 IRQ_TYPE_EDGE_RISING>; 26962306a36Sopenharmony_ci 27062306a36Sopenharmony_ci mount-matrix = "0", "1", "0", 27162306a36Sopenharmony_ci "-1", "0", "0", 27262306a36Sopenharmony_ci "0", "0", "1"; 27362306a36Sopenharmony_ci 27462306a36Sopenharmony_ci vdd-supply = <&ab8500_ldo_aux1_reg>; 27562306a36Sopenharmony_ci vddio-supply = <&ab8500_ldo_aux8_reg>; 27662306a36Sopenharmony_ci 27762306a36Sopenharmony_ci pinctrl-names = "default"; 27862306a36Sopenharmony_ci pinctrl-0 = <&imu_default>; 27962306a36Sopenharmony_ci }; 28062306a36Sopenharmony_ci }; 28162306a36Sopenharmony_ci 28262306a36Sopenharmony_ci i2c@80110000 { 28362306a36Sopenharmony_ci status = "okay"; 28462306a36Sopenharmony_ci 28562306a36Sopenharmony_ci pinctrl-names = "default", "sleep"; 28662306a36Sopenharmony_ci pinctrl-0 = <&i2c3_c_2_default>; 28762306a36Sopenharmony_ci pinctrl-1 = <&i2c3_c_2_sleep>; 28862306a36Sopenharmony_ci 28962306a36Sopenharmony_ci touchscreen@4a { 29062306a36Sopenharmony_ci compatible = "atmel,maxtouch"; 29162306a36Sopenharmony_ci reg = <0x4a>; 29262306a36Sopenharmony_ci 29362306a36Sopenharmony_ci /* GPIO218 (TSP_INT_1V8) */ 29462306a36Sopenharmony_ci interrupt-parent = <&gpio6>; 29562306a36Sopenharmony_ci interrupts = <26 IRQ_TYPE_EDGE_FALLING>; 29662306a36Sopenharmony_ci 29762306a36Sopenharmony_ci /* VDDA is "analog supply", 2.57-3.47 V */ 29862306a36Sopenharmony_ci vdda-supply = <&ab8500_ldo_aux2_reg>; 29962306a36Sopenharmony_ci /* VDD is "digital supply" 1.71-3.47V */ 30062306a36Sopenharmony_ci vdd-supply = <&ab8500_ldo_aux5_reg>; 30162306a36Sopenharmony_ci 30262306a36Sopenharmony_ci pinctrl-names = "default"; 30362306a36Sopenharmony_ci pinctrl-0 = <&tsp_default>; 30462306a36Sopenharmony_ci }; 30562306a36Sopenharmony_ci }; 30662306a36Sopenharmony_ci 30762306a36Sopenharmony_ci prcmu@80157000 { 30862306a36Sopenharmony_ci ab8505 { 30962306a36Sopenharmony_ci phy { 31062306a36Sopenharmony_ci pinctrl-names = "default", "sleep"; 31162306a36Sopenharmony_ci pinctrl-0 = <&usb_a_1_default>; 31262306a36Sopenharmony_ci pinctrl-1 = <&usb_a_1_sleep>; 31362306a36Sopenharmony_ci }; 31462306a36Sopenharmony_ci 31562306a36Sopenharmony_ci ab8500_fg { 31662306a36Sopenharmony_ci line-impedance-micro-ohms = <36000>; 31762306a36Sopenharmony_ci }; 31862306a36Sopenharmony_ci 31962306a36Sopenharmony_ci regulator { 32062306a36Sopenharmony_ci ab8500_ldo_aux1 { 32162306a36Sopenharmony_ci regulator-name = "sensor_3v"; 32262306a36Sopenharmony_ci regulator-min-microvolt = <3000000>; 32362306a36Sopenharmony_ci regulator-max-microvolt = <3000000>; 32462306a36Sopenharmony_ci }; 32562306a36Sopenharmony_ci 32662306a36Sopenharmony_ci ab8500_ldo_aux2 { 32762306a36Sopenharmony_ci regulator-name = "vreg_tsp_a3v3"; 32862306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 32962306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 33062306a36Sopenharmony_ci }; 33162306a36Sopenharmony_ci 33262306a36Sopenharmony_ci ab8500_ldo_aux3 { 33362306a36Sopenharmony_ci regulator-name = "vdd_tf_2v91"; 33462306a36Sopenharmony_ci }; 33562306a36Sopenharmony_ci 33662306a36Sopenharmony_ci ab8500_ldo_aux4 { 33762306a36Sopenharmony_ci regulator-name = "key_led_3.3v"; 33862306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 33962306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 34062306a36Sopenharmony_ci }; 34162306a36Sopenharmony_ci 34262306a36Sopenharmony_ci ab8500_ldo_aux5 { 34362306a36Sopenharmony_ci regulator-name = "vreg_tsp_1v8"; 34462306a36Sopenharmony_ci regulator-min-microvolt = <1800000>; 34562306a36Sopenharmony_ci regulator-max-microvolt = <1800000>; 34662306a36Sopenharmony_ci }; 34762306a36Sopenharmony_ci 34862306a36Sopenharmony_ci ab8500_ldo_aux6 { 34962306a36Sopenharmony_ci regulator-name = "touch_key_2.2v"; 35062306a36Sopenharmony_ci regulator-min-microvolt = <2200000>; 35162306a36Sopenharmony_ci regulator-max-microvolt = <2200000>; 35262306a36Sopenharmony_ci }; 35362306a36Sopenharmony_ci 35462306a36Sopenharmony_ci ab8500_ldo_aux8 { 35562306a36Sopenharmony_ci regulator-name = "sensor_1v8"; 35662306a36Sopenharmony_ci }; 35762306a36Sopenharmony_ci }; 35862306a36Sopenharmony_ci }; 35962306a36Sopenharmony_ci }; 36062306a36Sopenharmony_ci 36162306a36Sopenharmony_ci mcde@a0350000 { 36262306a36Sopenharmony_ci status = "okay"; 36362306a36Sopenharmony_ci pinctrl-names = "default"; 36462306a36Sopenharmony_ci pinctrl-0 = <&dsi_default_mode>; 36562306a36Sopenharmony_ci 36662306a36Sopenharmony_ci dsi@a0351000 { 36762306a36Sopenharmony_ci panel@0 { 36862306a36Sopenharmony_ci compatible = "samsung,s6e63m0"; 36962306a36Sopenharmony_ci reg = <0>; 37062306a36Sopenharmony_ci max-brightness = <15>; 37162306a36Sopenharmony_ci vdd3-supply = <&panel_reg_3v0>; 37262306a36Sopenharmony_ci vci-supply = <&panel_reg_1v8>; 37362306a36Sopenharmony_ci reset-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>; 37462306a36Sopenharmony_ci /* ESD (electrostatic discharge) detection interrupt */ 37562306a36Sopenharmony_ci interrupt-parent = <&gpio2>; 37662306a36Sopenharmony_ci interrupts = <18 IRQ_TYPE_EDGE_RISING>; 37762306a36Sopenharmony_ci interrupt-names = "esd"; 37862306a36Sopenharmony_ci pinctrl-names = "default"; 37962306a36Sopenharmony_ci pinctrl-0 = <&display_default_mode>; 38062306a36Sopenharmony_ci }; 38162306a36Sopenharmony_ci }; 38262306a36Sopenharmony_ci }; 38362306a36Sopenharmony_ci }; 38462306a36Sopenharmony_ci 38562306a36Sopenharmony_ci gpio-keys { 38662306a36Sopenharmony_ci compatible = "gpio-keys"; 38762306a36Sopenharmony_ci 38862306a36Sopenharmony_ci pinctrl-names = "default"; 38962306a36Sopenharmony_ci pinctrl-0 = <&gpio_keys_default>; 39062306a36Sopenharmony_ci 39162306a36Sopenharmony_ci label = "GPIO Buttons"; 39262306a36Sopenharmony_ci 39362306a36Sopenharmony_ci volume-up { 39462306a36Sopenharmony_ci label = "Volume Up"; 39562306a36Sopenharmony_ci /* GPIO67 (VOL_UP) */ 39662306a36Sopenharmony_ci gpios = <&gpio2 3 GPIO_ACTIVE_LOW>; 39762306a36Sopenharmony_ci linux,code = <KEY_VOLUMEUP>; 39862306a36Sopenharmony_ci }; 39962306a36Sopenharmony_ci 40062306a36Sopenharmony_ci volume-down { 40162306a36Sopenharmony_ci label = "Volume Down"; 40262306a36Sopenharmony_ci /* GPIO92 (VOL_DOWN) */ 40362306a36Sopenharmony_ci gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; 40462306a36Sopenharmony_ci linux,code = <KEY_VOLUMEDOWN>; 40562306a36Sopenharmony_ci }; 40662306a36Sopenharmony_ci 40762306a36Sopenharmony_ci home { 40862306a36Sopenharmony_ci label = "Home"; 40962306a36Sopenharmony_ci /* GPIO91 (HOME_KEY) */ 41062306a36Sopenharmony_ci gpios = <&gpio2 27 GPIO_ACTIVE_LOW>; 41162306a36Sopenharmony_ci linux,code = <KEY_HOMEPAGE>; 41262306a36Sopenharmony_ci }; 41362306a36Sopenharmony_ci }; 41462306a36Sopenharmony_ci 41562306a36Sopenharmony_ci /* Richtek RT8515GQW Flash LED Driver IC */ 41662306a36Sopenharmony_ci flash { 41762306a36Sopenharmony_ci compatible = "richtek,rt8515"; 41862306a36Sopenharmony_ci /* GPIO 140 */ 41962306a36Sopenharmony_ci enf-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>; 42062306a36Sopenharmony_ci /* GPIO 141 */ 42162306a36Sopenharmony_ci ent-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>; 42262306a36Sopenharmony_ci /* 42362306a36Sopenharmony_ci * RFS is 16 kOhm and RTS is 100 kOhm giving 42462306a36Sopenharmony_ci * the flash max current 343mA and torch max 42562306a36Sopenharmony_ci * current 55 mA. 42662306a36Sopenharmony_ci */ 42762306a36Sopenharmony_ci richtek,rfs-ohms = <16000>; 42862306a36Sopenharmony_ci richtek,rts-ohms = <100000>; 42962306a36Sopenharmony_ci pinctrl-names = "default"; 43062306a36Sopenharmony_ci pinctrl-0 = <&gpio_flash_default_mode>; 43162306a36Sopenharmony_ci 43262306a36Sopenharmony_ci led { 43362306a36Sopenharmony_ci function = LED_FUNCTION_FLASH; 43462306a36Sopenharmony_ci color = <LED_COLOR_ID_WHITE>; 43562306a36Sopenharmony_ci flash-max-timeout-us = <250000>; 43662306a36Sopenharmony_ci flash-max-microamp = <343750>; 43762306a36Sopenharmony_ci led-max-microamp = <55000>; 43862306a36Sopenharmony_ci }; 43962306a36Sopenharmony_ci }; 44062306a36Sopenharmony_ci 44162306a36Sopenharmony_ci vibrator { 44262306a36Sopenharmony_ci compatible = "gpio-vibrator"; 44362306a36Sopenharmony_ci /* GPIO195 (MOT_EN) */ 44462306a36Sopenharmony_ci enable-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>; 44562306a36Sopenharmony_ci 44662306a36Sopenharmony_ci pinctrl-names = "default"; 44762306a36Sopenharmony_ci pinctrl-0 = <&vibrator_default>; 44862306a36Sopenharmony_ci }; 44962306a36Sopenharmony_ci 45062306a36Sopenharmony_ci /* External LDO for eMMC */ 45162306a36Sopenharmony_ci vmem_3v3: regulator-vmem { 45262306a36Sopenharmony_ci compatible = "regulator-fixed"; 45362306a36Sopenharmony_ci 45462306a36Sopenharmony_ci regulator-name = "vmem_3v3"; 45562306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 45662306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 45762306a36Sopenharmony_ci regulator-boot-on; 45862306a36Sopenharmony_ci 45962306a36Sopenharmony_ci startup-delay-us = <200>; 46062306a36Sopenharmony_ci 46162306a36Sopenharmony_ci /* GPIO223 (MEM_LDO_EN) */ 46262306a36Sopenharmony_ci gpio = <&gpio6 31 GPIO_ACTIVE_HIGH>; 46362306a36Sopenharmony_ci enable-active-high; 46462306a36Sopenharmony_ci 46562306a36Sopenharmony_ci pinctrl-names = "default"; 46662306a36Sopenharmony_ci pinctrl-0 = <&mem_ldo_default>; 46762306a36Sopenharmony_ci }; 46862306a36Sopenharmony_ci 46962306a36Sopenharmony_ci /* TI TXS0206-29 level translator for 2.9 V */ 47062306a36Sopenharmony_ci sd_level_translator: regulator-sd-level-translator { 47162306a36Sopenharmony_ci compatible = "regulator-fixed"; 47262306a36Sopenharmony_ci 47362306a36Sopenharmony_ci regulator-name = "sd-level-translator"; 47462306a36Sopenharmony_ci regulator-min-microvolt = <2900000>; 47562306a36Sopenharmony_ci regulator-max-microvolt = <2900000>; 47662306a36Sopenharmony_ci 47762306a36Sopenharmony_ci startup-delay-us = <200>; 47862306a36Sopenharmony_ci 47962306a36Sopenharmony_ci /* GPIO87 (TXS0206-29_EN) */ 48062306a36Sopenharmony_ci gpios = <&gpio2 23 GPIO_ACTIVE_HIGH>; 48162306a36Sopenharmony_ci enable-active-high; 48262306a36Sopenharmony_ci 48362306a36Sopenharmony_ci pinctrl-names = "default"; 48462306a36Sopenharmony_ci pinctrl-0 = <&sd_level_translator_default>; 48562306a36Sopenharmony_ci }; 48662306a36Sopenharmony_ci 48762306a36Sopenharmony_ci /* 48862306a36Sopenharmony_ci * WL_REG_ON takes WLAN out of reset and enables the internal regulators. 48962306a36Sopenharmony_ci * The voltage specified here is only used to determine the OCR mask, 49062306a36Sopenharmony_ci * the BCM chip is actually connected directly to VBAT. 49162306a36Sopenharmony_ci */ 49262306a36Sopenharmony_ci wl_reg_on: regulator-wl-reg-on { 49362306a36Sopenharmony_ci compatible = "regulator-fixed"; 49462306a36Sopenharmony_ci 49562306a36Sopenharmony_ci regulator-name = "wl-reg-on"; 49662306a36Sopenharmony_ci regulator-min-microvolt = <3000000>; 49762306a36Sopenharmony_ci regulator-max-microvolt = <3000000>; 49862306a36Sopenharmony_ci 49962306a36Sopenharmony_ci startup-delay-us = <100000>; 50062306a36Sopenharmony_ci 50162306a36Sopenharmony_ci /* GPIO215 (WLAN_EN) */ 50262306a36Sopenharmony_ci gpio = <&gpio6 23 GPIO_ACTIVE_HIGH>; 50362306a36Sopenharmony_ci enable-active-high; 50462306a36Sopenharmony_ci 50562306a36Sopenharmony_ci pinctrl-names = "default"; 50662306a36Sopenharmony_ci pinctrl-0 = <&wlan_en_default>; 50762306a36Sopenharmony_ci }; 50862306a36Sopenharmony_ci 50962306a36Sopenharmony_ci /* MIC5366 GPIO-controlled regulator */ 51062306a36Sopenharmony_ci panel_reg_1v8: regulator-panel-1v8 { 51162306a36Sopenharmony_ci compatible = "regulator-fixed"; 51262306a36Sopenharmony_ci 51362306a36Sopenharmony_ci regulator-name = "panel-fixed-supply"; 51462306a36Sopenharmony_ci regulator-min-microvolt = <1800000>; 51562306a36Sopenharmony_ci regulator-max-microvolt = <1800000>; 51662306a36Sopenharmony_ci /* GPIO219 */ 51762306a36Sopenharmony_ci gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>; 51862306a36Sopenharmony_ci 51962306a36Sopenharmony_ci startup-delay-us = <200>; 52062306a36Sopenharmony_ci enable-active-high; 52162306a36Sopenharmony_ci 52262306a36Sopenharmony_ci pinctrl-names = "default"; 52362306a36Sopenharmony_ci pinctrl-0 = <&panel_reg_default_mode>; 52462306a36Sopenharmony_ci }; 52562306a36Sopenharmony_ci 52662306a36Sopenharmony_ci /* MIC5366 GPIO-controlled regulator */ 52762306a36Sopenharmony_ci panel_reg_3v0: regulator-panel-3v0 { 52862306a36Sopenharmony_ci compatible = "regulator-fixed"; 52962306a36Sopenharmony_ci 53062306a36Sopenharmony_ci regulator-name = "panel-fixed-supply"; 53162306a36Sopenharmony_ci regulator-min-microvolt = <3000000>; 53262306a36Sopenharmony_ci regulator-max-microvolt = <3000000>; 53362306a36Sopenharmony_ci /* GPIO219 */ 53462306a36Sopenharmony_ci gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>; 53562306a36Sopenharmony_ci 53662306a36Sopenharmony_ci startup-delay-us = <200>; 53762306a36Sopenharmony_ci enable-active-high; 53862306a36Sopenharmony_ci 53962306a36Sopenharmony_ci pinctrl-names = "default"; 54062306a36Sopenharmony_ci pinctrl-0 = <&panel_reg_default_mode>; 54162306a36Sopenharmony_ci }; 54262306a36Sopenharmony_ci}; 54362306a36Sopenharmony_ci 54462306a36Sopenharmony_ci&pinctrl { 54562306a36Sopenharmony_ci gpio-keys { 54662306a36Sopenharmony_ci gpio_keys_default: gpio_keys_default { 54762306a36Sopenharmony_ci golden_cfg1 { 54862306a36Sopenharmony_ci pins = "GPIO67", /* VOL_UP */ 54962306a36Sopenharmony_ci "GPIO91", /* HOME_KEY */ 55062306a36Sopenharmony_ci "GPIO92"; /* VOL_DOWN */ 55162306a36Sopenharmony_ci ste,config = <&gpio_in_pu>; 55262306a36Sopenharmony_ci }; 55362306a36Sopenharmony_ci }; 55462306a36Sopenharmony_ci }; 55562306a36Sopenharmony_ci 55662306a36Sopenharmony_ci i2c-gpio-0 { 55762306a36Sopenharmony_ci i2c_gpio_0_default: i2c_gpio_0 { 55862306a36Sopenharmony_ci golden_cfg1 { 55962306a36Sopenharmony_ci pins = "GPIO77", /* TOUCHKEY_SCL */ 56062306a36Sopenharmony_ci "GPIO78"; /* TOUCHKEY_SDA */ 56162306a36Sopenharmony_ci ste,config = <&gpio_in_nopull>; 56262306a36Sopenharmony_ci }; 56362306a36Sopenharmony_ci }; 56462306a36Sopenharmony_ci }; 56562306a36Sopenharmony_ci 56662306a36Sopenharmony_ci flash { 56762306a36Sopenharmony_ci gpio_flash_default_mode: flash_default { 56862306a36Sopenharmony_ci golden_cfg1 { 56962306a36Sopenharmony_ci pins = "GPIO140_B11", "GPIO141_C12"; 57062306a36Sopenharmony_ci ste,config = <&gpio_out_lo>; 57162306a36Sopenharmony_ci }; 57262306a36Sopenharmony_ci }; 57362306a36Sopenharmony_ci }; 57462306a36Sopenharmony_ci 57562306a36Sopenharmony_ci i2c-gpio-1 { 57662306a36Sopenharmony_ci i2c_gpio_1_default: i2c_gpio_1 { 57762306a36Sopenharmony_ci golden_cfg1 { 57862306a36Sopenharmony_ci pins = "GPIO151", /* COMP_SCL */ 57962306a36Sopenharmony_ci "GPIO152"; /* COMP_SDA */ 58062306a36Sopenharmony_ci ste,config = <&gpio_in_nopull>; 58162306a36Sopenharmony_ci }; 58262306a36Sopenharmony_ci }; 58362306a36Sopenharmony_ci }; 58462306a36Sopenharmony_ci 58562306a36Sopenharmony_ci touchkey { 58662306a36Sopenharmony_ci touchkey_default: touchkey_default { 58762306a36Sopenharmony_ci golden_cfg1 { 58862306a36Sopenharmony_ci pins = "GPIO79"; /* TOUCHKEY_INT */ 58962306a36Sopenharmony_ci ste,config = <&gpio_in_nopull>; 59062306a36Sopenharmony_ci }; 59162306a36Sopenharmony_ci }; 59262306a36Sopenharmony_ci }; 59362306a36Sopenharmony_ci 59462306a36Sopenharmony_ci sdi0 { 59562306a36Sopenharmony_ci sd_level_translator_default: sd_level_translator_default { 59662306a36Sopenharmony_ci golden_cfg1 { 59762306a36Sopenharmony_ci pins = "GPIO87_B3"; /* TXS0206-29_EN */ 59862306a36Sopenharmony_ci ste,config = <&gpio_out_lo>; 59962306a36Sopenharmony_ci }; 60062306a36Sopenharmony_ci }; 60162306a36Sopenharmony_ci }; 60262306a36Sopenharmony_ci 60362306a36Sopenharmony_ci sdi2 { 60462306a36Sopenharmony_ci mem_ldo_default: mem_ldo_default { 60562306a36Sopenharmony_ci golden_cfg1 { 60662306a36Sopenharmony_ci pins = "GPIO223_AH9"; /* MEM_LDO_EN */ 60762306a36Sopenharmony_ci ste,config = <&gpio_out_hi>; 60862306a36Sopenharmony_ci }; 60962306a36Sopenharmony_ci }; 61062306a36Sopenharmony_ci }; 61162306a36Sopenharmony_ci 61262306a36Sopenharmony_ci mcde { 61362306a36Sopenharmony_ci dsi_default_mode: dsi_default { 61462306a36Sopenharmony_ci default_mux1 { 61562306a36Sopenharmony_ci /* Mux in VSI0 used for DSI TE */ 61662306a36Sopenharmony_ci function = "lcd"; 61762306a36Sopenharmony_ci groups = 61862306a36Sopenharmony_ci "lcdvsi0_a_1"; /* VSI0 for LCD */ 61962306a36Sopenharmony_ci }; 62062306a36Sopenharmony_ci default_cfg1 { 62162306a36Sopenharmony_ci pins = 62262306a36Sopenharmony_ci "GPIO68_E1"; /* VSI0 */ 62362306a36Sopenharmony_ci ste,config = <&in_nopull>; 62462306a36Sopenharmony_ci }; 62562306a36Sopenharmony_ci }; 62662306a36Sopenharmony_ci }; 62762306a36Sopenharmony_ci 62862306a36Sopenharmony_ci display { 62962306a36Sopenharmony_ci display_default_mode: display_default { 63062306a36Sopenharmony_ci golden_cfg1 { 63162306a36Sopenharmony_ci pins = "GPIO139_C9"; /* MIPI_DSI0_RESET_N */ 63262306a36Sopenharmony_ci ste,config = <&gpio_out_lo>; 63362306a36Sopenharmony_ci }; 63462306a36Sopenharmony_ci golden_cfg2 { 63562306a36Sopenharmony_ci pins = "GPIO82_C1"; /* LDI_ESD_DET */ 63662306a36Sopenharmony_ci ste,config = <&gpio_in_pu>; 63762306a36Sopenharmony_ci }; 63862306a36Sopenharmony_ci }; 63962306a36Sopenharmony_ci panel_reg_default_mode: panel_reg_default { 64062306a36Sopenharmony_ci golden_cfg1 { 64162306a36Sopenharmony_ci pins = "GPIO219_AG10"; /* LCD_PWR_EN */ 64262306a36Sopenharmony_ci ste,config = <&gpio_out_lo>; 64362306a36Sopenharmony_ci }; 64462306a36Sopenharmony_ci }; 64562306a36Sopenharmony_ci }; 64662306a36Sopenharmony_ci 64762306a36Sopenharmony_ci proximity { 64862306a36Sopenharmony_ci proximity_default: proximity_default { 64962306a36Sopenharmony_ci golden_cfg1 { 65062306a36Sopenharmony_ci pins = "GPIO146_D13"; /* PS_INT */ 65162306a36Sopenharmony_ci ste,config = <&gpio_in_nopull>; 65262306a36Sopenharmony_ci }; 65362306a36Sopenharmony_ci }; 65462306a36Sopenharmony_ci }; 65562306a36Sopenharmony_ci 65662306a36Sopenharmony_ci imu { 65762306a36Sopenharmony_ci imu_default: imu_default { 65862306a36Sopenharmony_ci golden_cfg1 { 65962306a36Sopenharmony_ci pins = "GPIO206_AG24"; /* ACC_INT */ 66062306a36Sopenharmony_ci ste,config = <&gpio_in_pd>; 66162306a36Sopenharmony_ci }; 66262306a36Sopenharmony_ci }; 66362306a36Sopenharmony_ci }; 66462306a36Sopenharmony_ci 66562306a36Sopenharmony_ci tsp { 66662306a36Sopenharmony_ci tsp_default: tsp_default { 66762306a36Sopenharmony_ci golden_cfg1 { 66862306a36Sopenharmony_ci pins = "GPIO218_AH11"; /* TSP_INT_1V8 */ 66962306a36Sopenharmony_ci ste,config = <&gpio_in_nopull>; 67062306a36Sopenharmony_ci }; 67162306a36Sopenharmony_ci }; 67262306a36Sopenharmony_ci }; 67362306a36Sopenharmony_ci 67462306a36Sopenharmony_ci wlan { 67562306a36Sopenharmony_ci wlan_default: wlan_default { 67662306a36Sopenharmony_ci golden_cfg1 { 67762306a36Sopenharmony_ci pins = "GPIO216_AG12"; /* WLAN_HOST_WAKE */ 67862306a36Sopenharmony_ci ste,config = <&gpio_in_pd>; 67962306a36Sopenharmony_ci }; 68062306a36Sopenharmony_ci }; 68162306a36Sopenharmony_ci 68262306a36Sopenharmony_ci wlan_en_default: wlan_en_default { 68362306a36Sopenharmony_ci golden_cfg1 { 68462306a36Sopenharmony_ci pins = "GPIO215_AH13"; /* WLAN_EN */ 68562306a36Sopenharmony_ci ste,config = <&gpio_out_lo>; 68662306a36Sopenharmony_ci }; 68762306a36Sopenharmony_ci }; 68862306a36Sopenharmony_ci }; 68962306a36Sopenharmony_ci 69062306a36Sopenharmony_ci bluetooth { 69162306a36Sopenharmony_ci bluetooth_default: bluetooth_default { 69262306a36Sopenharmony_ci golden_cfg1 { 69362306a36Sopenharmony_ci pins = "GPIO199_AH23", /* BT_WAKE */ 69462306a36Sopenharmony_ci "GPIO222_AJ9"; /* BT_VREG_ON */ 69562306a36Sopenharmony_ci ste,config = <&gpio_out_lo>; 69662306a36Sopenharmony_ci }; 69762306a36Sopenharmony_ci golden_cfg2 { 69862306a36Sopenharmony_ci pins = "GPIO97_D9"; /* BT_HOST_WAKE */ 69962306a36Sopenharmony_ci ste,config = <&gpio_in_nopull>; 70062306a36Sopenharmony_ci }; 70162306a36Sopenharmony_ci }; 70262306a36Sopenharmony_ci }; 70362306a36Sopenharmony_ci 70462306a36Sopenharmony_ci vibrator { 70562306a36Sopenharmony_ci vibrator_default: vibrator_default { 70662306a36Sopenharmony_ci golden_cfg1 { 70762306a36Sopenharmony_ci pins = "GPIO195_AG28"; /* MOT_EN */ 70862306a36Sopenharmony_ci ste,config = <&gpio_out_lo>; 70962306a36Sopenharmony_ci }; 71062306a36Sopenharmony_ci }; 71162306a36Sopenharmony_ci }; 71262306a36Sopenharmony_ci}; 71362306a36Sopenharmony_ci 71462306a36Sopenharmony_ci&ab8505_gpio { 71562306a36Sopenharmony_ci /* Hog a few default settings */ 71662306a36Sopenharmony_ci pinctrl-names = "default"; 71762306a36Sopenharmony_ci pinctrl-0 = <&gpio_default>; 71862306a36Sopenharmony_ci 71962306a36Sopenharmony_ci gpio { 72062306a36Sopenharmony_ci gpio_default: gpio_default { 72162306a36Sopenharmony_ci golden_mux { 72262306a36Sopenharmony_ci /* Change unused pins to GPIO mode */ 72362306a36Sopenharmony_ci function = "gpio"; 72462306a36Sopenharmony_ci groups = "gpio3_a_1", /* default: SysClkReq4 */ 72562306a36Sopenharmony_ci "gpio14_a_1"; /* default: PWMOut1 */ 72662306a36Sopenharmony_ci }; 72762306a36Sopenharmony_ci golden_cfg1 { 72862306a36Sopenharmony_ci pins = "GPIO11_B17", "GPIO13_D17", "GPIO50_L4"; 72962306a36Sopenharmony_ci bias-disable; 73062306a36Sopenharmony_ci }; 73162306a36Sopenharmony_ci }; 73262306a36Sopenharmony_ci }; 73362306a36Sopenharmony_ci}; 734