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