mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

The conversion of the spi-imx driver to use GPIO descriptors
in commit 8cdcd8aeee
("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>
84 lines
1.6 KiB
Text
84 lines
1.6 KiB
Text
// 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";
|
|
};
|