Помогите слепому кроту с SPI [решено]
SmartRogue
Пункты: 1449
Регистрация: 27.11.2017
Здравствуйте, уважаемые!
У меня очередной затык.
В наличии:
SK-iMX6S-OEM-Ind
SK-iMX6S/53/50-MB
buildroot-2017.08 на базе ядра 4.1.15-2.1.0 для i.mx6 от sasamy (
тык ).
Дебиан 9.3, модифицированный sasamy (
тык ).
SPI приблудина, прицепленная к:
X9.40 CLK
X9.39 MISO
X9.35 MOSI
X9.05 SS
X9.02 VCC
X9.01 GND
Что хочу:
Приём-отправку данных с платы (мастер) на приблудину (слэйв).
Что сделал:
1. Изменил imx6qdl-oem.dtsi по мотивам (
тык ):
Код
&ecspi1 {
fsl,spi-num-chipselects = <1>;
cs-gpios = <&gpio5 25 0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi1_oem>;
status = "okay";
spidev: spidev@0 {
compatible = "linux,spidev";
reg = <0>;
spi-max-frequency = <100000>;
};
};
Код
&iomuxc {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hog>;
hog {
pinctrl_hog: hoggrp {
fsl,pins = <
/* AUDIO_MCLK */
MX6QDL_PAD_NANDF_CS2__CCM_CLKO2 0x80000000
/* ECSPI1 CS0 */
MX6QDL_PAD_CSI0_DAT7__GPIO5_IO25 0x80000000
/* ECSPI4 CS0 */
MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x80000000
/* LVDS0 TS PENIRQ */
MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x80000000
/* LVDS1 TS PENIRQ */
MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x80000000
/* PHY Reset */
MX6QDL_PAD_ENET_REF_CLK__GPIO1_IO23 0x80000000
/* SD1 CD */
MX6QDL_PAD_SD4_DAT1__GPIO2_IO09 0x80000000
/* SD2_DET */
MX6QDL_PAD_SD4_DAT3__GPIO2_IO11 0x80000000
/* USB Host power */
MX6QDL_PAD_SD3_DAT3__GPIO7_IO07 0x80000000
>;
};
};
2. Пересобрал ядро, появился /dev/spidev0.0
3. При помощи этого кода
Attachment file: uploads/forum/forum-CddwRSqIV3-195642.zip пытаюсь что-то отправить-принять. Устройство открывается, параметры настраиваются, но на всех ногах тихо и спокойно, ничего не происходит.
Люди добрые, подскажите, пожалуйста, что я упускаю.
sasamy
Пункты: 83558
Регистрация: 14.08.2009
Цитата
SPI приблудина, прицепленная к: X9
то что у вас прописано в DTS
Цитата
&ecspi1 {
fsl,spi-num-chipselects = <1>;
cs-gpios = <&gpio5 25 0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi1_oem>;
....
hog {
pinctrl_hog: hoggrp {
....
/* ECSPI1 CS0 */
MX6QDL_PAD_CSI0_DAT7__GPIO5_IO25 0x80000000
.....
ecspi1 {
pinctrl_ecspi1_oem: ecspi1-oem {
fsl,pins = <
MX6QDL_PAD_CSI0_DAT4__ECSPI1_SCLK 0x100b1
MX6QDL_PAD_CSI0_DAT5__ECSPI1_MOSI 0x100b1
MX6QDL_PAD_CSI0_DAT6__ECSPI1_MISO 0x100b1
>;
};
};
находится на разъеме
X2 :
15 SPI1_MOSI, 17 SPI1_MISO, 19 SPI1_CLK, 16 SPI1_NCS
SmartRogue
Пункты: 1449
Регистрация: 27.11.2017
Цитата
то что у вас прописано в DTS
находится на разъеме X2
15 SPI1_MOSI, 17 SPI1_MISO, 19 SPI1_CLK, 16 SPI1_NCS
М-да, ну что тут сказать... И правда - крот
А то, к чему я подключился - ecspi4, так ведь?
Огромное спасибо, добрый волшебник sasamy!
sasamy
Пункты: 83558
Регистрация: 14.08.2009
Цитата
А то, к чему я подключился - ecspi4, так ведь?
X9: SPI0_MOSI, SPI0_MISO, SPI0_CLK
да, это ecspi4