162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Device Tree for the TVK1281618 R2 user interface board (UIB) 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h> 762306a36Sopenharmony_ci#include <dt-bindings/input/input.h> 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci/ { 1062306a36Sopenharmony_ci gpio_keys { 1162306a36Sopenharmony_ci compatible = "gpio-keys"; 1262306a36Sopenharmony_ci #address-cells = <1>; 1362306a36Sopenharmony_ci #size-cells = <0>; 1462306a36Sopenharmony_ci vdd-supply = <&ab8500_ldo_aux1_reg>; 1562306a36Sopenharmony_ci pinctrl-names = "default"; 1662306a36Sopenharmony_ci pinctrl-0 = <&prox_tvk_mode>, <&hall_tvk_mode>; 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci button@139 { 1962306a36Sopenharmony_ci /* Proximity sensor */ 2062306a36Sopenharmony_ci gpios = <&gpio6 25 GPIO_ACTIVE_HIGH>; 2162306a36Sopenharmony_ci linux,code = <11>; /* SW_FRONT_PROXIMITY */ 2262306a36Sopenharmony_ci label = "SFH7741 Proximity Sensor"; 2362306a36Sopenharmony_ci }; 2462306a36Sopenharmony_ci button@145 { 2562306a36Sopenharmony_ci /* Hall sensor */ 2662306a36Sopenharmony_ci gpios = <&gpio4 17 GPIO_ACTIVE_HIGH>; 2762306a36Sopenharmony_ci linux,code = <0>; /* SW_LID */ 2862306a36Sopenharmony_ci label = "HED54XXU11 Hall Effect Sensor"; 2962306a36Sopenharmony_ci }; 3062306a36Sopenharmony_ci }; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci soc { 3362306a36Sopenharmony_ci i2c@80004000 { 3462306a36Sopenharmony_ci tc35893@44 { 3562306a36Sopenharmony_ci compatible = "toshiba,tc35893"; 3662306a36Sopenharmony_ci reg = <0x44>; 3762306a36Sopenharmony_ci interrupt-parent = <&gpio6>; 3862306a36Sopenharmony_ci interrupts = <26 IRQ_TYPE_EDGE_RISING>; 3962306a36Sopenharmony_ci pinctrl-names = "default"; 4062306a36Sopenharmony_ci pinctrl-0 = <&tc35893_tvk_mode>; 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci interrupt-controller; 4362306a36Sopenharmony_ci #interrupt-cells = <1>; 4462306a36Sopenharmony_ci status = "disabled"; 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci tc3589x_gpio { 4762306a36Sopenharmony_ci compatible = "toshiba,tc3589x-gpio"; 4862306a36Sopenharmony_ci interrupts = <0>; 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci interrupt-controller; 5162306a36Sopenharmony_ci #interrupt-cells = <2>; 5262306a36Sopenharmony_ci gpio-controller; 5362306a36Sopenharmony_ci #gpio-cells = <2>; 5462306a36Sopenharmony_ci }; 5562306a36Sopenharmony_ci tc3589x_keypad { 5662306a36Sopenharmony_ci compatible = "toshiba,tc3589x-keypad"; 5762306a36Sopenharmony_ci interrupts = <6>; 5862306a36Sopenharmony_ci debounce-delay-ms = <4>; 5962306a36Sopenharmony_ci keypad,num-columns = <8>; 6062306a36Sopenharmony_ci keypad,num-rows = <8>; 6162306a36Sopenharmony_ci linux,no-autorepeat; 6262306a36Sopenharmony_ci wakeup-source; 6362306a36Sopenharmony_ci linux,keymap = <MATRIX_KEY(3, 1, KEY_END)>, 6462306a36Sopenharmony_ci <MATRIX_KEY(4, 1, KEY_HOME)>, 6562306a36Sopenharmony_ci <MATRIX_KEY(6, 4, KEY_VOLUMEDOWN)>, 6662306a36Sopenharmony_ci <MATRIX_KEY(4, 2, KEY_EMAIL)>, 6762306a36Sopenharmony_ci <MATRIX_KEY(3, 3, KEY_RIGHT)>, 6862306a36Sopenharmony_ci <MATRIX_KEY(2, 5, KEY_BACKSPACE)>, 6962306a36Sopenharmony_ci <MATRIX_KEY(6, 7, KEY_MENU)>, 7062306a36Sopenharmony_ci <MATRIX_KEY(5, 0, KEY_ENTER)>, 7162306a36Sopenharmony_ci <MATRIX_KEY(4, 3, KEY_0)>, 7262306a36Sopenharmony_ci <MATRIX_KEY(3, 4, KEY_DOT)>, 7362306a36Sopenharmony_ci <MATRIX_KEY(5, 2, KEY_UP)>, 7462306a36Sopenharmony_ci <MATRIX_KEY(3, 5, KEY_DOWN)>, 7562306a36Sopenharmony_ci <MATRIX_KEY(4, 5, KEY_SEND)>, 7662306a36Sopenharmony_ci <MATRIX_KEY(0, 5, KEY_BACK)>, 7762306a36Sopenharmony_ci <MATRIX_KEY(6, 2, KEY_VOLUMEUP)>, 7862306a36Sopenharmony_ci <MATRIX_KEY(1, 3, KEY_SPACE)>, 7962306a36Sopenharmony_ci <MATRIX_KEY(7, 6, KEY_LEFT)>, 8062306a36Sopenharmony_ci <MATRIX_KEY(5, 5, KEY_SEARCH)>; 8162306a36Sopenharmony_ci }; 8262306a36Sopenharmony_ci }; 8362306a36Sopenharmony_ci }; 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci i2c@80128000 { 8662306a36Sopenharmony_ci accelerometer@18 { 8762306a36Sopenharmony_ci /* Accelerometer */ 8862306a36Sopenharmony_ci compatible = "st,lsm303dlh-accel"; 8962306a36Sopenharmony_ci st,drdy-int-pin = <1>; 9062306a36Sopenharmony_ci drive-open-drain; 9162306a36Sopenharmony_ci reg = <0x18>; 9262306a36Sopenharmony_ci vdd-supply = <&ab8500_ldo_aux1_reg>; 9362306a36Sopenharmony_ci vddio-supply = <&db8500_vsmps2_reg>; 9462306a36Sopenharmony_ci pinctrl-names = "default"; 9562306a36Sopenharmony_ci pinctrl-0 = <&accel_tvk_mode>; 9662306a36Sopenharmony_ci /* 9762306a36Sopenharmony_ci * These interrupts cannot be used: the other component 9862306a36Sopenharmony_ci * ST-Micro L3D4200D gyro that is connected to the same lines 9962306a36Sopenharmony_ci * cannot set its DRDY line to open drain, so it cannot be 10062306a36Sopenharmony_ci * shared with other peripherals. The should be defined for 10162306a36Sopenharmony_ci * the falling edge if they could be wired together. 10262306a36Sopenharmony_ci * 10362306a36Sopenharmony_ci * interrupts-extended = 10462306a36Sopenharmony_ci * <&gpio1 0 IRQ_TYPE_EDGE_FALLING>, 10562306a36Sopenharmony_ci * <&gpio2 19 IRQ_TYPE_EDGE_FALLING>; 10662306a36Sopenharmony_ci */ 10762306a36Sopenharmony_ci mount-matrix = "0", "1", "0", 10862306a36Sopenharmony_ci "1", "0", "0", 10962306a36Sopenharmony_ci "0", "0", "-1"; 11062306a36Sopenharmony_ci }; 11162306a36Sopenharmony_ci magnetometer@1e { 11262306a36Sopenharmony_ci /* Magnetometer */ 11362306a36Sopenharmony_ci compatible = "st,lsm303dlh-magn"; 11462306a36Sopenharmony_ci reg = <0x1e>; 11562306a36Sopenharmony_ci vdd-supply = <&ab8500_ldo_aux1_reg>; 11662306a36Sopenharmony_ci vddio-supply = <&db8500_vsmps2_reg>; 11762306a36Sopenharmony_ci /* 11862306a36Sopenharmony_ci * These interrupts cannot be used: the other component 11962306a36Sopenharmony_ci * ST-Micro L3D4200D gyro that is connected to the same lines 12062306a36Sopenharmony_ci * cannot set its DRDY line to open drain, so it cannot be 12162306a36Sopenharmony_ci * shared with other peripherals. The should be defined for 12262306a36Sopenharmony_ci * the falling edge if they could be wired together. 12362306a36Sopenharmony_ci * 12462306a36Sopenharmony_ci * interrupts-extended = 12562306a36Sopenharmony_ci * <&gpio1 0 IRQ_TYPE_EDGE_FALLING>, 12662306a36Sopenharmony_ci * <&gpio2 19 IRQ_TYPE_EDGE_FALLING>; 12762306a36Sopenharmony_ci */ 12862306a36Sopenharmony_ci }; 12962306a36Sopenharmony_ci accelerometer@1c { 13062306a36Sopenharmony_ci /* Accelerometer */ 13162306a36Sopenharmony_ci compatible = "st,lis331dl-accel"; 13262306a36Sopenharmony_ci st,drdy-int-pin = <1>; 13362306a36Sopenharmony_ci reg = <0x1c>; 13462306a36Sopenharmony_ci vdd-supply = <&ab8500_ldo_aux1_reg>; 13562306a36Sopenharmony_ci vddio-supply = <&db8500_vsmps2_reg>; 13662306a36Sopenharmony_ci pinctrl-names = "default"; 13762306a36Sopenharmony_ci pinctrl-0 = <&accel_tvk_mode>; 13862306a36Sopenharmony_ci interrupt-parent = <&gpio2>; 13962306a36Sopenharmony_ci /* INT2 would need to be open drain */ 14062306a36Sopenharmony_ci interrupts = <18 IRQ_TYPE_EDGE_RISING>, 14162306a36Sopenharmony_ci <19 IRQ_TYPE_EDGE_RISING>; 14262306a36Sopenharmony_ci mount-matrix = "0", "-1", "0", 14362306a36Sopenharmony_ci "-1", "0", "0", 14462306a36Sopenharmony_ci "0", "0", "-1"; 14562306a36Sopenharmony_ci }; 14662306a36Sopenharmony_ci magnetometer@f { 14762306a36Sopenharmony_ci /* Magnetometer */ 14862306a36Sopenharmony_ci compatible = "asahi-kasei,ak8974"; 14962306a36Sopenharmony_ci reg = <0x0f>; 15062306a36Sopenharmony_ci avdd-supply = <&ab8500_ldo_aux1_reg>; 15162306a36Sopenharmony_ci dvdd-supply = <&db8500_vsmps2_reg>; 15262306a36Sopenharmony_ci pinctrl-names = "default"; 15362306a36Sopenharmony_ci pinctrl-0 = <&gyro_magn_tvk_mode>; 15462306a36Sopenharmony_ci /* 15562306a36Sopenharmony_ci * These interrupts cannot be used: the other component 15662306a36Sopenharmony_ci * ST-Micro L3D4200D gyro that is connected to the same lines 15762306a36Sopenharmony_ci * cannot set its DRDY line to open drain, so it cannot be 15862306a36Sopenharmony_ci * shared with other peripherals. The should be defined for 15962306a36Sopenharmony_ci * the falling edge if they could be wired together. 16062306a36Sopenharmony_ci * 16162306a36Sopenharmony_ci * interrupts-extended = 16262306a36Sopenharmony_ci * <&gpio1 0 IRQ_TYPE_EDGE_FALLING>, 16362306a36Sopenharmony_ci * <&gpio0 31 IRQ_TYPE_EDGE_FALLING>; 16462306a36Sopenharmony_ci */ 16562306a36Sopenharmony_ci }; 16662306a36Sopenharmony_ci gyroscope@68 { 16762306a36Sopenharmony_ci /* Gyroscope */ 16862306a36Sopenharmony_ci compatible = "st,l3g4200d-gyro"; 16962306a36Sopenharmony_ci st,drdy-int-pin = <2>; 17062306a36Sopenharmony_ci reg = <0x68>; 17162306a36Sopenharmony_ci vdd-supply = <&ab8500_ldo_aux1_reg>; 17262306a36Sopenharmony_ci vddio-supply = <&db8500_vsmps2_reg>; 17362306a36Sopenharmony_ci pinctrl-names = "default"; 17462306a36Sopenharmony_ci pinctrl-0 = <&gyro_magn_tvk_mode>; 17562306a36Sopenharmony_ci interrupts-extended = 17662306a36Sopenharmony_ci <&gpio1 0 IRQ_TYPE_EDGE_RISING>, 17762306a36Sopenharmony_ci <&gpio0 31 IRQ_TYPE_EDGE_RISING>; 17862306a36Sopenharmony_ci }; 17962306a36Sopenharmony_ci pressure@5c { 18062306a36Sopenharmony_ci /* Barometer/pressure sensor */ 18162306a36Sopenharmony_ci compatible = "st,lps001wp-press"; 18262306a36Sopenharmony_ci reg = <0x5c>; 18362306a36Sopenharmony_ci vdd-supply = <&ab8500_ldo_aux1_reg>; 18462306a36Sopenharmony_ci vddio-supply = <&db8500_vsmps2_reg>; 18562306a36Sopenharmony_ci }; 18662306a36Sopenharmony_ci }; 18762306a36Sopenharmony_ci i2c@80110000 { 18862306a36Sopenharmony_ci synaptics@4b { 18962306a36Sopenharmony_ci /* Synaptics RMI4 TM1217 touchscreen */ 19062306a36Sopenharmony_ci compatible = "syna,rmi4-i2c"; 19162306a36Sopenharmony_ci #address-cells = <1>; 19262306a36Sopenharmony_ci #size-cells = <0>; 19362306a36Sopenharmony_ci reg = <0x4b>; 19462306a36Sopenharmony_ci vdd-supply = <&ab8500_ldo_aux1_reg>; 19562306a36Sopenharmony_ci vddio-supply = <&db8500_vsmps2_reg>; 19662306a36Sopenharmony_ci pinctrl-names = "default"; 19762306a36Sopenharmony_ci pinctrl-0 = <&synaptics_tvk_mode>; 19862306a36Sopenharmony_ci interrupt-parent = <&gpio2>; 19962306a36Sopenharmony_ci interrupts = <20 IRQ_TYPE_EDGE_FALLING>; 20062306a36Sopenharmony_ci 20162306a36Sopenharmony_ci rmi4-f01@1 { 20262306a36Sopenharmony_ci reg = <0x1>; 20362306a36Sopenharmony_ci syna,nosleep = <1>; 20462306a36Sopenharmony_ci }; 20562306a36Sopenharmony_ci rmi4-f11@11 { 20662306a36Sopenharmony_ci reg = <0x11>; 20762306a36Sopenharmony_ci syna,sensor-type = <1>; 20862306a36Sopenharmony_ci /* This is a landscape display */ 20962306a36Sopenharmony_ci touchscreen-swapped-x-y; 21062306a36Sopenharmony_ci }; 21162306a36Sopenharmony_ci }; 21262306a36Sopenharmony_ci }; 21362306a36Sopenharmony_ci mcde@a0350000 { 21462306a36Sopenharmony_ci status = "okay"; 21562306a36Sopenharmony_ci 21662306a36Sopenharmony_ci dsi@a0351000 { 21762306a36Sopenharmony_ci panel { 21862306a36Sopenharmony_ci compatible = "samsung,s6d16d0"; 21962306a36Sopenharmony_ci reg = <0>; 22062306a36Sopenharmony_ci vdd1-supply = <&ab8500_ldo_aux1_reg>; 22162306a36Sopenharmony_ci reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>; 22262306a36Sopenharmony_ci }; 22362306a36Sopenharmony_ci }; 22462306a36Sopenharmony_ci }; 22562306a36Sopenharmony_ci pinctrl { 22662306a36Sopenharmony_ci prox { 22762306a36Sopenharmony_ci prox_tvk_mode: prox_tvk { 22862306a36Sopenharmony_ci tvk_cfg { 22962306a36Sopenharmony_ci pins = "GPIO217_AH12"; 23062306a36Sopenharmony_ci ste,config = <&gpio_in_pu>; 23162306a36Sopenharmony_ci }; 23262306a36Sopenharmony_ci }; 23362306a36Sopenharmony_ci }; 23462306a36Sopenharmony_ci hall { 23562306a36Sopenharmony_ci hall_tvk_mode: hall_tvk { 23662306a36Sopenharmony_ci tvk_cfg { 23762306a36Sopenharmony_ci pins = "GPIO145_C13"; 23862306a36Sopenharmony_ci ste,config = <&gpio_in_pu>; 23962306a36Sopenharmony_ci }; 24062306a36Sopenharmony_ci }; 24162306a36Sopenharmony_ci }; 24262306a36Sopenharmony_ci tc35893 { 24362306a36Sopenharmony_ci /* IRQ from the TC35893 */ 24462306a36Sopenharmony_ci tc35893_tvk_mode: tc35893_tvk { 24562306a36Sopenharmony_ci tvk_cfg { 24662306a36Sopenharmony_ci pins = "GPIO218_AH11"; 24762306a36Sopenharmony_ci ste,config = <&gpio_in_pu>; 24862306a36Sopenharmony_ci }; 24962306a36Sopenharmony_ci }; 25062306a36Sopenharmony_ci }; 25162306a36Sopenharmony_ci accelerometer { 25262306a36Sopenharmony_ci accel_tvk_mode: accel_tvk { 25362306a36Sopenharmony_ci /* Accelerometer interrupt lines 1 & 2 */ 25462306a36Sopenharmony_ci tvk_cfg { 25562306a36Sopenharmony_ci pins = "GPIO82_C1", "GPIO83_D3"; 25662306a36Sopenharmony_ci ste,config = <&gpio_in_pd>; 25762306a36Sopenharmony_ci }; 25862306a36Sopenharmony_ci }; 25962306a36Sopenharmony_ci }; 26062306a36Sopenharmony_ci gyroscope { 26162306a36Sopenharmony_ci /* 26262306a36Sopenharmony_ci * These lines are shared between Gyroscope l3g400dh 26362306a36Sopenharmony_ci * and AK8974 magnetometer. 26462306a36Sopenharmony_ci */ 26562306a36Sopenharmony_ci gyro_magn_tvk_mode: gyro_magn_tvk { 26662306a36Sopenharmony_ci /* GPIO 31 used for INT pull down the line */ 26762306a36Sopenharmony_ci tvk_cfg1 { 26862306a36Sopenharmony_ci pins = "GPIO31_V3"; 26962306a36Sopenharmony_ci ste,config = <&gpio_in_pd>; 27062306a36Sopenharmony_ci }; 27162306a36Sopenharmony_ci /* GPIO 32 used for DRDY, pull this down */ 27262306a36Sopenharmony_ci tvk_cfg2 { 27362306a36Sopenharmony_ci pins = "GPIO32_V2"; 27462306a36Sopenharmony_ci ste,config = <&gpio_in_pd>; 27562306a36Sopenharmony_ci }; 27662306a36Sopenharmony_ci }; 27762306a36Sopenharmony_ci }; 27862306a36Sopenharmony_ci synaptics { 27962306a36Sopenharmony_ci synaptics_tvk_mode: synaptics_tvk { 28062306a36Sopenharmony_ci /* Touchscreen uses GPIO 84 */ 28162306a36Sopenharmony_ci tvk_cfg1 { 28262306a36Sopenharmony_ci pins = "GPIO84_C2"; 28362306a36Sopenharmony_ci ste,config = <&gpio_in_pu>; 28462306a36Sopenharmony_ci }; 28562306a36Sopenharmony_ci }; 28662306a36Sopenharmony_ci }; 28762306a36Sopenharmony_ci }; 28862306a36Sopenharmony_ci }; 28962306a36Sopenharmony_ci}; 290