Кто-то может показать рабочий пример настройки SPI-экрана (особенно интересно драйвер ST7796) для Repka Pi 4 (Repka OS)? В блоге находил только примеры настройки экранов через Device Tree для Repka Pi 3, но для Repka Pi 4 по аналогии почему-то не срабатывает.
Если что, вот это у меня на Repka Pi 4 (Repka OS) не работает (в ОС включен вариант 2):
MISO - PH6
SCK - PH4
MOSI - PH5
DC - PL3
RESET - PL4
CS - PH3
/dts-v1/;
/plugin/;
/ {
compatible = "allwinner,sun50i-h6-spi";
fragment@0 {
target = <&pio>;
__overlay__ {
st7796s_pins: st7796s_pins {
pins = "PL4", "PL3"; /* RESET, DC */
function = "gpio_out", "gpio_out";
};
};
};
fragment@1 {
target = <&spi1>;
__overlay__ {
/* CS0 PH3 */
cs-gpios = <&pio 7 3 0>;
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
st7796s: st7796s@0{
compatible = "sitronix,st7796s";
reg = <0>;
pinctrl-names = "default";
pinctrl-0 = <&st7796s_pins>;
spi-max-frequency = <16000000>;
fps = <30>;
buswidth = <8>;
reset-gpios = <&pio 11 4 1>; /* PL4 */
dc-gpios = <&pio 11 3 0>; /* PL3 */
rotate = <270>;
debug = <1>;
};
};
};
};
Компилируется в sun50i-h6-st7796s.dtbo без ошибок. В repkaEnv.txt прописано:
overlays=i2c1 sun50i-h6-st7796s
Модуль fb_st7796s присутствует в списке загруженных (если смотреть командой lsmod).
При этом dmesg после перезагрузки выдает такую информацию:
[ 23.521428] sun50i-h6-pinctrl 300b000.pinctrl: unknown pin PL4
[ 23.527303] sun50i-h6-pinctrl 300b000.pinctrl: unknown pin PL3
[ 23.533168] fb_st7796s spi0.0: there is not valid maps for state default
[ 23.533279] fb_st7796s spi0.0: fbtft_property_value: buswidth = 8
[ 23.533289] fb_st7796s spi0.0: fbtft_property_value: debug = 1
[ 23.533296] fb_st7796s spi0.0: fbtft_property_value: rotate = 270
[ 23.533304] fb_st7796s spi0.0: fbtft_property_value: fps = 30
[ 23.536188] spi spi0.0: deferred probe pending: fb_st7796s: Failed to request reset GPIO
На SPI-экран ничего не выводится, в системе присутствует один fb0 связанный с hdmi-монитором.
Если что, вот это у меня на Repka Pi 4 (Repka OS) не работает (в ОС включен вариант 2):
MISO - PH6
SCK - PH4
MOSI - PH5
DC - PL3
RESET - PL4
CS - PH3
/dts-v1/;
/plugin/;
/ {
compatible = "allwinner,sun50i-h6-spi";
fragment@0 {
target = <&pio>;
__overlay__ {
st7796s_pins: st7796s_pins {
pins = "PL4", "PL3"; /* RESET, DC */
function = "gpio_out", "gpio_out";
};
};
};
fragment@1 {
target = <&spi1>;
__overlay__ {
/* CS0 PH3 */
cs-gpios = <&pio 7 3 0>;
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
st7796s: st7796s@0{
compatible = "sitronix,st7796s";
reg = <0>;
pinctrl-names = "default";
pinctrl-0 = <&st7796s_pins>;
spi-max-frequency = <16000000>;
fps = <30>;
buswidth = <8>;
reset-gpios = <&pio 11 4 1>; /* PL4 */
dc-gpios = <&pio 11 3 0>; /* PL3 */
rotate = <270>;
debug = <1>;
};
};
};
};
Компилируется в sun50i-h6-st7796s.dtbo без ошибок. В repkaEnv.txt прописано:
overlays=i2c1 sun50i-h6-st7796s
Модуль fb_st7796s присутствует в списке загруженных (если смотреть командой lsmod).
При этом dmesg после перезагрузки выдает такую информацию:
[ 23.521428] sun50i-h6-pinctrl 300b000.pinctrl: unknown pin PL4
[ 23.527303] sun50i-h6-pinctrl 300b000.pinctrl: unknown pin PL3
[ 23.533168] fb_st7796s spi0.0: there is not valid maps for state default
[ 23.533279] fb_st7796s spi0.0: fbtft_property_value: buswidth = 8
[ 23.533289] fb_st7796s spi0.0: fbtft_property_value: debug = 1
[ 23.533296] fb_st7796s spi0.0: fbtft_property_value: rotate = 270
[ 23.533304] fb_st7796s spi0.0: fbtft_property_value: fps = 30
[ 23.536188] spi spi0.0: deferred probe pending: fb_st7796s: Failed to request reset GPIO
На SPI-экран ничего не выводится, в системе присутствует один fb0 связанный с hdmi-монитором.
Последнее редактирование: