当前位置:首页 > 技术 > LINUX > 正文内容

milkv-duo设备上NS2009 驱动配置

Watrt3个月前 (08-14)LINUX3290

NS2009设备中断使用的是GPIOE(GPIO4)的第26脚。这里需要修改Uboot启动配置为GPIO

修改/home/watrt/duo-buildroot-sdk/build/boards/cv180x/cv1800b_milkv_duo_sd/u-boot/cvi_board_init.c文件添加引脚配置

int cvi_board_init(void)
{
	// sensor mclk reset
	PINMUX_CONFIG(PAD_MIPIRX0P, CAM_MCLK0); // Camera MCLK0
	PINMUX_CONFIG(PAD_MIPIRX1N, XGPIOC_8);  // Camera Reset

	// all default gpio
	PINMUX_CONFIG(SD0_PWR_EN, XGPIOA_14);    // Duo Pin 19
	PINMUX_CONFIG(SPK_EN, XGPIOA_15);        // Duo Pin 20
	PINMUX_CONFIG(SPINOR_MISO, XGPIOA_23);   // Duo Pin 21
	PINMUX_CONFIG(SPINOR_CS_X, XGPIOA_24);   // Duo Pin 22
	PINMUX_CONFIG(SPINOR_SCK, XGPIOA_22);    // Duo Pin 24
	PINMUX_CONFIG(SPINOR_MOSI, XGPIOA_25);   // Duo Pin 25
	PINMUX_CONFIG(SPINOR_WP_X, XGPIOA_27);   // Duo Pin 26  这里上NS2009的中断脚
	PINMUX_CONFIG(SPINOR_HOLD_X, XGPIOA_26); // Duo Pin 27
	PINMUX_CONFIG(PWR_SEQ2, PWR_GPIO_4);     // Duo Pin 29

	// ADC pins set to gpio
	PINMUX_CONFIG(ADC1, XGPIOB_3);           // ADC1
	PINMUX_CONFIG(USB_VBUS_DET, XGPIOB_6);   // ADC2

	// I2C0
	PINMUX_CONFIG(IIC0_SCL, IIC0_SCL);
	PINMUX_CONFIG(IIC0_SDA, IIC0_SDA);

	// I2C1
	PINMUX_CONFIG(PAD_MIPIRX1P, IIC1_SDA);
	PINMUX_CONFIG(PAD_MIPIRX0N, IIC1_SCL);

	// PWM
	PINMUX_CONFIG(SD1_D2, PWM_5);
	PINMUX_CONFIG(SD1_D1, PWM_6);

	// UART 4
	PINMUX_CONFIG(SD1_GPIO1, UART4_TX);
	PINMUX_CONFIG(SD1_GPIO0, UART4_RX);
	

	// SPI
	PINMUX_CONFIG(SD1_CLK, SPI2_SCK);
	PINMUX_CONFIG(SD1_CMD, SPI2_SDO);
	PINMUX_CONFIG(SD1_D0, SPI2_SDI);
	PINMUX_CONFIG(SD1_D3, SPI2_CS_X);
	
	pinmux_config(PINMUX_SPI2);

	return 0;
}

添加设备树/home/watrt/duo-buildroot-sdk/build/boards/cv180x/cv1800b_milkv_duo_sd/dts_riscv/cv1800b_milkv_duo_sd.dts:

&i2c0 {
        status = "okay";
        ns2009: ns2009@48 {
                //compatible = "nsiway,ns2009";
                compatible = "ti,tsc2007";
		ti,x-plate-ohms = <180>;
		interrupt-parent = <&porte>;
		interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
		gpios = <&porte 26 GPIO_ACTIVE_HIGH>;
                reg = <0x48>;
        };
};

中断设备修改/home/watrt/duo-buildroot-sdk/build/boards/default/dts/cv180x_riscv/cv180x_base_riscv.dtsi:

gpio4: gpio@05021000 {
		porte: gpio-controller@4 {
			interrupt-controller;
			interrupts = <70 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-parent = <&plic0>;
			#interrupt-cells = <2>;
		};
	};

修改设备树cv180x_base_riscv.dtsi文件添加:

#interrupt-cells = <2>;  这里如果不添加设备的中断会失败

然后在buildroot添加tslib库的支持

Target packages  --->
	Libraries  --->
		Hardware handling  --->
			[*] tslib

启动后运行:

export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0


校准触摸屏

ts_calibrate


分享给朋友:

相关文章

mpalqyer 播放命令

mpalqyer 播放命令

mplayer -vo fbdev2 -vf scale=1366:768 film.avi /usr/bin/mplayer -x 800 -y 480 -zoom -framedrop aa.avi...

基于 debootstrap 和 busybox 构建 mini ubuntu

基于 debootstrap 和 busybox 构建 mini ubuntu

最近的工作涉及到服务器自动安装和网络部署操作系统,然后使用 ansible 和 saltsatck 进行配置并安装 openstack 。难点在于服务器的自动安装,由于不单只是通过 PXE 安装服务器,还需要能够安装时进行分区、配置网卡等工作,因此需要在开始安装前,必须先收集服务器的硬件信息。调研了一下目前的开源项目中,提供此类功能的有 tinycorelinux 、 puppet razor-el-mk 可做类似的工作。tinycorelinux 是个很好的工具,整个系统在 PXE 之后在内存...

使用buildroot构建根文件系统

使用buildroot构建根文件系统

使用buildroot构建根文件系统buildroot可用于构建小型的linux根文件系统。大小最小可低至2M,与内核一起可以放入最小8M的spi flash中。buildroot中可以方便地加入第三方软件包(其实已经内置了很多),省去了手工交叉编译的烦恼。下载安装首先安装一些依赖,比如linux头文件:apt-get install linux-headers-$(uname -r)然后下载安装:wget https://buildroot.org/do...

关于CentOS 下 httpd 修改默认的目录后 403 错误的 解决

关于CentOS 下 httpd 修改默认的目录后 403 错误的 解决

step 1 : 首先改你要设置的目录权限       chmod -R 755 /home/html          -------------->>  /home/html   是你存放你的页面的目录   这里我顺便记录下关于selinux 的命令吧    getenforce=>查看 selinux的状态&nbs...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。