前置工作
在开始之前你要确定你的软件所走的dts配置,在uboot打印中:
Support 6 dtbs.
aml_dt soc: gxlx platform: p261 variant: 1g
dtb 0 soc: gxl plat: p211 vari: 1g
dtb 1 soc: gxl plat: p215 vari: 1g
dtb 2 soc: gxlx plat: p261 vari: 1g
dtb 3 soc: gxlx plat: p265 vari: 1g
dtb 4 soc: gxlx2 plat: p291 vari: 1g
dtb 5 soc: gxlx2 plat: p295 vari: 1g
Find match dtb: 2
如上:
aml_dt soc: gxlx platform: p261 variant: 1g
表明你板子所依赖的dts的amlogic-dt-id="gxlx_p261_1g"
查找此amlogic-dt-id,我们得到:gxlx_p261.dts
因此所有的修改应该基于此dts文件修改。Aml IPTV SDK的所有dts路径位于:
common/arch/arm64/boot/dts/amlogic/
1.电源灯与网络灯
查找light节点,修改:
ledlight{
compatible = "amlogic, ledlight";
dev_name = "ledlight";
status = "okay";
power_gpio_0 = <&net_gpio_0>;
power_gpio_1 = <&power_gpio_1>;
//别名
net_gpio_0: gpio_rg{
//灯的名称
led_name = "net_led";
//gpio管脚配置
led_gpio = <&gpio GPIODV_27 GPIO_ACTIVE_HIGH>;
//设定高低电平电量,1代表拉高点亮,0代表拉低点亮
led_active = <1>;
//灯管颜色类型,R/G/R&G
led_type = "R&G";
};
power_gpio_1: gpio_1{
led_name = "power_led";
led_gpio = <&gpio GPIODV_26 GPIO_ACTIVE_HIGH>;
led_active = <1>;
led_type = "R&G";
};
};
各节点配置说明如下:
变量名 | 含义 | 可选配置 | 备注 |
---|---|---|---|
led_name | 设定灯的名称 | powerled/netled | NA |
led_gpio | 设定灯的管脚 | 视原理图而定 | NA |
led_active | 设定灯点亮需要的电平,对于双色灯是设定其默认颜色 | 0/1 | 可在uboot里面执行gpio s/c命令来确认所需状态,如gpio s GPIODV_26来拉高GPIODV_26 管脚 |
led_type | 设定灯管颜色类型 | R/G/R&G | 可随意配置 |
2.遥控灯的配置
在dts根节点添加或修改下述配置:
&meson_remote {
led-gpios = <&gpio GPIODV_26 GPIO_ACTIVE_HIGH>;
led_status_on = <1>;
status = "okay";
};
各节点配置说明如下:
变量名 | 含义 | 可选配置 | 备注 |
---|---|---|---|
led-gpios | 遥控灯所需的gpio | 视原理图而定 | NA |
led_status_on | 设定点亮遥控灯的电平 | 0/1 | 可在uboot里面执行gpio s/c命令来确认所需状态,如gpio s GPIODV_26来拉高GPIODV_26 管脚 |
status | 驱动是否开启,okay代表开启,disable代表关闭 | okay/disable | 视需求而定 |
3.上层调用
import android.os.FileUtils;
... ...
String prefix1 = "/proc/ledlight/powerled/state";
String prefix2 = "/proc/ledlight/netled/state";
FileUtils.stringToFile(prefix1, "on");
FileUtils.stringToFile(prefix2, "off");
网友评论