понедельник, 8 апреля 2024 г.

1 Wire на OrangePi Zero3

lsb_release -a

Distributor ID: Debian

Description:    Debian GNU/Linux 12 (bookworm)

Release:        12

Codename:       bookworm

-------------------------------------------------------------------------------------------------------------
Создаем текстовый файл dts с содержимым
-------------------------------------------------------------------------------------------------------------

/dts-v1/;

/ {
        compatible = "allwinner,sun50i-h616";

        fragment@0 {
                target = <0xffffffff>;

                __overlay__ {

                        w1_pins {
                                pins = "PC09";
                                function = "gpio_in";
                                phandle = <0x1>;
                        };
                };
        };

        fragment@1 {
                target-path = [2f 00];

                __overlay__ {

                        onewire@0 {
                                compatible = "w1-gpio";
                                pinctrl-names = "default";
                                pinctrl-0 = <0x1>;
                                gpios = <0xffffffff 0x2 0x09 0x0>;
                                status = "okay";
                        };
                };
        };

        __symbols__ {
                w1_pins = "/fragment@0/__overlay__/w1_pins";
        };

        __fixups__ {
                pio = "/fragment@0:target:0", "/fragment@1/__overlay__/onewire@0:gpios:0";
        };

        __local_fixups__ {

                fragment@1 {

                        __overlay__ {

                                onewire@0 {
                                        pinctrl-0 = <0x0>;
                                };
                        };
                };
        };
};
------------------------------------------------------------------------------------------------------------

Далее нужно обновить конфигурацию дерева устройств и задать номер pin, который будет слушать наш драйвер.  Использовал pin PC9 - gpios 0x2 (C третья буква)

пример конвертации файлов dtb или dtbo в dts и обратно.

# apt-get install device-tree-compiler
# cd /boot/orangepi
# dtc -b 0 -O dts -I dtb -o any.dts any.dtb # dtb -> dts
# редактируем наш dts
# dtc -b 0 -O dtb -I dts -o any.dtb any.dts # dts -> dtb(o)

dtc -b 0 -O dtb -I dts -o sun50i-h616-w1-gpio.dtbo sun50i-h616-w1-gpio.dts


в /boot/orangepiEnv.txt добавлена только строка, возможно и не нужна.

overlays=w1-gpio

в /etc/modules ничего не добавляется.

Комментариев нет:

Отправить комментарий