Hello,
Please advise me on the device tree for carrier board with LS1028a and WiFi module ATWINC1500, which is fixed on the board and should communicate via SPI. The wiring diagram is below (not my work).
My problem is that I don't know how to build a device tree, all the information I found was about implementations on Atmel SoC.
Device tree
Fragments from fsl-ls1028a.dtsi:
dspi2: spi@2120000 {
compatible = "fsl,ls1028a-dspi", "fsl,ls1021a-v1.0-dspi";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x0 0x2120000 0x0 0x10000>;
interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
clock-names = "dspi";
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
QORIQ_CLK_PLL_DIV(2)>;
dmas = <&edma0 0 54>, <&edma0 0 2>;
dma-names = "tx", "rx";
spi-num-chipselects = <3>;
little-endian;
status = "disabled";
};
gpio1: gpio@2300000 {
compatible = "fsl,ls1028a-gpio","fsl,qoriq-gpio";
reg = <0x0 0x2300000 0x0 0x10000>;
interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
little-endian;
};
gpio2: gpio@2310000 {
compatible = "fsl,ls1028a-gpio","fsl,qoriq-gpio";
reg = <0x0 0x2310000 0x0 0x10000>;
interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
little-endian;
};
gpio3: gpio@2320000 {
compatible = "fsl,ls1028a-gpio","fsl,qoriq-gpio";
reg = <0x0 0x2320000 0x0 0x10000>;
interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
little-endian;
};
i2c0: i2c@2000000 {
compatible = "fsl,vf610-i2c";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x0 0x2000000 0x0 0x10000>;
interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
QORIQ_CLK_PLL_DIV(4)>;
status = "disabled";
};
i2c1: i2c@2010000 {
compatible = "fsl,vf610-i2c";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x0 0x2010000 0x0 0x10000>;
interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
QORIQ_CLK_PLL_DIV(4)>;
status = "disabled";
};
... continue with i2c2, i2c3 etc ...
Fragment from my dts:
&gpio1 {
status = "okay";
little-endian;
};
&gpio2 {
status = "okay";
little-endian;
};
&gpio3 {
status = "okay";
};
&i2c7 {
status = "okay";
};
....
&dspi2 {
status = "okay";
wilc_spi:wilc_spi@0 {
compatible = "microchip,wilc1000","microchip,wilc3000";
spi-max-frequency = <40000000>;
reg = <0>;
interrupt-parent = <&gpio2>;
interrupts = IRQ_TYPE_LEVEL_HIGH>;
reset-gpios = <&gpio2 18 GPIO_ACTIVE_LOW>;
enable-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;
status = "okay";
};
};
WIFI module

On boot, the driver module is loaded into the kernel. When starting wpa_supplicant or ifconfig wlan0 up, the firmware is loaded, but after about 10 seconds it ends with a Time out error.
Could someone please advise me where I am going wrong ? Or if anyone has a device tree for the same or at least similar QoorQ or Layerscape and WINC1000/WILC1500 ?