Я настроил дерево устройств моего биглебона.Некоторые встроенные периферийные устройства, такие как I2C, UART и т. Д., И соответствующие контакты на заголовках P8 и P9 включены, а некоторые другие отключены.
Чтобы пользователи не могли захватывать контакты, занятые периферийными устройствами, мне нужнозапретить пользователю экспорт, экспорт, изменение направления и стоимости выводов, используемых периферийными устройствами.Другими словами, если пользователь пытается выполнить
debian@beaglebone:~$ sudo echo 4 > /sys/class/gpio/export
, это должно привести к ошибке (Когда оверлеты uboot включены в /boot/uENV.txt, установив
enable_uboot_overlays=1
в указанном файле икомментирование
disable_uboot_overlay_video = 1
экспорт выводов LCD приводит к такой ошибке)
Файл .dts, написанный мной, однако, разрешает периферию I2C1, но позволяет пользователю изменять направление и значение на SDA и SCLpins.
Я добавил узлы в файл am335x-boneblack.dts, как указано ниже: узел
pinmux_i2c1_pins {
pinctrl-single,pins = <0x158 0x32 0x15c 0x32>;
linux,phandle = <0xdd>;
phandle = <0xdd>;
};
был добавлен к узлу "pinmux @ 800",
i2c@4802a000 {
compatible = "ti,omap4-i2c";
#address-cells = <0x1>;
#size-cells = <0x0>;
ti,hwmods = "i2c2";
reg = <0x4802a000 0x1000>;
interrupts = <0x47>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0xdd>;
clock-frequency = <100000>;
linux,phandle = <0xa0>;
phandle = <0xa0>;
};
был добавлен к узлу "ocp", и, наконец,
i2c1_pins ="/ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c1_pins";
был добавлен к узлу "__symbols__".
Если я должен изменить файл uboot или в файле .dts, какой-то код должен быть добавлен?Заранее спасибо