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

milkv-duo设备上NS2009 驱动配置

Watrt2年前 (2024-08-14)LINUX14900

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


打赏 支付宝打赏 微信打赏

相关文章

Deepin Linux修复grub引导

Deepin Linux修复grub引导

环境说明:一直使用的是Win7+Deepin 15.5。后来全新安装了Win 10,需要修复grub第一步:在Windows操作系统下使用深度官方的U盘启动制作器 制作U盘第二步:开机U盘启动进入Deepin linux安装界面,待进入到安装界面选择语言时,按住Crtl+Alt+F2/F1进入Linux tty终端。并执行以下命令完成修复sudo fdisk -l/*根据查询结果确定deepin 的/目录和/boot目录所在的分区编号*/sudo mount&nbs...

buildroot编译中的问题

buildroot编译中的问题

在编译中遇到flex 报错。一直过不了。后来发现安装flex bison两个包后解决sudo apt-get install flex bison...

Linux没有最小只有更小----迷你Linux版本大集合

Linux没有最小只有更小----迷你Linux版本大集合

    自从去年到现在已经收集了上百种版本的Linux和Unix,至于Unix就不想说了,没有Linux的功底是很难驾驭Unix的,我在这里只把小于360M的Linux以及一些非Linux但是很像Linux的版本也发布一下,我本人喜欢安静,如果你想要这些迷你版本的Linux光盘的话,建议去官网下载就OK了。英语不行的话随时带个字典。有些没有桌面,想知道哪些没有桌面的话请自己网上查资料!下面就是绝大部分小于361M的Linux及其非Linux名单,参考时间为...

debootstrap报"Release signed by unknown key"错误的解决方法

debootstrap报"Release signed by unknown key"错误的解决方法

1、下载最新的ASC文件:wget https://ftp-master.debian.org/keys/release-11.asc -qO- | gpg --import --no-default-keyring --keyring ./debian-release-11.gpg注意这里的11对应debian的版本号。我这里是debian11 (bullseye)2、debootstrap指定asc文件sudo&...

老是提示:newer kernel available 解决方法

老是提示:newer kernel available 解决方法

这个是由于没有正确的安装内核造成的。可以直接关掉提示 sudo apt purge needrestart...

Configure & Build

Configure & Build

Configure and build Linux kernel for Surface RTEditing kernel build configurationFirst run the command make ARCH=arm tegra_defconfigThis will create a standard kernel config for tegra SoC's.Open the file .config in the kernel source directory wit...

f1c100s编译启动所需的uboot,kernel,rootfs

f1c100s编译启动所需的uboot,kernel,rootfs

 https://github.com/Icenowy/linux.git 有f1c100s-480272lcd-test和f1c100s分支, 然后自己手动修复一个 USB 问题,驱动就比较全了https://github.com/Lichee-Pi/linux.git 有nano-4.14-exp和nano-5.2-flash分支,用哪个合适个人画了块没有连接任何其他模块的F1C100S开发板,没有链接任何外设,本文是编译所有启动所需的三大件。(只要编...

荔枝派Nano的linux5.2版本主线下载及编译(支持USB设备与主机模式)

荔枝派Nano的linux5.2版本主线下载及编译(支持USB设备与主机模式)

安装必须的库:sudo apt-get install gcc make cmake rsync wget unzip build-essential git bc swig libncurses-dev libpython3-dev libssl-dev python3-distutils android-tools-mkbo...

发表评论

访客

看不清,换一张

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