/*
* Copyright 2012 ST-Ericsson AB
*
* The code contained herein is licensed under the GNU General Public
* License. You may obtain a copy of the GNU General Public License
* Version 2 or later at the following locations:
*
* http://www.opensource.org/licenses/gpl-license.html
* http://www.gnu.org/copyleft/gpl.html
*/
#include <dt-bindings/interrupt-controller/irq.h>
/ {
gpio_keys {
compatible = "gpio-keys";
#address-cells = <1>;
#size-cells = <0>;
vdd-supply = <&ab8500_ldo_aux1_reg>;
pinctrl-names = "default";
pinctrl-0 = <&prox_stuib_mode>, <&hall_stuib_mode>;
button@139 {
/* Proximity sensor */
gpios = <&gpio6 25 0x4>;
linux,code = <11>; /* SW_FRONT_PROXIMITY */
label = "SFH7741 Proximity Sensor";
};
button@145 {
/* Hall sensor */
gpios = <&gpio4 17 0x4>;
linux,code = <0>; /* SW_LID */
label = "HED54XXU11 Hall Effect Sensor";
};
};
soc {
i2c@80004000 {
stmpe1601: stmpe1601@40 {
compatible = "st,stmpe1601";
reg = <0x40>;
interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
interrupt-parent = <&gpio6>;
interrupt-controller;
vcc-supply = <&db8500_vsmps2_reg>;
vio-supply = <&db8500_vsmps2_reg>;
wakeup-source;
st,autosleep-timeout = <1024>;
stmpe_keypad {
compatible = "st,stmpe-keypad";
debounce-interval = <64>;
st,scan-count = <8>;
st,no-autorepeat;
linux,keymap = <0x205006b
0x4010074
0x3050072
0x1030004
0x502006a
0x500000a
0x5008b
0x706001c
0x405000b
0x6070003
0x3040067
0x303006c
0x60400e7
0x602009e
0x4020073
0x5050002
0x4030069
0x3020008>;
};
};
};
/* Sensors mounted on this board variant */
i2c@80128000 {
lis331dl@1c {
/* Accelerometer */
compatible = "st,lis331dl-accel";
st,drdy-int-pin = <1>;
reg = <0x1c>;
vdd-supply = <&ab8500_ldo_aux1_reg>;
vddio-supply = <&db8500_vsmps2_reg>;
pinctrl-names = "default";
pinctrl-0 = <&accel_stuib_mode>;
interrupt-parent = <&gpio2>;
interrupts = <18 IRQ_TYPE_EDGE_RISING>,
<19 IRQ_TYPE_EDGE_RISING>;
};
ak8974@0f {
/* Magnetometer */
compatible = "asahi-kasei,ak8974";
reg = <0x0f>;
vdd-supply = <&ab8500_ldo_aux1_reg>;
vddio-supply = <&db8500_vsmps2_reg>;
pinctrl-names = "default";
pinctrl-0 = <&magneto_stuib_mode>;
interrupt-parent = <&gpio1>;
interrupts = <0 IRQ_TYPE_EDGE_RISING>;
};
};
i2c@80110000 {
bu21013_tp@5c {
compatible = "rohm,bu21013_tp";
reg = <0x5c>;
avdd-supply = <&ab8500_ldo_aux1_reg>;
rohm,touch-max-x = <384>;
rohm,touch-max-y = <704>;
rohm,flip-y;
pinctrl-names = "default";
pinctrl-0 = <&touch_rohm_mode>;
};
bu21013_tp@5d {
compatible = "rohm,bu21013_tp";
reg = <0x5d>;
avdd-supply = <&ab8500_ldo_aux1_reg>;
rohm,touch-max-x = <384>;
rohm,touch-max-y = <704>;
rohm,flip-y;
pinctrl-names = "default";
pinctrl-0 = <&touch_rohm_mode>;
};
};
pinctrl {
prox {
prox_stuib_mode: prox_stuib {
stuib_cfg {
pins = "GPIO217_AH12";
ste,config = <&gpio_in_pu>;
};
};
};
hall {
hall_stuib_mode: stuib_tvk {
stuib_cfg {
pins = "GPIO145_C13";
ste,config = <&gpio_in_pu>;
};
};
};
accelerometer {
accel_stuib_mode: accel_stuib {
/* Accelerometer interrupt lines 1 & 2 */
stuib_cfg {
pins = "GPIO82_C1", "GPIO83_D3";
ste,config = <&gpio_in_pu>;
};
};
};
magnetometer {
magneto_stuib_mode: magneto_stuib {
/* Magnetometer uses GPIO 31 and 32, pull these up/down respectively */
stuib_cfg1 {
pins = "GPIO31_V3";
ste,config = <&gpio_in_pu>;
};
stuib_cfg2 {
pins = "GPIO32_V2";
ste,config = <&gpio_in_pd>;
};
};
};
touch {
touch_rohm_mode: touch_rohm {
/*
* ROHM touch screen uses GPIO 143 for
* RST1, GPIO 146 for RST2 and
* GPIO 67 for interrupts. Pull-up
* the IRQ line and drive both
* reset signals low.
*/
stuib_cfg1 {
pins = "GPIO143_D12", "GPIO146_D13";
ste,config = <&gpio_out_lo>;
};
stuib_cfg2 {
pins = "GPIO67_G2";
ste,config = <&gpio_in_pu>;
};
};
};
};
};
};