mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-27 06:34:11 +08:00
2bfdd113d0
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>
98 lines
2.0 KiB
Plaintext
98 lines
2.0 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
/*
|
|
* Copyright 2012 Sascha Hauer, Uwe Kleine-König, Steffen Trumtrar
|
|
* and Markus Pargmann, Pengutronix
|
|
*/
|
|
|
|
/dts-v1/;
|
|
#include "imx27.dtsi"
|
|
|
|
/ {
|
|
model = "Phytec pca100";
|
|
compatible = "phytec,imx27-pca100", "fsl,imx27";
|
|
|
|
memory@a0000000 {
|
|
device_type = "memory";
|
|
reg = <0xa0000000 0x08000000>; /* 128MB */
|
|
};
|
|
};
|
|
|
|
&cspi1 {
|
|
cs-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>,
|
|
<&gpio4 27 GPIO_ACTIVE_LOW>;
|
|
status = "okay";
|
|
};
|
|
|
|
&fec {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_fec1>;
|
|
status = "okay";
|
|
};
|
|
|
|
&i2c2 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_i2c2>;
|
|
status = "okay";
|
|
|
|
at24@52 {
|
|
compatible = "atmel,24c32";
|
|
pagesize = <32>;
|
|
reg = <0x52>;
|
|
};
|
|
};
|
|
|
|
&iomuxc {
|
|
imx27-phycard-s-som {
|
|
pinctrl_fec1: fec1grp {
|
|
fsl,pins = <
|
|
MX27_PAD_SD3_CMD__FEC_TXD0 0x0
|
|
MX27_PAD_SD3_CLK__FEC_TXD1 0x0
|
|
MX27_PAD_ATA_DATA0__FEC_TXD2 0x0
|
|
MX27_PAD_ATA_DATA1__FEC_TXD3 0x0
|
|
MX27_PAD_ATA_DATA2__FEC_RX_ER 0x0
|
|
MX27_PAD_ATA_DATA3__FEC_RXD1 0x0
|
|
MX27_PAD_ATA_DATA4__FEC_RXD2 0x0
|
|
MX27_PAD_ATA_DATA5__FEC_RXD3 0x0
|
|
MX27_PAD_ATA_DATA6__FEC_MDIO 0x0
|
|
MX27_PAD_ATA_DATA7__FEC_MDC 0x0
|
|
MX27_PAD_ATA_DATA8__FEC_CRS 0x0
|
|
MX27_PAD_ATA_DATA9__FEC_TX_CLK 0x0
|
|
MX27_PAD_ATA_DATA10__FEC_RXD0 0x0
|
|
MX27_PAD_ATA_DATA11__FEC_RX_DV 0x0
|
|
MX27_PAD_ATA_DATA12__FEC_RX_CLK 0x0
|
|
MX27_PAD_ATA_DATA13__FEC_COL 0x0
|
|
MX27_PAD_ATA_DATA14__FEC_TX_ER 0x0
|
|
MX27_PAD_ATA_DATA15__FEC_TX_EN 0x0
|
|
>;
|
|
};
|
|
|
|
pinctrl_i2c2: i2c2grp {
|
|
fsl,pins = <
|
|
MX27_PAD_I2C2_SDA__I2C2_SDA 0x0
|
|
MX27_PAD_I2C2_SCL__I2C2_SCL 0x0
|
|
>;
|
|
};
|
|
|
|
pinctrl_nfc: nfcgrp {
|
|
fsl,pins = <
|
|
MX27_PAD_NFRB__NFRB 0x0
|
|
MX27_PAD_NFCLE__NFCLE 0x0
|
|
MX27_PAD_NFWP_B__NFWP_B 0x0
|
|
MX27_PAD_NFCE_B__NFCE_B 0x0
|
|
MX27_PAD_NFALE__NFALE 0x0
|
|
MX27_PAD_NFRE_B__NFRE_B 0x0
|
|
MX27_PAD_NFWE_B__NFWE_B 0x0
|
|
>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&nfc {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_nfc>;
|
|
nand-bus-width = <8>;
|
|
nand-ecc-mode = "hw";
|
|
nand-on-flash-bbt;
|
|
status = "okay";
|
|
};
|