This driver uses GPIO descriptors to drive the touchscreen RESET line. In the existing device trees this has in conflict with intution been flagged as GPIO_ACTIVE_HIGH and the driver then applies the reverse action by driving the line low (setting to 0) to enter reset state and driving the line high (setting to 1) to get out of reset state. The correct way to handle active low GPIO lines is to provide the GPIO_ACTIVE_LOW in the device tree (thus properly describing the hardware) and letting the GPIO framework invert the assertion (driving high) to a low level and vice versa. This is considered a bug since the device trees are incorrectly mis-specifying the line as active high. Fix the driver and all device trees specifying a reset line. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Philippe Schenker <philippe.schenker@toradex.com> Acked-by: Krzysztof Kozlowski <krzk@kernel.org> Link: https://lore.kernel.org/r/20201104153032.1387747-1-linus.walleij@linaro.org Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
170 lines
2.7 KiB
Plaintext
170 lines
2.7 KiB
Plaintext
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
|
/*
|
|
* Copyright 2017-2020 Toradex AG
|
|
*
|
|
*/
|
|
|
|
|
|
#include <dt-bindings/input/input.h>
|
|
#include <dt-bindings/pwm/pwm.h>
|
|
|
|
/ {
|
|
chosen {
|
|
stdout-path = "serial0:115200n8";
|
|
};
|
|
|
|
gpio-keys {
|
|
compatible = "gpio-keys";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_gpiokeys>;
|
|
|
|
power {
|
|
label = "Wake-Up";
|
|
gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
|
|
linux,code = <KEY_WAKEUP>;
|
|
debounce-interval = <10>;
|
|
wakeup-source;
|
|
};
|
|
};
|
|
|
|
panel: panel {
|
|
compatible = "edt,et057090dhu";
|
|
backlight = <&bl>;
|
|
power-supply = <®_3v3>;
|
|
|
|
port {
|
|
panel_in: endpoint {
|
|
remote-endpoint = <&lcdif_out>;
|
|
};
|
|
};
|
|
};
|
|
|
|
reg_3v3: regulator-3v3 {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "3.3V";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
};
|
|
|
|
reg_5v0: regulator-5v0 {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "5V";
|
|
regulator-min-microvolt = <5000000>;
|
|
regulator-max-microvolt = <5000000>;
|
|
};
|
|
|
|
reg_usbh_vbus: regulator-usbh-vbus {
|
|
compatible = "regulator-fixed";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_usbh_reg>;
|
|
regulator-name = "VCC_USB[1-4]";
|
|
regulator-min-microvolt = <5000000>;
|
|
regulator-max-microvolt = <5000000>;
|
|
gpio = <&gpio4 7 GPIO_ACTIVE_LOW>;
|
|
vin-supply = <®_5v0>;
|
|
};
|
|
};
|
|
|
|
&adc1 {
|
|
status = "okay";
|
|
};
|
|
|
|
/*
|
|
* ADC2 is not available on the Aster board and
|
|
* conflicts with AD7879 resistive touchscreen.
|
|
*/
|
|
&adc2 {
|
|
status = "disabled";
|
|
};
|
|
|
|
&bl {
|
|
brightness-levels = <0 4 8 16 32 64 128 255>;
|
|
default-brightness-level = <6>;
|
|
power-supply = <®_3v3>;
|
|
status = "okay";
|
|
};
|
|
|
|
&fec1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&i2c4 {
|
|
status = "okay";
|
|
|
|
/* Microchip/Atmel maxtouch controller */
|
|
touchscreen@4a {
|
|
compatible = "atmel,maxtouch";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_gpiotouch>;
|
|
reg = <0x4a>;
|
|
interrupt-parent = <&gpio2>;
|
|
interrupts = <15 IRQ_TYPE_EDGE_FALLING>; /* SODIMM 107 */
|
|
reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; /* SODIMM 106 */
|
|
};
|
|
|
|
/* M41T0M6 real time clock on carrier board */
|
|
rtc: m41t0m6@68 {
|
|
compatible = "st,m41t0";
|
|
reg = <0x68>;
|
|
};
|
|
};
|
|
|
|
&iomuxc {
|
|
pinctrl_gpiotouch: touchgpios {
|
|
fsl,pins = <
|
|
MX7D_PAD_EPDC_DATA15__GPIO2_IO15 0x74
|
|
MX7D_PAD_EPDC_BDR0__GPIO2_IO28 0x14
|
|
>;
|
|
};
|
|
};
|
|
|
|
&lcdif {
|
|
status = "okay";
|
|
|
|
port {
|
|
lcdif_out: endpoint {
|
|
remote-endpoint = <&panel_in>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&pwm1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&pwm2 {
|
|
status = "okay";
|
|
};
|
|
|
|
&pwm3 {
|
|
status = "okay";
|
|
};
|
|
|
|
&pwm4 {
|
|
status = "okay";
|
|
};
|
|
|
|
&uart1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&uart2 {
|
|
status = "okay";
|
|
};
|
|
|
|
&uart3 {
|
|
status = "okay";
|
|
};
|
|
|
|
&usbotg1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&usdhc1 {
|
|
keep-power-in-suspend;
|
|
no-1-8-v;
|
|
wakeup-source;
|
|
vmmc-supply = <®_3v3>;
|
|
status = "okay";
|
|
};
|