Dear Experts
As title description. My question is :
Our customize board have two chip select pin for spi, but it only appears one chip select entry in linux.
I think it could be device tree entry setting problems.
Parts of setting as below :
1. We use SPI3, "k3-j721e-main.dtsi"
main_spi3: spi@2130000 { compatible = "ti,am654-mcspi","ti,omap4-mcspi"; reg = <0x0 0x2130000 0x0 0x400>; interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; clocks = <&k3_clks 269 1>; power-domains = <&k3_pds 269 TI_SCI_PD_EXCLUSIVE>; #address-cells = <1>; #size-cells = <0>; };
2. pinmux setting, "k3-j721e-common-proc-board.dts"
main_spi3_pins_default: main_spi3_pins_default { pinctrl-single,pins = < J721E_IOPAD(0x144, PIN_OUTPUT, 4) /* (Y25) PRG0_PRU1_GPO17.SPI3_CLK */ J721E_IOPAD(0x148, PIN_OUTPUT, 4) /* (AA26) PRG0_PRU1_GPO18.SPI3_D0 */ J721E_IOPAD(0x14c, PIN_INPUT, 4) /* (AA29) PRG0_PRU1_GPO19.SPI3_D1 */ J721E_IOPAD(0x11c, PIN_OUTPUT, 4) /* (AA24) PRG0_PRU1_GPO7.SPI3_CS0 */ J721E_IOPAD(0xd4, PIN_OUTPUT, 4) /* (AB26) PRG0_PRU0_GPO9.SPI3_CS1 */ >; };
3. Add a spidev node inside the spi3 node like below: "k3-j721e-common-proc-board.dts"
&main_spi3 { pinctrl-names = "default"; pinctrl-0 = <&main_spi3_pins_default>; status="okay"; /*status = "disabled";*/ spidev@0 { spi-max-frequency = <24000000>; reg = <0>; compatible = "linux,spidev"; }; spidev@1 { spi-max-frequency = <24000000>; reg = <1>; compatible = "linux,spidev"; }; };
4. Once I boot Linux one should entries like below:
root@j7-evm:~# ls -l /sys/class/spi*
/sys/class/spi_master:
total 0
lrwxrwxrwx 1 root root 0 Apr 10 00:05 spi0 -> ../../devices/platform/bus@100000/2100000.spi/spi_master/spi0
lrwxrwxrwx 1 root root 0 Apr 10 00:05 spi1 -> ../../devices/platform/bus@100000/2110000.spi/spi_master/spi1
lrwxrwxrwx 1 root root 0 Apr 10 00:05 spi2 -> ../../devices/platform/bus@100000/2120000.spi/spi_master/spi2
lrwxrwxrwx 1 root root 0 Apr 10 00:05 spi3 -> ../../devices/platform/bus@100000/2130000.spi/spi_master/spi3
lrwxrwxrwx 1 root root 0 Apr 10 00:05 spi4 -> ../../devices/platform/bus@100000/2140000.spi/spi_master/spi4
lrwxrwxrwx 1 root root 0 Apr 10 00:05 spi5 -> ../../devices/platform/bus@100000/2150000.spi/spi_master/spi5
lrwxrwxrwx 1 root root 0 Apr 10 00:05 spi6 -> ../../devices/platform/bus@100000/2160000.spi/spi_master/spi6
lrwxrwxrwx 1 root root 0 Apr 10 00:05 spi7 -> ../../devices/platform/bus@100000/2170000.spi/spi_master/spi7
lrwxrwxrwx 1 root root 0 Apr 10 00:05 spi8 -> ../../devices/platform/bus@100000/bus@100000:bus@28380000/47000000.fss/47040000.spi/spi_master/spi8
lrwxrwxrwx 1 root root 0 Apr 10 00:05 spi9 -> ../../devices/platform/bus@100000/bus@100000:bus@28380000/47000000.fss/47050000.spi/spi_master/spi9
/sys/class/spidev:
total 0
lrwxrwxrwx 1 root root 0 Apr 10 00:05 spidev3.0 -> ../../devices/platform/bus@100000/2130000.spi/spi_master/spi3/spi3.0/spidev/spidev3.0
root@j7-evm:~# [ 23.125333] Initializing XFRM netlink socket
5. But it only appears one SPI ibterface with chip select = 0
root@j7-evm:~# ls /dev/ | grep spidev spidev3.0
it should display, isn't it?
spidev 3.0 --> with CS0 (AA24) PRG0_PRU1_GPO7.SPI3_CS0
spidev 3.1--> with CS1 (AB26) PRG0_PRU0_GPO9.SPI3_CS1
Do I miss something?
Many Thanks
Gibbs