I am working with the QWKS-SCMIMX6DQ board and trying to test, at least partially ecspi2. So I have modified the device tree this way:
I have added an entry for this SPI (file imx6dqscm-qwks-rev2.dtsi)
&ecspi2 {
fsl,spi-num-chipselects = <1>;
cs-gpios = <&gpio5 12 0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi2>;
status = "okay";
spidev0: spidev@0 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "rohm,dh2228fv";
spi-max-frequency = <200000>;
reg = <0>;
};
};
and removed i2c1/pinctrl_i2c1 which uses the same pads (CSI0_DAT8/CSI0_DAT9).
Then I added also pinctrl_ecspi2
pinctrl_ecspi2: ecspi2grp {
fsl,pins = <
MX6QDL_PAD_DISP0_DAT17__ECSPI2_MISO 0x80000000
MX6QDL_PAD_CSI0_DAT9__ECSPI2_MOSI 0x100b1
MX6QDL_PAD_CSI0_DAT8__ECSPI2_SCLK 0x100b1
MX6QDL_PAD_DISP0_DAT18__ECSPI2_SS0 0x100b1
>;
};
I can see in /dev that i2c-0 disappears and that I have a new device spidev1.0. So far so good.
The problem is that if I issue a command like
echo 123 >/dev/spidev1.0
then I do not see (with the probe) any activity on pins J11.10/J11.12 of the board.
I tried a different Device tree that makes use of ecspi1 and verified that echoing something gets the expected result on J2.12/10/8/6.
So my question is: there is something wrong with my Device Tree or is not possible to (ab)use the board this way?
(For example I see on the schematic that there is a 4.7k pull-up on J11.10, which is OK for a I2C but unsuited for a SPI, anyway I would expect to see some activity with the probe...)
Hi Marco,
have you seen this post? How to check if SPI is working?
I think your pins are set incorrectly in the iomux you may check using the memtool
/unit_tests/memtool -32 IOMUXC.*
Regards,
Carlos
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Thanks for the reply Carlos,
I double-checked the available pins and discovered that I could see ECSPI2_SS0 and ECSPI2_SCLK on the connector
So currently I have the following dts (just relevant secions):
&ecspi2 {
fsl,spi-num-chipselects = <1>;
cs-gpios = <&gpio5 12 0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi2>;
status = "okay";
spidev0: spidev@0 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "rohm,dh2228fv";
spi-max-frequency = <20000000>;
reg = <0>;
};
};
...
pinctrl_ecspi2: ecspi2grp {
fsl,pins = <
MX6QDL_PAD_DISP0_DAT17__ECSPI2_MISO 0x100b1
MX6QDL_PAD_DISP0_DAT16__ECSPI2_MOSI 0x100b1
MX6QDL_PAD_DISP0_DAT19__ECSPI2_SCLK 0x100b1
>;
};
I can correctly see DISP0_DAT19 on the oscilloscope and GPIO5-12 (chip select) but not the other two, since they are no pads on the board for them.