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