This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
library:rk3568:lcddrv [2022/11/02 23:39] lhaosen [2.1 gpio-leds + spidev] |
library:rk3568:lcddrv [2022/11/02 23:55] (current) lhaosen [2. Linux驱动设计(A)] |
||
---|---|---|---|
Line 47: | Line 47: | ||
* spi: / | * spi: / | ||
- | === - spi配置 === | + | ==== - 控制IO ==== |
+ | === - dts === | ||
+ | < | ||
+ | lcd_reset: | ||
+ | label = " | ||
+ | linux, | ||
+ | default-state = " | ||
+ | gpios = <& | ||
+ | }; | ||
+ | |||
+ | lcd_backlight: | ||
+ | label = " | ||
+ | linux, | ||
+ | default-state = " | ||
+ | gpios = <& | ||
+ | }; | ||
+ | |||
+ | lcd_data: data { | ||
+ | label = " | ||
+ | linux, | ||
+ | default-state = " | ||
+ | gpios = <& | ||
+ | }; | ||
+ | </ | ||
+ | 添加以上3个pin的gpio-leds节点,驱动成功后的访问入口为: | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | |||
+ | 可以用命令测试这几个pin的状态: | ||
+ | # backlight = 1 | ||
+ | echo 1 > / | ||
+ | # backlight = 0 | ||
+ | echo 1 > / | ||
+ | ==== - spidev配置 | ||
修改DTS及添加驱动到内核 | 修改DTS及添加驱动到内核 | ||
- | == - 内核配置spidev == | + | |
+ | === - 内核配置spidev | ||
Device Drivers ‐‐‐> | Device Drivers ‐‐‐> | ||
Line 58: | Line 93: | ||
=== - dts配置 === | === - dts配置 === | ||
- | == - rk3568-firefly-mplayer.dtsi | + | * rk3568-firefly-mplayer.dtsi |
- | * 使能spi0 | + | 添加节点spi0 |
- | &spi0 { | + | < |
+ | &spi0 { | ||
status = " | status = " | ||
max-freq = < | max-freq = < | ||
- | | + | |
+ | pinctrl-1 = <& | ||
+ | spidev@0 { | ||
compatible = " | compatible = " | ||
- | reg = <0>; /* CS0 */ | + | reg = <0>; // CS0 |
spi-max-frequency = < | spi-max-frequency = < | ||
}; | }; | ||
- | | + | }; |
+ | </ | ||
+ | * pinctrl-0/1 重写覆盖了原定义,cs脚使用 spi0m0_cs1 代替 spi0m0_cs0 | ||
+ | * 停用冲突的管脚: | ||
- | == disable uart8 == | ||
- | uart8于spi0管脚冲突,使uart8无效 | ||
- | &uart8 { | ||
- | status = " | ||
- | }; | ||
- | | ||
| | ||
==== - Demo script ==== | ==== - Demo script ==== | ||