主线linux f1c200s fbtft ssd1306 适配记录
作者:互联网
主线linux f1c200s fbtft ssd1306 适配记录
menuconfig中开启staging drivers下small tft菜单中 fb ssd1306, 选择*编译进内核。
修改pio节点如下
pio: pinctrl@1c20800 {
compatible = "allwinner,suniv-pinctrl";
reg = <0x01c20800 0x400>;
interrupts = <38>, <39>, <40>;
clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
clock-names = "apb", "hosc", "losc";
gpio-controller;
interrupt-controller;
#interrupt-cells = <3>;
#gpio-cells = <3>;
spi0_pins_a: spi0-pins-pc {
pins = "PC0", "PC1", "PC2", "PC3";
function = "spi0";
};
spi1_pins_a: spi1-pins-pa {
pins = "PA0", "PA1", "PA2", "PA3";
function = "spi1";
};
lcd_rgb666_pins: lcd-rgb666-pins {
pins = "PD0", "PD1", "PD2", "PD3", "PD4",
"PD5", "PD6", "PD7", "PD8", "PD9",
"PD10", "PD11", "PD12", "PD13", "PD14",
"PD15", "PD16", "PD17", "PD18", "PD19",
"PD20", "PD21";
function = "lcd";
};
uart0_pins_a: uart-pins-pe {
pins = "PE0", "PE1";
function = "uart0";
};
mmc0_pins: mmc0-pins {
pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5";
function = "mmc0";
};
};
修改spi1节点如下
&spi1 {
pinctrl-names = "default";
pinctrl-0 = <&spi1_pins_a>;
status = "okay";
spi-max-frequency = <50000000>;
ssd1306: ssd1306@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "solomon,ssd1306";
reg = <0>;
spi-max-frequency = <50000000>;
buswidth = <8>;
rotate = <0>;
fps = <30>;
spi-cpol;
spi-cpha;
reset-gpios = <&pio 4 11 GPIO_ACTIVE_HIGH>;
dc-gpios = <&pio 4 12 GPIO_ACTIVE_LOW>;
debug = <1>;
};
};
[ 1.028749] fbtft_of_value: buswidth = 8
[ 1.032829] fbtft_of_value: debug = 1
[ 1.036525] fbtft_of_value: rotate = 0
[ 1.040289] fbtft_of_value: fps = 30
[ 1.044381] fb_ssd1306 spi1.0: fbtft_request_one_gpio: 'reset-gpios' = GPIO139
[ 1.051982] fb_ssd1306 spi1.0: fbtft_request_one_gpio: 'dc-gpios' = GPIO140
[ 1.194658] Console: switching to colour frame buffer device 16x8
[ 1.202163] graphics fb0: fb_ssd1306 frame buffer, 128x64, 16 KiB video memory, 4 KiB buffer memory, fps=33, spi1.0 at 50 MHz
标签:function,spi1,适配,fbtft,f1c200s,pins,gpio,ssd1306 来源: https://www.cnblogs.com/hfwz/p/15983371.html