Это короткая заметка как запустить сенсор на Repka Pi. Более подробная статья будет позже.
Я собирал из исходников Uboot-repka, идем на сайт и скачиваем архив с DTS
По иронии судьбы для сборки потребуется Ubuntu x86 или другой Linux. На Repka Pi 3 собрать не получится!
Небольшое описание сборки dtb из исходника #
Распаковываем архив
unzip u-boot-v2022.04.zip
и переходим в папку
cd u-boot-v2022.04
Устанавливаем пакеты
sudo apt-get update`
sudo apt-get -y install gcc-aarch64-linux-gnu
Очистка файлов предыдущей сборки
make clean
Сборка
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
make Repka_H5_defconfig
make dtbs
ВНИМАНИЕ: При компиляции могут потребоваться и другие пакеты! Тут самостоятельно, все что ставил уже не помню!
Редактируем dts #
dts находятся по пути arch\arm\dts в папке u-boot-v2022.04
Рассмотрим на примере sun50i-h5-repka-pi3-alt-1.2ghz.dts, открываем файл
Находим
&pio {
spi0_cs1: spi0_cs1 {
pins = "PA3";
function = "gpio_out";
output-high;
};
};
Меняем на
&pio {
spi0_cs1: spi0_cs1 {
pins = "PA3";
function = "gpio_out";
output-high;
};
ads7846_pins: ads7846_pins {
pins= "PA2";
function = "irq";
};
};
Находим
&spi0 {
pinctrl-names = "default", "default";
pinctrl-1 = <&spi0_cs1>;
cs-gpios = <0>, <&pio 0 3 0>; /* PA3 */
status = "okay";
spidev@0 {
compatible = "rohm,dh2228fv";
status = "okay";
reg = <0>;
spi-max-frequency = <1000000>;
};
spidev@1 {
compatible = "rohm,dh2228fv";
status = "okay";
reg = <1>;
spi-max-frequency = <1000000>;
};
};
Меняем на
&spi0 {
pinctrl-names = "default", "default";
pinctrl-1 = <&spi0_cs1>;
cs-gpios = <0>, <&pio 0 3 0>; /* PA3 */
status = "okay";
ads7846@0 {
compatible = "ti,ads7846";
reg = <0>; /* Chip Select 0 */
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&ads7846_pins>;
spi-max-frequency = <2000000>;
interrupt-parent = <&pio>;
interrupts = <0 2 2>; /* PA2 IRQ_TYPE_EDGE_FALLING */
pendown-gpio = <&pio 0 2 0>; /* PA2 */
/* driver defaults, optional */
ti,x-min = /bits/ 16 <0>;
ti,y-min = /bits/ 16 <0>;
ti,x-max = /bits/ 16 <0x0FFF>;
ti,y-max = /bits/ 16 <0x0FFF>;
ti,pressure-min = /bits/ 16 <0>;
ti,pressure-max = /bits/ 16 <0xFFFF>;
ti,x-plate-ohms = /bits/ 16 <400>;
};
spidev@1 {
status = "disabled";
};
};
Теперь можно собрать новый dtb и заменить им файл sun50i-h5-repka-pi3.dtb на карте в папке boot
Настройка со стороны Repka Pi #
Устанавливаем пакет
apt-get install xserver-xorg-input-evdev
Переименовываем файл
cp -rf /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf
Выполняем reboot и смотрим как работает сенсор
Калибровка #
Устанавливаем пакет
apt-get install xinput-calibrator
Запускаем
DISPLAY=:0.0 xinput_calibrator
Сам калибровку не выполнял! Как выполню дополню Заметку
Супер!
А можно фотки посмотреть с работающим уже экраном?