/* * 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 * * Device Tree for the TVK1281618 UIB */ #include / { gpio_keys { compatible = "gpio-keys"; #address-cells = <1>; #size-cells = <0>; vdd-supply = <&ab8500_ldo_aux1_reg>; pinctrl-names = "default"; pinctrl-0 = <&prox_tvk_mode>, <&hall_tvk_mode>; button@139 { /* Proximity sensor */ gpios = <&gpio6 25 GPIO_ACTIVE_HIGH>; linux,code = <11>; /* SW_FRONT_PROXIMITY */ label = "SFH7741 Proximity Sensor"; }; button@145 { /* Hall sensor */ gpios = <&gpio4 17 GPIO_ACTIVE_HIGH>; linux,code = <0>; /* SW_LID */ label = "HED54XXU11 Hall Effect Sensor"; }; }; soc { i2c@80004000 { tc35893@44 { compatible = "toshiba,tc35893"; reg = <0x44>; interrupt-parent = <&gpio6>; interrupts = <26 IRQ_TYPE_EDGE_RISING>; pinctrl-names = "default"; pinctrl-0 = <&tc35893_tvk_mode>; interrupt-controller; #interrupt-cells = <1>; tc3589x_gpio { compatible = "toshiba,tc3589x-gpio"; interrupts = <0>; interrupt-controller; #interrupt-cells = <2>; gpio-controller; #gpio-cells = <2>; }; tc3589x_keypad { compatible = "toshiba,tc3589x-keypad"; interrupts = <6>; debounce-delay-ms = <4>; keypad,num-columns = <8>; keypad,num-rows = <8>; linux,no-autorepeat; wakeup-source; linux,keymap = <0x0301006b 0x04010066 0x06040072 0x040200d7 0x0303006a 0x0205000e 0x0607008b 0x0500001c 0x0403000b 0x03040034 0x05020067 0x0305006c 0x040500e7 0x0005009e 0x06020073 0x01030039 0x07060069 0x050500d9>; }; }; }; /* Sensors mounted on this board variant */ i2c@80128000 { lsm303dlh@18 { /* Accelerometer */ compatible = "st,lsm303dlh-accel"; st,drdy-int-pin = <1>; drive-open-drain; reg = <0x18>; vdd-supply = <&ab8500_ldo_aux1_reg>; vddio-supply = <&db8500_vsmps2_reg>; pinctrl-names = "default"; pinctrl-0 = <&accel_tvk_mode>; /* * These interrupts cannot be used: the other component * ST-Micro L3D4200D gyro that is connected to the same lines * cannot set its DRDY line to open drain, so it cannot be * shared with other peripherals. The should be defined for * the falling edge if they could be wired together. * * interrupts-extended = * <&gpio1 0 IRQ_TYPE_EDGE_FALLING>, * <&gpio2 19 IRQ_TYPE_EDGE_FALLING>; */ }; lsm303dlh@1e { /* Magnetometer */ compatible = "st,lsm303dlh-magn"; reg = <0x1e>; vdd-supply = <&ab8500_ldo_aux1_reg>; vddio-supply = <&db8500_vsmps2_reg>; /* * These interrupts cannot be used: the other component * ST-Micro L3D4200D gyro that is connected to the same lines * cannot set its DRDY line to open drain, so it cannot be * shared with other peripherals. The should be defined for * the falling edge if they could be wired together. * * interrupts-extended = * <&gpio1 0 IRQ_TYPE_EDGE_FALLING>, * <&gpio2 19 IRQ_TYPE_EDGE_FALLING>; */ }; 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_tvk_mode>; interrupt-parent = <&gpio2>; /* INT2 would need to be open drain */ interrupts = <18 IRQ_TYPE_EDGE_RISING>, <19 IRQ_TYPE_EDGE_RISING>; }; ak8974@0f { /* Magnetometer */ compatible = "asahi-kasei,ak8974"; reg = <0x0f>; avdd-supply = <&ab8500_ldo_aux1_reg>; dvdd-supply = <&db8500_vsmps2_reg>; pinctrl-names = "default"; pinctrl-0 = <&gyro_magn_tvk_mode>; /* * These interrupts cannot be used: the other component * ST-Micro L3D4200D gyro that is connected to the same lines * cannot set its DRDY line to open drain, so it cannot be * shared with other peripherals. The should be defined for * the falling edge if they could be wired together. * * interrupts-extended = * <&gpio1 0 IRQ_TYPE_EDGE_FALLING>, * <&gpio0 31 IRQ_TYPE_EDGE_FALLING>; */ }; l3g4200d@68 { /* Gyroscope */ compatible = "st,l3g4200d-gyro"; st,drdy-int-pin = <2>; reg = <0x68>; vdd-supply = <&ab8500_ldo_aux1_reg>; vddio-supply = <&db8500_vsmps2_reg>; pinctrl-names = "default"; pinctrl-0 = <&gyro_magn_tvk_mode>; interrupts-extended = <&gpio1 0 IRQ_TYPE_EDGE_RISING>, <&gpio0 31 IRQ_TYPE_EDGE_RISING>; }; lsp001wm@5c { /* Barometer/pressure sensor */ compatible = "st,lps001wp-press"; reg = <0x5c>; vdd-supply = <&ab8500_ldo_aux1_reg>; vddio-supply = <&db8500_vsmps2_reg>; }; }; i2c@80110000 { synaptics@4b { /* Synaptics RMI4 TM1217 touchscreen */ compatible = "syna,rmi4-i2c"; #address-cells = <1>; #size-cells = <0>; reg = <0x4b>; vdd-supply = <&ab8500_ldo_aux1_reg>; vddio-supply = <&db8500_vsmps2_reg>; pinctrl-names = "default"; pinctrl-0 = <&synaptics_tvk_mode>; interrupt-parent = <&gpio2>; interrupts = <20 IRQ_TYPE_EDGE_FALLING>; rmi-f01@1 { reg = <0x1>; syna,nosleep = <1>; }; rmi-f11@11 { reg = <0x11>; touchscreen-inverted-x; syna,sensor-type = <1>; }; }; }; pinctrl { /* Pull up this GPIO pin */ tc35893 { tc35893_tvk_mode: tc35893_tvk { tvk_cfg { pins = "GPIO218_AH11"; ste,config = <&gpio_in_pu>; }; }; }; prox { prox_tvk_mode: prox_tvk { tvk_cfg { pins = "GPIO217_AH12"; ste,config = <&gpio_in_pu>; }; }; }; hall { hall_tvk_mode: hall_tvk { tvk_cfg { pins = "GPIO145_C13"; ste,config = <&gpio_in_pu>; }; }; }; accelerometer { accel_tvk_mode: accel_tvk { /* Accelerometer interrupt lines 1 & 2 */ tvk_cfg { pins = "GPIO82_C1", "GPIO83_D3"; ste,config = <&gpio_in_pd>; }; }; }; gyroscope { /* * These lines are shared between Gyroscope l3g400dh * and AK8974 magnetometer. */ gyro_magn_tvk_mode: gyro_magn_tvk { /* GPIO 31 used for INT pull down the line */ tvk_cfg1 { pins = "GPIO31_V3"; ste,config = <&gpio_in_pd>; }; /* GPIO 32 used for DRDY, pull this down */ tvk_cfg2 { pins = "GPIO32_V2"; ste,config = <&gpio_in_pd>; }; }; }; synaptics { synaptics_tvk_mode: synaptics_tvk { /* Touchscreen uses GPIO 84 */ tvk_cfg1 { pins = "GPIO84_C2"; ste,config = <&gpio_in_pu>; }; }; }; }; }; };