给linux移植fbtft驱动st7735s小屏幕(f1c100s)

本文讲述了作者如何在Linux内核5.4环境下配置SPI接口以连接小屏幕,并在设备树中修改引脚正负逻辑,解决背光驱动问题的过程,包括使用GPIO和调整内核配置以确保设备正常工作。


内核版本5.4
在使用spi总线接上了一个小网卡,实现了我们开发板对网络的访问之后,我还想接一个小的 spi屏幕 1.44寸款,来画一只小企鹅,顺便显示一些系统的调试信息。但是由于我这个开发板向外暴露出来的spi接口就两个,而且有一个已经因为串口的设置而不能使用。所以我们只能让这个小屏幕和enc28j60共用一个spi外设。

内核配置

直接make menuconfig,进入Device Drivers,打开SPI,打开ST7735R的驱动。保存,再make -j16.

接线与修改设备树

我打算让enc28j60使用spi自己的cs作为片选线,然后另外找一个GPIO作为spi屏幕的片选。
那这样的话又得改设备树。我们这个spi屏幕的驱动器芯片是"st7735s"。但是linux有st7735r,这俩
是兼容的,可以直接用。

/ {
   
   
	model = "Lichee Pi Nano";
	compatible = "licheepi,licheepi-nano", "allwinner,suniv-f1c100s";

	aliases {
   
   
		serial1 = &uart1;
	};

	chosen {
   
   
		stdout-path = "serial1:115200n8";
		/delete-node/ framebuffer@0;
	};
	
	reg_vcc3v3: vcc3v3 {
   
   
			compatible = "regulator-fixed";
			regulator-name = "vcc3v3";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
	};

	backlight: backlight {
   
   
		compatible = "gpio-backlight";
		gpios = <&pio 4 4 GPIO_ACTIVE_HIGH>;
		default-on;
	};
};

&spi1{
   
   
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&spi1_pins>;
	cs-gpios = <0>,<&pio 4 5 GPIO_ACTIVE_LOW>;
	enc28j60: ethernet@0 {
   
   
		compatible = "microchip,enc28j60";
		pinctrl-names = "default";
		pinctrl-0 = <&enc28j60_pins>;
		reg = <0x0>;
		interrupt-parent = <&pio>;
		interrupts = <4 11 IRQ_TYPE_EDGE_FALLING>;
		spi-max-frequency = <12000000>;
	};
	display@1{
   
   
		compatible = "okaya,rh128128t", "sitronix,st7735r";
		reg = <0x1>;
		status = "okay";
		spi-max-frequency = <48000000>;
		spi-cpol;
		spi
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值