// SPDX-License-Identifier: GPL-2.0-or-later /* * Device Tree for the TVK1281618 R3 user interface board (UIB) * also known as the "CYTTSP board" */ #include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/input/input.h> / { gpio_keys { compatible = "gpio-keys"; #address-cells = <1>; #size-cells = <0>; vdd-supply = <&ab8500_ldo_aux1_reg>; pinctrl-names = "default"; pinctrl-0 = <&hall_tvk_mode>; 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 = <&gpio2>; interrupts = <0 IRQ_TYPE_EDGE_RISING>; pinctrl-names = "default"; pinctrl-0 = <&tc35893_tvk_mode>; interrupt-controller; #interrupt-cells = <1>; status = "disabled"; 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 = <MATRIX_KEY(3, 1, KEY_END)>, <MATRIX_KEY(4, 1, KEY_HOME)>, <MATRIX_KEY(6, 4, KEY_VOLUMEDOWN)>, <MATRIX_KEY(4, 2, KEY_EMAIL)>, <MATRIX_KEY(3, 3, KEY_RIGHT)>, <MATRIX_KEY(2, 5, KEY_BACKSPACE)>, <MATRIX_KEY(6, 7, KEY_MENU)>, <MATRIX_KEY(5, 0, KEY_ENTER)>, <MATRIX_KEY(4, 3, KEY_0)>, <MATRIX_KEY(3, 4, KEY_DOT)>, <MATRIX_KEY(5, 2, KEY_UP)>, <MATRIX_KEY(3, 5, KEY_DOWN)>, <MATRIX_KEY(4, 5, KEY_SEND)>, <MATRIX_KEY(0, 5, KEY_BACK)>, <MATRIX_KEY(6, 2, KEY_VOLUMEUP)>, <MATRIX_KEY(1, 3, KEY_SPACE)>, <MATRIX_KEY(7, 6, KEY_LEFT)>, <MATRIX_KEY(5, 5, KEY_SEARCH)>; }; }; }; i2c@80128000 { accelerometer@19 { compatible = "st,lsm303dlhc-accel"; st,drdy-int-pin = <1>; reg = <0x19>; vdd-supply = <&ab8500_ldo_aux1_reg>; vddio-supply = <&db8500_vsmps2_reg>; interrupt-parent = <&gpio2>; interrupts = <18 IRQ_TYPE_EDGE_RISING>, <19 IRQ_TYPE_EDGE_RISING>; pinctrl-names = "default"; pinctrl-0 = <&accel_tvk_mode>; mount-matrix = "0", "-1", "0", "-1", "0", "0", "0", "0", "-1"; }; magnetometer@1e { compatible = "st,lsm303dlm-magn"; reg = <0x1e>; vdd-supply = <&ab8500_ldo_aux1_reg>; vddio-supply = <&db8500_vsmps2_reg>; // This interrupt is not properly working with the driver // interrupt-parent = <&gpio1>; // interrupts = <0 IRQ_TYPE_EDGE_RISING>; pinctrl-names = "default"; pinctrl-0 = <&magn_tvk_mode>; }; gyroscope@68 { /* Gyroscope */ compatible = "st,l3g4200d-gyro"; reg = <0x68>; vdd-supply = <&ab8500_ldo_aux1_reg>; vddio-supply = <&db8500_vsmps2_reg>; }; pressure@5c { /* Barometer/pressure sensor */ compatible = "st,lps001wp-press"; reg = <0x5c>; vdd-supply = <&ab8500_ldo_aux1_reg>; vddio-supply = <&db8500_vsmps2_reg>; }; }; spi@80111000 { num-cs = <1>; cs-gpios = <&gpio6 24 GPIO_ACTIVE_LOW>; pinctrl-names = "default"; pinctrl-0 = <&spi2_default_mode>; status = "okay"; touchscreen@0 { compatible = "cypress,cy8ctma340"; /* * Actually the max frequency is 6 MHz, but over 2 MHz the * data rate needs to be restricted to max 2Mbps which the * SPI framework cannot handle. */ spi-max-frequency = <2000000>; reg = <0>; interrupt-parent = <&gpio2>; interrupts = <20 IRQ_TYPE_EDGE_FALLING>; vcpin-supply = <&ab8500_ldo_aux1_reg>; vdd-supply = <&db8500_vsmps2_reg>; reset-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; touchscreen-size-x = <480>; touchscreen-size-y = <854>; active-interval-ms = <0>; touch-timeout-ms = <255>; lowpower-interval-ms = <10>; bootloader-key = /bits/ 8 <0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07>; pinctrl-names = "default"; pinctrl-0 = <&cyttsp_tvk_mode>; }; }; mcde@a0350000 { status = "okay"; dsi@a0351000 { panel { compatible = "sony,acx424akp"; reg = <0>; vddi-supply = <&ab8500_ldo_aux1_reg>; reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>; }; }; }; pinctrl { hall { hall_tvk_mode: hall_tvk { tvk_cfg { pins = "GPIO145_C13"; ste,config = <&gpio_in_pu>; }; }; }; tc35893 { /* IRQ from the TC35893 */ tc35893_tvk_mode: tc35893_tvk { tvk_cfg { pins = "GPIO64_F3"; 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>; }; }; }; magnetometer { magn_tvk_mode: magn_tvk { /* GPIO 32 used for DRDY, pull this down */ tvk_cfg { pins = "GPIO32_V2"; ste,config = <&gpio_in_pd>; }; }; }; cyttsp { cyttsp_tvk_mode: cyttsp_tvk { /* Touchscreen uses GPIO84 for IRQ */ tvk_cfg1 { pins = "GPIO84_C2"; ste,config = <&gpio_in_pu>; }; /* GPIO143 is reset */ tvk_cfg2 { pins = "GPIO143_D12"; ste,config = <&gpio_out_hi>; }; }; }; }; }; };