|
1. 我的设备树文件所增加部分如下:spi2 {
pinctrl-names = "default";
pinctrl-0 = <&spi2_gpio_pins_default>;
#address-cells = <0x01>;
#size-cells = <0>;
compatible = "spi-gpio";
gpio-sck = <&gpio7 14 0>;
gpio-miso = <&gpio7 15 0>;
gpio-mosi = <&gpio7 16 0>;
cs-gpios = <&gpio7 17 0>;
num-chipselects = <1>;
ad5781@0 {
compatible = "spi-gpio";
spi-max-frequency = <64000000>;
reg = <0>;
spi-tx-bus-width = <1>;
spi-rx-bus-width = <4>;
#address-cells = <1>;
#size-cells = <1>;
};
spi1_gpio_pins_default: spi1_gpio_pins_default {
pinctrl-single,pins = <
DRA7XX_CORE_IOPAD(0x37a4, (INPUT_EN | MUX_MODE14)) /* spi1_sclk.spi1_sclk (C24) */
DRA7XX_CORE_IOPAD(0x37a8, (INPUT_EN | MUX_MODE14)) /* spi1_d1.spi1_d1 (D24) */
DRA7XX_CORE_IOPAD(0x37ac, (INPUT_EN | MUX_MODE14)) /* spi1_d0.spi1_d0 (D25) */
DRA7XX_CORE_IOPAD(0x37b0, (INPUT_EN | MUX_MODE14)) /* spi1_cs0.spi1_cs0 (B24) */
>;
};
spi2_pins_default: spi2_pins_default {
pinctrl-single,pins = <
DRA7XX_CORE_IOPAD(0x37c0, (INPUT_EN | MUX_MODE0)) /* spi2_sclk.spi2_sclk (G25) */
DRA7XX_CORE_IOPAD(0x37c4, (INPUT_EN | MUX_MODE0)) /* spi2_d1.spi2_d1 (F25) */
DRA7XX_CORE_IOPAD(0x37c8, (INPUT_EN | MUX_MODE0)) /* spi2_d0.spi2_d0 (G24) */
DRA7XX_CORE_IOPAD(0x37cc, (PIN_OUTPUT_PULLUP | MUX_MODE0)) /* spi2_cs0.spi2_cs0 (F24) */
>;
};
spi2_gpio_pins_default: spi2_gpio_pins_default {
pinctrl-single,pins = <
DRA7XX_CORE_IOPAD(0x37C0, (INPUT_EN | MUX_MODE14)) /* spi2_sclk.spi2_sclk (G25) */
DRA7XX_CORE_IOPAD(0x37c4, (INPUT_EN | MUX_MODE14)) /* spi2_d1.spi2_d1 (F25) */
DRA7XX_CORE_IOPAD(0x37c8, (INPUT_EN | MUX_MODE14)) /* spi2_d0.spi2_d0 (G24) */
DRA7XX_CORE_IOPAD(0x37cc, (INPUT_EN | MUX_MODE14)) /* spi2_cs0.spi2_cs0 (F24) */
>;
};
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
2. 在/sys相关的目录下可以找到安装的相关的文件
root@AM57xx-Tronlong:/# ls /sys/devices/platform/
44000000.ocp connector fixedregulator-aic_dvdd gpio_keys opp_table0 reg-dummy spi2
Fixed MDIO bus.0 display fixedregulator-mmcwl leds pmu serial8250 ti-cpufreq
alarmtimer dmtimer-pwm@4 fixedregulator-vdd_3v3 omap_dma_system.0 power snd-soc-dummy timer
backlight encoder fixedregulator-vtt omapdrm.0 pruss2_eth soc uevent
cmem extcon_usb2_0 gpio_fan omapdss pwm_fan sound0
------------------------------------------------------------------------------------------------------------------------------------------------------------------
root@AM57xx-Tronlong:/# ls /sys/devices/platform/spi2/
driver driver_override modalias of_node power spi_master subsystem uevent
------------------------------------------------------------------------------------------------------------------------------------------------------------------
root@AM57xx-Tronlong:/# ls /sys/devices/platform/spi2/of_node
#address-cells ad5781@0 cs-gpios gpio-mosi name pinctrl-0
#size-cells compatible gpio-miso gpio-sck num-chipselects pinctrl-names
root@AM57xx-Tronlong:/#
------------------------------------------------------------------------------------------------------------------------------------------------------------------
3. 关于LED相关的文件:
root@AM57xx-Tronlong:/# ls /sys/class/leds/
disk heartbeat user-led0 user-led1 user-led2
root@AM57xx-Tronlong:/#
使用以下两条指令可以控制LED
Target# echo 0 > /sys/class/leds/user-led0/brightness //控制LED1灭
Target# echo 1 > /sys/class/leds/user-led0/brightness //控制LED1亮
**********************************************************************************************************************************************************
4. 在安装spi驱动过程中,驱动正常安装好,使用lsmod可以看到如下安装的模块
root@AM57xx-Tronlong:/dev# lsmod
Module Size Used by
rpmsg_proto 6870 0
rpmsg_rpc 19706 0
spi_gpio 5857 0
spi_bitbang 3922 1 spi_gpio
snd_soc_simple_card 5844 0
snd_soc_simple_card_utils 5095 1 snd_soc_simple_card
ti_prueth 54847 0
pru_rproc 10520 1 ti_prueth
pruss 9774 2 pru_rproc,ti_prueth
pwm_fan 4987 0
pruss_intc 7227 5 pru_rproc
extcon_usb_gpio 3929 0
pwm_omap_dmtimer 4326 1
bc_example 7198 0
snd_soc_omap_hdmi_audio 4609 0
pruss_soc_bus 4207 0
omap_wdt 4634 0
ahci_platform 3474 0
libahci_platform 8821 1 ahci_platform
libahci 28551 2 ahci_platform,libahci_platform
pvrsrvkm 409225 5 bc_example
libata 205790 3 ahci_platform,libahci_platform,libahci
c_can_platform 6604 0
c_can 9526 1 c_can_platform
ti_vip 40998 0
ti_vpe 18634 0
ti_sc 24305 2 ti_vpe,ti_vip
ti_csc 2351 2 ti_vpe,ti_vip
ti_vpdma 14974 2 ti_vpe,ti_vip
ti_cpsw 31896 0
can_dev 13099 1 c_can
cpsw_common 1852 1 ti_cpsw
ina2xx 4692 0
snd_soc_tlv320aic3x 48423 1
ads7846 13258 0
omap_remoteproc 12760 0
virtio_rpmsg_bus 9418 2 rpmsg_rpc,rpmsg_proto
rpmsg_core 7124 3 rpmsg_rpc,rpmsg_proto,virtio_rpmsg_bus
remoteproc 28915 5 pru_rproc,ti_prueth,rpmsg_rpc,omap_remoteproc,rpmsg_proto
sch_fq_codel 8911 4
cryptodev 37775 0
cmemk 35291 2
root@AM57xx-Tronlong:/dev#
5. 但是在/dev目录下没有生成设备节点(设备文件),所以我就无法在应用程序中调用其资源进行测试。而且在/dev目录下也未找到LED相关的设备节点。
所有设备节点如下所示:
root@AM57xx-Tronlong:/dev# ls
autofs ptyb2 ptyq0 ptyue ptyzc tty51 ttyd3 ttys1 ttywf
bc_example ptyb3 ptyq1 ptyuf ptyzd tty52 ttyd4 ttys2 ttyx0
block ptyb4 ptyq2 ptyv0 ptyze tty53 ttyd5 ttys3 ttyx1
bus ptyb5 ptyq3 ptyv1 ptyzf tty54 ttyd6 ttys4 ttyx2
char ptyb6 ptyq4 ptyv2 ram0 tty55 ttyd7 ttys5 ttyx3
cmem ptyb7 ptyq5 ptyv3 ram1 tty56 ttyd8 ttys6 ttyx4
console ptyb8 ptyq6 ptyv4 ram10 tty57 ttyd9 ttys7 ttyx5
cpu_dma_latency ptyb9 ptyq7 ptyv5 ram11 tty58 ttyda ttys8 ttyx6
6. SPI驱动程序并非我自己写的,是我根据贵公司给的教学视频中的操作,使用的是贵公司所提供的内核中自带的驱动,我只是修改了设备树文件。现在我该采取如何措施可以生成设备节点,或者应用程序可以调用其他的文件可以和操作设备节点一样操作我的硬件设备。
|
|