The conversion of the spi-imx driver to use GPIO descriptors in commit 8cdcd8aeee28 ("spi: imx/fsl-lpspi: Convert to GPIO descriptors") helped to detect the following SPI chipselect polarity mismatch on an imx6q-sabresd: [ 4.854337] m25p80@0 enforce active low on chipselect handle Prior to the above commit, the chipselect polarity passed via cs-gpios property was ignored and considered active-low. The reason for such mismatch is clearly explained in the comments inside drivers/gpio/gpiolib-of.c: * SPI children have active low chip selects * by default. This can be specified negatively * by just omitting "spi-cs-high" in the * device node, or actively by tagging on * GPIO_ACTIVE_LOW as flag in the device * tree. If the line is simultaneously * tagged as active low in the device tree * and has the "spi-cs-high" set, we get a * conflict and the "spi-cs-high" flag will * take precedence. To properly represent the SPI chipselect polarity, change it to active-low when the "spi-cs-high" property is absent. Signed-off-by: Fabio Estevam <festevam@gmail.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
85 lines
1.6 KiB
Plaintext
85 lines
1.6 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0-only
|
|
/*
|
|
* support fot the imx6 based aristainetos board
|
|
*
|
|
* Copyright (C) 2014 Heiko Schocher <hs@denx.de>
|
|
*/
|
|
/dts-v1/;
|
|
#include "imx6dl.dtsi"
|
|
#include "imx6qdl-aristainetos.dtsi"
|
|
|
|
/ {
|
|
model = "aristainetos i.MX6 Dual Lite Board 4";
|
|
compatible = "fsl,imx6dl";
|
|
|
|
backlight {
|
|
compatible = "pwm-backlight";
|
|
pwms = <&pwm1 0 5000000>;
|
|
brightness-levels = <0 4 8 16 32 64 128 255>;
|
|
default-brightness-level = <7>;
|
|
enable-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_backlight>;
|
|
status = "okay";
|
|
};
|
|
|
|
memory@10000000 {
|
|
device_type = "memory";
|
|
reg = <0x10000000 0x40000000>;
|
|
};
|
|
|
|
display0: disp0 {
|
|
compatible = "fsl,imx-parallel-display";
|
|
interface-pix-fmt = "rgb24";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_ipu_disp>;
|
|
status = "okay";
|
|
|
|
display-timings {
|
|
480x800p60 {
|
|
native-mode;
|
|
clock-frequency = <30000000>;
|
|
hactive = <480>;
|
|
vactive = <800>;
|
|
hfront-porch = <59>;
|
|
hback-porch = <10>;
|
|
hsync-len = <10>;
|
|
vback-porch = <15>;
|
|
vfront-porch = <15>;
|
|
vsync-len = <15>;
|
|
hsync-active = <1>;
|
|
vsync-active = <1>;
|
|
};
|
|
};
|
|
|
|
port {
|
|
display0_in: endpoint {
|
|
remote-endpoint = <&ipu1_di0_disp0>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&ecspi2 {
|
|
cs-gpios = <&gpio3 24 GPIO_ACTIVE_LOW>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_ecspi2>;
|
|
status = "okay";
|
|
};
|
|
|
|
&i2c2 {
|
|
clock-frequency = <100000>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_i2c2>;
|
|
status = "okay";
|
|
};
|
|
|
|
&ipu1_di0_disp0 {
|
|
remote-endpoint = <&display0_in>;
|
|
};
|
|
|
|
&pwm1 {
|
|
#pwm-cells = <2>;
|
|
status = "okay";
|
|
};
|