nvidia jeston 设备树使能SPI

nvidia jeston 使能SPI function

环境

hw:nvidia jeston xaveir开发板
sw:hardware device tree source code

使能

两种方式

jeston-io py脚本配置

比较简单

 sudo /opt/nvidia/jetson-io/jetson-io.py

此种方式在emmc版本设备上可行,在sd卡版本上实测不行,网上教程比较多
由于我们是sd卡启动,我们还是走device tree这种方式

device tree配置

打开设备树,找到pinmux对应位置,修改下述设备树如下

/* use to spi1 and spi2 */
			spi1_mosi_pc0 {
				nvidia,pins = "spi1_mosi_pc0";
				nvidia,function = "spi1";
				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
				nvidia,tristate = <TEGRA_PIN_DISABLE>;
				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
			};

			spi1_miso_pc1 {
				nvidia,pins = "spi1_miso_pc1";
				nvidia,function = "spi1";
				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
				nvidia,tristate = <TEGRA_PIN_DISABLE>;
				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
			};

			spi1_sck_pc2 {
				nvidia,pins = "spi1_sck_pc2";
				nvidia,function = "spi1";
				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
				nvidia,tristate = <TEGRA_PIN_DISABLE>;
				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
			};

			spi1_cs0_pc3 {
				nvidia,pins = "spi1_cs0_pc3";
				nvidia,function = "spi1";
				nvidia,pull = <TEGRA_PIN_PULL_UP>;
				nvidia,tristate = <TEGRA_PIN_DISABLE>;
				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
			};

			spi1_cs1_pc4 {
				nvidia,pins = "spi1_cs1_pc4";
				nvidia,function = "spi1";
				nvidia,pull = <TEGRA_PIN_PULL_UP>;
				nvidia,tristate = <TEGRA_PIN_DISABLE>;
				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
			};

然后将上述代码移动到:

		pinmux_default: common

因为原来在disable下面
使能查看

ls /proc/device-tree/pinmux@700008d4/common/spi*
sudo cat /sys/kernel/debug/tegra_pinctrl_reg | grep -i spi

测试

下载spi test.c,这里我挂在了github上,可自取

https://github.com/doncejiang/spi_test

编译之后执行(注意将MISO和MOSI短接),效果如下:

donce@donce-linux:~/donce/code$ ./spi_test -D /dev/spidev0.0
spi mode: 0
bits per word: 8
max speed: 500000 Hz (500 KHz)

FF FF FF FF FF FF
40 00 00 00 00 95
FF FF FF FF FF FF
FF FF FF FF FF FF
FF FF FF FF FF FF
DE AD BE EF BA AD
F0 0D

END

你可能感兴趣的:(NVIDIA,Linux,ARM,linux,开源)