1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-or-later 2*724ba675SRob Herring/* 3*724ba675SRob Herring * Device Tree for the TVK1281618 R2 user interface board (UIB) 4*724ba675SRob Herring */ 5*724ba675SRob Herring 6*724ba675SRob Herring#include <dt-bindings/interrupt-controller/irq.h> 7*724ba675SRob Herring#include <dt-bindings/input/input.h> 8*724ba675SRob Herring 9*724ba675SRob Herring/ { 10*724ba675SRob Herring gpio_keys { 11*724ba675SRob Herring compatible = "gpio-keys"; 12*724ba675SRob Herring #address-cells = <1>; 13*724ba675SRob Herring #size-cells = <0>; 14*724ba675SRob Herring vdd-supply = <&ab8500_ldo_aux1_reg>; 15*724ba675SRob Herring pinctrl-names = "default"; 16*724ba675SRob Herring pinctrl-0 = <&prox_tvk_mode>, <&hall_tvk_mode>; 17*724ba675SRob Herring 18*724ba675SRob Herring button@139 { 19*724ba675SRob Herring /* Proximity sensor */ 20*724ba675SRob Herring gpios = <&gpio6 25 GPIO_ACTIVE_HIGH>; 21*724ba675SRob Herring linux,code = <11>; /* SW_FRONT_PROXIMITY */ 22*724ba675SRob Herring label = "SFH7741 Proximity Sensor"; 23*724ba675SRob Herring }; 24*724ba675SRob Herring button@145 { 25*724ba675SRob Herring /* Hall sensor */ 26*724ba675SRob Herring gpios = <&gpio4 17 GPIO_ACTIVE_HIGH>; 27*724ba675SRob Herring linux,code = <0>; /* SW_LID */ 28*724ba675SRob Herring label = "HED54XXU11 Hall Effect Sensor"; 29*724ba675SRob Herring }; 30*724ba675SRob Herring }; 31*724ba675SRob Herring 32*724ba675SRob Herring soc { 33*724ba675SRob Herring i2c@80004000 { 34*724ba675SRob Herring tc35893@44 { 35*724ba675SRob Herring compatible = "toshiba,tc35893"; 36*724ba675SRob Herring reg = <0x44>; 37*724ba675SRob Herring interrupt-parent = <&gpio6>; 38*724ba675SRob Herring interrupts = <26 IRQ_TYPE_EDGE_RISING>; 39*724ba675SRob Herring pinctrl-names = "default"; 40*724ba675SRob Herring pinctrl-0 = <&tc35893_tvk_mode>; 41*724ba675SRob Herring 42*724ba675SRob Herring interrupt-controller; 43*724ba675SRob Herring #interrupt-cells = <1>; 44*724ba675SRob Herring status = "disabled"; 45*724ba675SRob Herring 46*724ba675SRob Herring tc3589x_gpio { 47*724ba675SRob Herring compatible = "toshiba,tc3589x-gpio"; 48*724ba675SRob Herring interrupts = <0>; 49*724ba675SRob Herring 50*724ba675SRob Herring interrupt-controller; 51*724ba675SRob Herring #interrupt-cells = <2>; 52*724ba675SRob Herring gpio-controller; 53*724ba675SRob Herring #gpio-cells = <2>; 54*724ba675SRob Herring }; 55*724ba675SRob Herring tc3589x_keypad { 56*724ba675SRob Herring compatible = "toshiba,tc3589x-keypad"; 57*724ba675SRob Herring interrupts = <6>; 58*724ba675SRob Herring debounce-delay-ms = <4>; 59*724ba675SRob Herring keypad,num-columns = <8>; 60*724ba675SRob Herring keypad,num-rows = <8>; 61*724ba675SRob Herring linux,no-autorepeat; 62*724ba675SRob Herring wakeup-source; 63*724ba675SRob Herring linux,keymap = <MATRIX_KEY(3, 1, KEY_END)>, 64*724ba675SRob Herring <MATRIX_KEY(4, 1, KEY_HOME)>, 65*724ba675SRob Herring <MATRIX_KEY(6, 4, KEY_VOLUMEDOWN)>, 66*724ba675SRob Herring <MATRIX_KEY(4, 2, KEY_EMAIL)>, 67*724ba675SRob Herring <MATRIX_KEY(3, 3, KEY_RIGHT)>, 68*724ba675SRob Herring <MATRIX_KEY(2, 5, KEY_BACKSPACE)>, 69*724ba675SRob Herring <MATRIX_KEY(6, 7, KEY_MENU)>, 70*724ba675SRob Herring <MATRIX_KEY(5, 0, KEY_ENTER)>, 71*724ba675SRob Herring <MATRIX_KEY(4, 3, KEY_0)>, 72*724ba675SRob Herring <MATRIX_KEY(3, 4, KEY_DOT)>, 73*724ba675SRob Herring <MATRIX_KEY(5, 2, KEY_UP)>, 74*724ba675SRob Herring <MATRIX_KEY(3, 5, KEY_DOWN)>, 75*724ba675SRob Herring <MATRIX_KEY(4, 5, KEY_SEND)>, 76*724ba675SRob Herring <MATRIX_KEY(0, 5, KEY_BACK)>, 77*724ba675SRob Herring <MATRIX_KEY(6, 2, KEY_VOLUMEUP)>, 78*724ba675SRob Herring <MATRIX_KEY(1, 3, KEY_SPACE)>, 79*724ba675SRob Herring <MATRIX_KEY(7, 6, KEY_LEFT)>, 80*724ba675SRob Herring <MATRIX_KEY(5, 5, KEY_SEARCH)>; 81*724ba675SRob Herring }; 82*724ba675SRob Herring }; 83*724ba675SRob Herring }; 84*724ba675SRob Herring 85*724ba675SRob Herring i2c@80128000 { 86*724ba675SRob Herring accelerometer@18 { 87*724ba675SRob Herring /* Accelerometer */ 88*724ba675SRob Herring compatible = "st,lsm303dlh-accel"; 89*724ba675SRob Herring st,drdy-int-pin = <1>; 90*724ba675SRob Herring drive-open-drain; 91*724ba675SRob Herring reg = <0x18>; 92*724ba675SRob Herring vdd-supply = <&ab8500_ldo_aux1_reg>; 93*724ba675SRob Herring vddio-supply = <&db8500_vsmps2_reg>; 94*724ba675SRob Herring pinctrl-names = "default"; 95*724ba675SRob Herring pinctrl-0 = <&accel_tvk_mode>; 96*724ba675SRob Herring /* 97*724ba675SRob Herring * These interrupts cannot be used: the other component 98*724ba675SRob Herring * ST-Micro L3D4200D gyro that is connected to the same lines 99*724ba675SRob Herring * cannot set its DRDY line to open drain, so it cannot be 100*724ba675SRob Herring * shared with other peripherals. The should be defined for 101*724ba675SRob Herring * the falling edge if they could be wired together. 102*724ba675SRob Herring * 103*724ba675SRob Herring * interrupts-extended = 104*724ba675SRob Herring * <&gpio1 0 IRQ_TYPE_EDGE_FALLING>, 105*724ba675SRob Herring * <&gpio2 19 IRQ_TYPE_EDGE_FALLING>; 106*724ba675SRob Herring */ 107*724ba675SRob Herring mount-matrix = "0", "1", "0", 108*724ba675SRob Herring "1", "0", "0", 109*724ba675SRob Herring "0", "0", "-1"; 110*724ba675SRob Herring }; 111*724ba675SRob Herring magnetometer@1e { 112*724ba675SRob Herring /* Magnetometer */ 113*724ba675SRob Herring compatible = "st,lsm303dlh-magn"; 114*724ba675SRob Herring reg = <0x1e>; 115*724ba675SRob Herring vdd-supply = <&ab8500_ldo_aux1_reg>; 116*724ba675SRob Herring vddio-supply = <&db8500_vsmps2_reg>; 117*724ba675SRob Herring /* 118*724ba675SRob Herring * These interrupts cannot be used: the other component 119*724ba675SRob Herring * ST-Micro L3D4200D gyro that is connected to the same lines 120*724ba675SRob Herring * cannot set its DRDY line to open drain, so it cannot be 121*724ba675SRob Herring * shared with other peripherals. The should be defined for 122*724ba675SRob Herring * the falling edge if they could be wired together. 123*724ba675SRob Herring * 124*724ba675SRob Herring * interrupts-extended = 125*724ba675SRob Herring * <&gpio1 0 IRQ_TYPE_EDGE_FALLING>, 126*724ba675SRob Herring * <&gpio2 19 IRQ_TYPE_EDGE_FALLING>; 127*724ba675SRob Herring */ 128*724ba675SRob Herring }; 129*724ba675SRob Herring accelerometer@1c { 130*724ba675SRob Herring /* Accelerometer */ 131*724ba675SRob Herring compatible = "st,lis331dl-accel"; 132*724ba675SRob Herring st,drdy-int-pin = <1>; 133*724ba675SRob Herring reg = <0x1c>; 134*724ba675SRob Herring vdd-supply = <&ab8500_ldo_aux1_reg>; 135*724ba675SRob Herring vddio-supply = <&db8500_vsmps2_reg>; 136*724ba675SRob Herring pinctrl-names = "default"; 137*724ba675SRob Herring pinctrl-0 = <&accel_tvk_mode>; 138*724ba675SRob Herring interrupt-parent = <&gpio2>; 139*724ba675SRob Herring /* INT2 would need to be open drain */ 140*724ba675SRob Herring interrupts = <18 IRQ_TYPE_EDGE_RISING>, 141*724ba675SRob Herring <19 IRQ_TYPE_EDGE_RISING>; 142*724ba675SRob Herring mount-matrix = "0", "-1", "0", 143*724ba675SRob Herring "-1", "0", "0", 144*724ba675SRob Herring "0", "0", "-1"; 145*724ba675SRob Herring }; 146*724ba675SRob Herring magnetometer@f { 147*724ba675SRob Herring /* Magnetometer */ 148*724ba675SRob Herring compatible = "asahi-kasei,ak8974"; 149*724ba675SRob Herring reg = <0x0f>; 150*724ba675SRob Herring avdd-supply = <&ab8500_ldo_aux1_reg>; 151*724ba675SRob Herring dvdd-supply = <&db8500_vsmps2_reg>; 152*724ba675SRob Herring pinctrl-names = "default"; 153*724ba675SRob Herring pinctrl-0 = <&gyro_magn_tvk_mode>; 154*724ba675SRob Herring /* 155*724ba675SRob Herring * These interrupts cannot be used: the other component 156*724ba675SRob Herring * ST-Micro L3D4200D gyro that is connected to the same lines 157*724ba675SRob Herring * cannot set its DRDY line to open drain, so it cannot be 158*724ba675SRob Herring * shared with other peripherals. The should be defined for 159*724ba675SRob Herring * the falling edge if they could be wired together. 160*724ba675SRob Herring * 161*724ba675SRob Herring * interrupts-extended = 162*724ba675SRob Herring * <&gpio1 0 IRQ_TYPE_EDGE_FALLING>, 163*724ba675SRob Herring * <&gpio0 31 IRQ_TYPE_EDGE_FALLING>; 164*724ba675SRob Herring */ 165*724ba675SRob Herring }; 166*724ba675SRob Herring gyroscope@68 { 167*724ba675SRob Herring /* Gyroscope */ 168*724ba675SRob Herring compatible = "st,l3g4200d-gyro"; 169*724ba675SRob Herring st,drdy-int-pin = <2>; 170*724ba675SRob Herring reg = <0x68>; 171*724ba675SRob Herring vdd-supply = <&ab8500_ldo_aux1_reg>; 172*724ba675SRob Herring vddio-supply = <&db8500_vsmps2_reg>; 173*724ba675SRob Herring pinctrl-names = "default"; 174*724ba675SRob Herring pinctrl-0 = <&gyro_magn_tvk_mode>; 175*724ba675SRob Herring interrupts-extended = 176*724ba675SRob Herring <&gpio1 0 IRQ_TYPE_EDGE_RISING>, 177*724ba675SRob Herring <&gpio0 31 IRQ_TYPE_EDGE_RISING>; 178*724ba675SRob Herring }; 179*724ba675SRob Herring pressure@5c { 180*724ba675SRob Herring /* Barometer/pressure sensor */ 181*724ba675SRob Herring compatible = "st,lps001wp-press"; 182*724ba675SRob Herring reg = <0x5c>; 183*724ba675SRob Herring vdd-supply = <&ab8500_ldo_aux1_reg>; 184*724ba675SRob Herring vddio-supply = <&db8500_vsmps2_reg>; 185*724ba675SRob Herring }; 186*724ba675SRob Herring }; 187*724ba675SRob Herring i2c@80110000 { 188*724ba675SRob Herring synaptics@4b { 189*724ba675SRob Herring /* Synaptics RMI4 TM1217 touchscreen */ 190*724ba675SRob Herring compatible = "syna,rmi4-i2c"; 191*724ba675SRob Herring #address-cells = <1>; 192*724ba675SRob Herring #size-cells = <0>; 193*724ba675SRob Herring reg = <0x4b>; 194*724ba675SRob Herring vdd-supply = <&ab8500_ldo_aux1_reg>; 195*724ba675SRob Herring vddio-supply = <&db8500_vsmps2_reg>; 196*724ba675SRob Herring pinctrl-names = "default"; 197*724ba675SRob Herring pinctrl-0 = <&synaptics_tvk_mode>; 198*724ba675SRob Herring interrupt-parent = <&gpio2>; 199*724ba675SRob Herring interrupts = <20 IRQ_TYPE_EDGE_FALLING>; 200*724ba675SRob Herring 201*724ba675SRob Herring rmi4-f01@1 { 202*724ba675SRob Herring reg = <0x1>; 203*724ba675SRob Herring syna,nosleep = <1>; 204*724ba675SRob Herring }; 205*724ba675SRob Herring rmi4-f11@11 { 206*724ba675SRob Herring reg = <0x11>; 207*724ba675SRob Herring syna,sensor-type = <1>; 208*724ba675SRob Herring /* This is a landscape display */ 209*724ba675SRob Herring touchscreen-swapped-x-y; 210*724ba675SRob Herring }; 211*724ba675SRob Herring }; 212*724ba675SRob Herring }; 213*724ba675SRob Herring mcde@a0350000 { 214*724ba675SRob Herring status = "okay"; 215*724ba675SRob Herring 216*724ba675SRob Herring dsi@a0351000 { 217*724ba675SRob Herring panel { 218*724ba675SRob Herring compatible = "samsung,s6d16d0"; 219*724ba675SRob Herring reg = <0>; 220*724ba675SRob Herring vdd1-supply = <&ab8500_ldo_aux1_reg>; 221*724ba675SRob Herring reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>; 222*724ba675SRob Herring }; 223*724ba675SRob Herring }; 224*724ba675SRob Herring }; 225*724ba675SRob Herring pinctrl { 226*724ba675SRob Herring prox { 227*724ba675SRob Herring prox_tvk_mode: prox_tvk { 228*724ba675SRob Herring tvk_cfg { 229*724ba675SRob Herring pins = "GPIO217_AH12"; 230*724ba675SRob Herring ste,config = <&gpio_in_pu>; 231*724ba675SRob Herring }; 232*724ba675SRob Herring }; 233*724ba675SRob Herring }; 234*724ba675SRob Herring hall { 235*724ba675SRob Herring hall_tvk_mode: hall_tvk { 236*724ba675SRob Herring tvk_cfg { 237*724ba675SRob Herring pins = "GPIO145_C13"; 238*724ba675SRob Herring ste,config = <&gpio_in_pu>; 239*724ba675SRob Herring }; 240*724ba675SRob Herring }; 241*724ba675SRob Herring }; 242*724ba675SRob Herring tc35893 { 243*724ba675SRob Herring /* IRQ from the TC35893 */ 244*724ba675SRob Herring tc35893_tvk_mode: tc35893_tvk { 245*724ba675SRob Herring tvk_cfg { 246*724ba675SRob Herring pins = "GPIO218_AH11"; 247*724ba675SRob Herring ste,config = <&gpio_in_pu>; 248*724ba675SRob Herring }; 249*724ba675SRob Herring }; 250*724ba675SRob Herring }; 251*724ba675SRob Herring accelerometer { 252*724ba675SRob Herring accel_tvk_mode: accel_tvk { 253*724ba675SRob Herring /* Accelerometer interrupt lines 1 & 2 */ 254*724ba675SRob Herring tvk_cfg { 255*724ba675SRob Herring pins = "GPIO82_C1", "GPIO83_D3"; 256*724ba675SRob Herring ste,config = <&gpio_in_pd>; 257*724ba675SRob Herring }; 258*724ba675SRob Herring }; 259*724ba675SRob Herring }; 260*724ba675SRob Herring gyroscope { 261*724ba675SRob Herring /* 262*724ba675SRob Herring * These lines are shared between Gyroscope l3g400dh 263*724ba675SRob Herring * and AK8974 magnetometer. 264*724ba675SRob Herring */ 265*724ba675SRob Herring gyro_magn_tvk_mode: gyro_magn_tvk { 266*724ba675SRob Herring /* GPIO 31 used for INT pull down the line */ 267*724ba675SRob Herring tvk_cfg1 { 268*724ba675SRob Herring pins = "GPIO31_V3"; 269*724ba675SRob Herring ste,config = <&gpio_in_pd>; 270*724ba675SRob Herring }; 271*724ba675SRob Herring /* GPIO 32 used for DRDY, pull this down */ 272*724ba675SRob Herring tvk_cfg2 { 273*724ba675SRob Herring pins = "GPIO32_V2"; 274*724ba675SRob Herring ste,config = <&gpio_in_pd>; 275*724ba675SRob Herring }; 276*724ba675SRob Herring }; 277*724ba675SRob Herring }; 278*724ba675SRob Herring synaptics { 279*724ba675SRob Herring synaptics_tvk_mode: synaptics_tvk { 280*724ba675SRob Herring /* Touchscreen uses GPIO 84 */ 281*724ba675SRob Herring tvk_cfg1 { 282*724ba675SRob Herring pins = "GPIO84_C2"; 283*724ba675SRob Herring ste,config = <&gpio_in_pu>; 284*724ba675SRob Herring }; 285*724ba675SRob Herring }; 286*724ba675SRob Herring }; 287*724ba675SRob Herring }; 288*724ba675SRob Herring }; 289*724ba675SRob Herring}; 290