1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0-or-later 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Copyright 2012 ST-Ericsson AB 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h> 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun/ { 9*4882a593Smuzhiyun gpio_keys { 10*4882a593Smuzhiyun compatible = "gpio-keys"; 11*4882a593Smuzhiyun #address-cells = <1>; 12*4882a593Smuzhiyun #size-cells = <0>; 13*4882a593Smuzhiyun vdd-supply = <&ab8500_ldo_aux1_reg>; 14*4882a593Smuzhiyun pinctrl-names = "default"; 15*4882a593Smuzhiyun pinctrl-0 = <&prox_stuib_mode>, <&hall_stuib_mode>; 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun button@139 { 18*4882a593Smuzhiyun /* Proximity sensor */ 19*4882a593Smuzhiyun gpios = <&gpio6 25 GPIO_ACTIVE_HIGH>; 20*4882a593Smuzhiyun linux,code = <11>; /* SW_FRONT_PROXIMITY */ 21*4882a593Smuzhiyun label = "SFH7741 Proximity Sensor"; 22*4882a593Smuzhiyun }; 23*4882a593Smuzhiyun button@145 { 24*4882a593Smuzhiyun /* Hall sensor */ 25*4882a593Smuzhiyun gpios = <&gpio4 17 GPIO_ACTIVE_HIGH>; 26*4882a593Smuzhiyun linux,code = <0>; /* SW_LID */ 27*4882a593Smuzhiyun label = "HED54XXU11 Hall Effect Sensor"; 28*4882a593Smuzhiyun }; 29*4882a593Smuzhiyun }; 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun soc { 32*4882a593Smuzhiyun i2c@80004000 { 33*4882a593Smuzhiyun stmpe1601: stmpe1601@40 { 34*4882a593Smuzhiyun compatible = "st,stmpe1601"; 35*4882a593Smuzhiyun reg = <0x40>; 36*4882a593Smuzhiyun interrupts = <26 IRQ_TYPE_EDGE_FALLING>; 37*4882a593Smuzhiyun interrupt-parent = <&gpio6>; 38*4882a593Smuzhiyun interrupt-controller; 39*4882a593Smuzhiyun vcc-supply = <&db8500_vsmps2_reg>; 40*4882a593Smuzhiyun vio-supply = <&db8500_vsmps2_reg>; 41*4882a593Smuzhiyun pinctrl-names = "default"; 42*4882a593Smuzhiyun pinctrl-0 = <&stmpe_stuib_mode>; 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun wakeup-source; 45*4882a593Smuzhiyun st,autosleep-timeout = <1024>; 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun stmpe_keypad { 48*4882a593Smuzhiyun compatible = "st,stmpe-keypad"; 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun debounce-interval = <64>; 51*4882a593Smuzhiyun st,scan-count = <8>; 52*4882a593Smuzhiyun st,no-autorepeat; 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun linux,keymap = <0x205006b 55*4882a593Smuzhiyun 0x4010074 56*4882a593Smuzhiyun 0x3050072 57*4882a593Smuzhiyun 0x1030004 58*4882a593Smuzhiyun 0x502006a 59*4882a593Smuzhiyun 0x500000a 60*4882a593Smuzhiyun 0x5008b 61*4882a593Smuzhiyun 0x706001c 62*4882a593Smuzhiyun 0x405000b 63*4882a593Smuzhiyun 0x6070003 64*4882a593Smuzhiyun 0x3040067 65*4882a593Smuzhiyun 0x303006c 66*4882a593Smuzhiyun 0x60400e7 67*4882a593Smuzhiyun 0x602009e 68*4882a593Smuzhiyun 0x4020073 69*4882a593Smuzhiyun 0x5050002 70*4882a593Smuzhiyun 0x4030069 71*4882a593Smuzhiyun 0x3020008>; 72*4882a593Smuzhiyun }; 73*4882a593Smuzhiyun }; 74*4882a593Smuzhiyun }; 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun /* Sensors mounted on this board variant */ 77*4882a593Smuzhiyun i2c@80128000 { 78*4882a593Smuzhiyun lis331dl@1c { 79*4882a593Smuzhiyun /* Accelerometer */ 80*4882a593Smuzhiyun compatible = "st,lis331dl-accel"; 81*4882a593Smuzhiyun st,drdy-int-pin = <1>; 82*4882a593Smuzhiyun reg = <0x1c>; 83*4882a593Smuzhiyun vdd-supply = <&ab8500_ldo_aux1_reg>; 84*4882a593Smuzhiyun vddio-supply = <&db8500_vsmps2_reg>; 85*4882a593Smuzhiyun pinctrl-names = "default"; 86*4882a593Smuzhiyun pinctrl-0 = <&accel_stuib_mode>; 87*4882a593Smuzhiyun interrupt-parent = <&gpio2>; 88*4882a593Smuzhiyun interrupts = <18 IRQ_TYPE_EDGE_RISING>, 89*4882a593Smuzhiyun <19 IRQ_TYPE_EDGE_RISING>; 90*4882a593Smuzhiyun }; 91*4882a593Smuzhiyun ak8974@f { 92*4882a593Smuzhiyun /* Magnetometer */ 93*4882a593Smuzhiyun compatible = "asahi-kasei,ak8974"; 94*4882a593Smuzhiyun reg = <0x0f>; 95*4882a593Smuzhiyun vdd-supply = <&ab8500_ldo_aux1_reg>; 96*4882a593Smuzhiyun vddio-supply = <&db8500_vsmps2_reg>; 97*4882a593Smuzhiyun pinctrl-names = "default"; 98*4882a593Smuzhiyun pinctrl-0 = <&magneto_stuib_mode>; 99*4882a593Smuzhiyun interrupt-parent = <&gpio1>; 100*4882a593Smuzhiyun interrupts = <0 IRQ_TYPE_EDGE_RISING>; 101*4882a593Smuzhiyun }; 102*4882a593Smuzhiyun }; 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun i2c@80110000 { 105*4882a593Smuzhiyun bu21013_tp@5c { 106*4882a593Smuzhiyun compatible = "rohm,bu21013_tp"; 107*4882a593Smuzhiyun reg = <0x5c>; 108*4882a593Smuzhiyun avdd-supply = <&ab8500_ldo_aux1_reg>; 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun rohm,touch-max-x = <384>; 111*4882a593Smuzhiyun rohm,touch-max-y = <704>; 112*4882a593Smuzhiyun rohm,flip-y; 113*4882a593Smuzhiyun pinctrl-names = "default"; 114*4882a593Smuzhiyun pinctrl-0 = <&touch_rohm_mode>; 115*4882a593Smuzhiyun }; 116*4882a593Smuzhiyun 117*4882a593Smuzhiyun bu21013_tp@5d { 118*4882a593Smuzhiyun compatible = "rohm,bu21013_tp"; 119*4882a593Smuzhiyun reg = <0x5d>; 120*4882a593Smuzhiyun avdd-supply = <&ab8500_ldo_aux1_reg>; 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun rohm,touch-max-x = <384>; 123*4882a593Smuzhiyun rohm,touch-max-y = <704>; 124*4882a593Smuzhiyun rohm,flip-y; 125*4882a593Smuzhiyun pinctrl-names = "default"; 126*4882a593Smuzhiyun pinctrl-0 = <&touch_rohm_mode>; 127*4882a593Smuzhiyun }; 128*4882a593Smuzhiyun }; 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun pinctrl { 131*4882a593Smuzhiyun /* Pull up this GPIO pin */ 132*4882a593Smuzhiyun stmpe { 133*4882a593Smuzhiyun stmpe_stuib_mode: stmpe_stuib { 134*4882a593Smuzhiyun stuib_cfg { 135*4882a593Smuzhiyun ste,pins = "GPIO218_AH11"; 136*4882a593Smuzhiyun ste,config = <&gpio_in_pu>; 137*4882a593Smuzhiyun }; 138*4882a593Smuzhiyun }; 139*4882a593Smuzhiyun }; 140*4882a593Smuzhiyun prox { 141*4882a593Smuzhiyun prox_stuib_mode: prox_stuib { 142*4882a593Smuzhiyun stuib_cfg { 143*4882a593Smuzhiyun pins = "GPIO217_AH12"; 144*4882a593Smuzhiyun ste,config = <&gpio_in_pu>; 145*4882a593Smuzhiyun }; 146*4882a593Smuzhiyun }; 147*4882a593Smuzhiyun }; 148*4882a593Smuzhiyun hall { 149*4882a593Smuzhiyun hall_stuib_mode: stuib_tvk { 150*4882a593Smuzhiyun stuib_cfg { 151*4882a593Smuzhiyun pins = "GPIO145_C13"; 152*4882a593Smuzhiyun ste,config = <&gpio_in_pu>; 153*4882a593Smuzhiyun }; 154*4882a593Smuzhiyun }; 155*4882a593Smuzhiyun }; 156*4882a593Smuzhiyun accelerometer { 157*4882a593Smuzhiyun accel_stuib_mode: accel_stuib { 158*4882a593Smuzhiyun /* Accelerometer interrupt lines 1 & 2 */ 159*4882a593Smuzhiyun stuib_cfg { 160*4882a593Smuzhiyun pins = "GPIO82_C1", "GPIO83_D3"; 161*4882a593Smuzhiyun ste,config = <&gpio_in_pu>; 162*4882a593Smuzhiyun }; 163*4882a593Smuzhiyun }; 164*4882a593Smuzhiyun }; 165*4882a593Smuzhiyun magnetometer { 166*4882a593Smuzhiyun magneto_stuib_mode: magneto_stuib { 167*4882a593Smuzhiyun /* Magnetometer uses GPIO 31 and 32, pull these up/down respectively */ 168*4882a593Smuzhiyun stuib_cfg1 { 169*4882a593Smuzhiyun pins = "GPIO31_V3"; 170*4882a593Smuzhiyun ste,config = <&gpio_in_pu>; 171*4882a593Smuzhiyun }; 172*4882a593Smuzhiyun stuib_cfg2 { 173*4882a593Smuzhiyun pins = "GPIO32_V2"; 174*4882a593Smuzhiyun ste,config = <&gpio_in_pd>; 175*4882a593Smuzhiyun }; 176*4882a593Smuzhiyun }; 177*4882a593Smuzhiyun }; 178*4882a593Smuzhiyun touch { 179*4882a593Smuzhiyun touch_rohm_mode: touch_rohm { 180*4882a593Smuzhiyun /* 181*4882a593Smuzhiyun * ROHM touch screen uses GPIO 143 for 182*4882a593Smuzhiyun * RST1, GPIO 146 for RST2 and 183*4882a593Smuzhiyun * GPIO 67 for interrupts. Pull-up 184*4882a593Smuzhiyun * the IRQ line and drive both 185*4882a593Smuzhiyun * reset signals low. 186*4882a593Smuzhiyun */ 187*4882a593Smuzhiyun stuib_cfg1 { 188*4882a593Smuzhiyun pins = "GPIO143_D12", "GPIO146_D13"; 189*4882a593Smuzhiyun ste,config = <&gpio_out_lo>; 190*4882a593Smuzhiyun }; 191*4882a593Smuzhiyun stuib_cfg2 { 192*4882a593Smuzhiyun pins = "GPIO67_G2"; 193*4882a593Smuzhiyun ste,config = <&gpio_in_pu>; 194*4882a593Smuzhiyun }; 195*4882a593Smuzhiyun }; 196*4882a593Smuzhiyun }; 197*4882a593Smuzhiyun }; 198*4882a593Smuzhiyun 199*4882a593Smuzhiyun mcde@a0350000 { 200*4882a593Smuzhiyun status = "okay"; 201*4882a593Smuzhiyun 202*4882a593Smuzhiyun dsi-controller@a0351000 { 203*4882a593Smuzhiyun panel { 204*4882a593Smuzhiyun compatible = "samsung,s6d16d0"; 205*4882a593Smuzhiyun reg = <0>; 206*4882a593Smuzhiyun vdd1-supply = <&ab8500_ldo_aux1_reg>; 207*4882a593Smuzhiyun reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>; 208*4882a593Smuzhiyun }; 209*4882a593Smuzhiyun }; 210*4882a593Smuzhiyun }; 211*4882a593Smuzhiyun }; 212*4882a593Smuzhiyun}; 213