1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2/* 3 * Copyright (c) Toradex 4 * 5 * Toradex Capacitive Touch Display 7" on Aquila DSI_1. 6 * Used on Clover Board (J12), DSI_1 is exposed via a FFC/FPC connector. 7 * 8 * https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-7inch-dsi 9 * https://www.toradex.com/accessories/capacitive-touch-display-7-inch-dsi 10 */ 11 12/dts-v1/; 13/plugin/; 14 15#include <dt-bindings/gpio/gpio.h> 16#include <dt-bindings/interrupt-controller/irq.h> 17 18&{/} { 19 backlight_pwm3: backlight-pwm3 { 20 compatible = "pwm-backlight"; 21 brightness-levels = <0 45 63 88 119 158 203 255>; 22 default-brightness-level = <4>; 23 /* Aquila PWM_3_DSI (AQUILA B46) */ 24 pwms = <&main_ehrpwm5 0 6666667 0>; 25 }; 26 27 panel-lvds-bridge { 28 compatible = "riverdi,rvt70hslnwca0", "panel-lvds"; 29 backlight = <&backlight_pwm3>; 30 data-mapping = "vesa-24"; 31 height-mm = <86>; 32 width-mm = <154>; 33 34 panel-timing { 35 clock-frequency = <51200000>; 36 de-active = <1>; 37 hactive = <1024>; 38 hback-porch = <100 100 100>; 39 hfront-porch = <16 160 216>; 40 hsync-active = <0>; 41 hsync-len = <1 60 140>; 42 pixelclk-active = <1>; 43 vactive = <600>; 44 vback-porch = <13 13 13>; 45 vfront-porch = <1 12 127>; 46 vsync-active = <0>; 47 vsync-len = <1 10 20>; 48 }; 49 50 port { 51 panel_lvds_bridge_in: endpoint { 52 remote-endpoint = <&dsi_lvds_bridge_out>; 53 }; 54 }; 55 }; 56}; 57 58&dphy_tx0 { 59 status = "okay"; 60}; 61 62&dsi0 { 63 status = "okay"; 64}; 65 66&dsi0_ports { 67 #address-cells = <1>; 68 #size-cells = <0>; 69 70 port@0 { 71 reg = <0>; 72 73 dsi0_out: endpoint { 74 remote-endpoint = <&dsi_lvds_bridge_in>; 75 }; 76 }; 77 78 port@1 { 79 reg = <1>; 80 81 dsi0_in: endpoint { 82 remote-endpoint = <&dpi2_out>; 83 }; 84 }; 85}; 86 87&dss_ports { 88 #address-cells = <1>; 89 #size-cells = <0>; 90 91 port@2 { 92 reg = <2>; 93 94 dpi2_out: endpoint { 95 remote-endpoint = <&dsi0_in>; 96 }; 97 }; 98}; 99 100/* Aquila PWM_3_DSI */ 101&main_ehrpwm5 { 102 status = "okay"; 103}; 104 105/* Aquila I2C_3_DSI1 */ 106&main_i2c0 { 107 #address-cells = <1>; 108 #size-cells = <0>; 109 110 status = "okay"; 111 112 bridge@2c { 113 compatible = "ti,sn65dsi83"; 114 reg = <0x2c>; 115 pinctrl-names = "default"; 116 pinctrl-0 = <&pinctrl_gpio_20_dsi_1>; 117 /* Aquila GPIO_20_DSI_1 (AQUILA B45) */ 118 enable-gpios = <&main_gpio0 18 GPIO_ACTIVE_HIGH>; 119 120 ports { 121 #address-cells = <1>; 122 #size-cells = <0>; 123 124 port@0 { 125 reg = <0>; 126 127 dsi_lvds_bridge_in: endpoint { 128 remote-endpoint = <&dsi0_out>; 129 data-lanes = <1 2 3 4>; 130 }; 131 }; 132 133 port@2 { 134 reg = <2>; 135 136 dsi_lvds_bridge_out: endpoint { 137 remote-endpoint = <&panel_lvds_bridge_in>; 138 }; 139 }; 140 }; 141 }; 142 143 touchscreen@41 { 144 compatible = "ilitek,ili2132"; 145 reg = <0x41>; 146 pinctrl-names = "default"; 147 pinctrl-0 = <&pinctrl_gpio_17_dsi_1>, <&pinctrl_gpio_18_dsi_1>; 148 /* Aquila GPIO_17_DSI_1 (AQUILA B42) */ 149 interrupt-parent = <&main_gpio0>; 150 /* 151 * Data-ready pulse is ~200 us; either edge can be used, 152 * use the rising edge because the falling edge is noisy. 153 */ 154 interrupts = <12 IRQ_TYPE_EDGE_RISING>; 155 /* Aquila GPIO_18_DSI_1 (AQUILA B43) */ 156 reset-gpios = <&main_gpio0 31 GPIO_ACTIVE_LOW>; 157 }; 158}; 159