На плате SK-a40i-nano2e не выведены ethernet LED (link и передача данных). Есть ли возможность задействовав GPIO контроллера выдавать индикацию этих сигналов, пусть даже после загрузки ОС?
надо включить в ядре драйверы и поискать примеры - я не пробовал
Location:
-> Device Drivers
-> Network device support (NETDEVICES [=y])
-> PHY Device support and infrastructure (PHYLIB [=y])
-> Support LED triggers for tracking link state (LED_TRIGGER_PHY [=y])
Location:
-> Device Drivers
-> LED Support (NEW_LEDS [=y])
-> LED Trigger support (LEDS_TRIGGERS [=y])
-> LED Netdev Trigger (LEDS_TRIGGER_NETDEV [=y])
Добрый день. Не стал создавать новую тему, так как вопрос похожий.
На плате есть свободные пины PI12 и PI13. Подскажите, пожалуйста, как и где их сконфигурировать (один на gnd, другой на +3.3) и как потом ими управлять, по каким номерам GPIO и какой командой?
В dts файле PI12 используется для rts UART4 "rts-gpios=<PIN_PI12GPIO_ACTIVE_HIGH>", других упоминаний не нашел.
1. Открываем sun8i-a40i-nano2e-none-sk.dts на виртуалке из папки output/build/linux-custom/arch/arm/boot/dts/
2. Проверяем там не используются ли выбранные нами пины. Если используются, то комментируем их.
3. Затем после regulators добавляем код светодиода с привязкой к нужному пину, чтоб получилось так:
regulators {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
reg_usb0_vbus: regulator@1 {
reg = <1>;
compatible = "regulator-fixed";
regulator-name = "usb0_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
/*
gpio = <PIN_PE 0 GPIO_ACTIVE_HIGH>;
enable-active-high;
*/
};
};
leds {
compatible = "gpio-leds";
eth0_link {
gpios = <&pio 8 13 GPIO_ACTIVE_LOW>;
default-state = "off";
linux,default-trigger = "f802c000.ethernet-ffffffff:00:link";
};
};
4. Выполняем эти пункты make linux-menuconfig
надо включить в ядре драйверы и поискать примеры - я не пробовал
Location:
-> Device Drivers
-> Network device support (NETDEVICES [=y])
-> PHY Device support and infrastructure (PHYLIB [=y])
-> Support LED triggers for tracking link state (LED_TRIGGER_PHY [=y])
Location:
-> Device Drivers
-> LED Support (NEW_LEDS [=y])
-> LED Trigger support (LEDS_TRIGGERS [=y])
-> LED Netdev Trigger (LEDS_TRIGGER_NETDEV [=y])
5. собираем make
6. объединяем образы, заливаем через флешку,заходим в putty и пишем cat /sys/class/leds/eth0_link/trigger
ниже будет показан список возможных триггеров. Тот, что сейчас выбран,будет в квадратных скобках.
7. Привязываем нужный триггер. Я привязал вот такой: echo 1c0b080.mdio-mii:00:link > /sys/class/leds/eth0_link/trigger
и теперь при подключении кабеля изернет светится светодиод (кабеля нет - на пине 3.3 вольта, кабель воткнут - 0 (gnd)) это задается в dts GPIO_ACTIVE_LOW. GPIO_ACTIVE_HIGH - будет наоборот.