flash 配置相关文件路径:
Flashlight source code and header file:
– [ANDROID]/[KERNEL]/driver/misc/mediatek/flashlight
Kernel config and Makefile:
– [ANDROID]/[KERNEL]/driver/misc/mediatek/flashlight/Kconfig
– [ANDROID]/[KERNEL]/driver/misc/mediatek/flashlight/Makefile
– [ANDROID]/[KERNEL]/arch/arm64/configs/[PROJECT_defconfig]
Device tree:
– [ANDROID]/[KERNEL]/arch/arm64/boot/dts/[PROJECT].dts
– [ANDROID]/[KERNEL]/arch/arm64/boot/dts/[PLATFORM].dts
– [ANDROID]/[KERNEL]/drivers/misc/mediatek/dws/[PLATFORM]/[PROJ
ECT].dws
- Add new platform or project in mapping table
TYPE: 0(Rear led set), 1(front led set)
CT: 0(High color temp), 1(low color temp)
PART: HW part, just modify part 0, if you are not sure about this.
/* {TYPE, CT, PART, "NAME", CHANNEL, DECOUPLE} */
{1, 0, 0, "flashlights-subflashlight-gpio", 1, 0},
配置对应的flashlight gpio pin
device/mediateksample/tb8168p1_64_bsp/starmini/WFE01_WXGA/tb8168p1_64_bsp.dts
+&flashlight_sub{
+ pinctrl-names = "default", "sub_hwen_high", "sub_hwen_low";
+ pinctrl-0 = <&flashlight_sub_pins_default>;
+ pinctrl-1 = <&flashlight_sub_pins_hwen_high>;
+ pinctrl-2 = <&flashlight_sub_pins_hwen_low>;
+ status = "okay";
+};
&flashlights_led191 {
pinctrl-names = "default", "hwen_high", "hwen_low";
pinctrl-0 = <&flashlight_pins_default>;
@@ -1084,7 +1095,30 @@ ROOT_NODE {
};
};
-
+ flashlight_sub_pins_default: flashlight_sub_pins_default {
+ pins_cmd_dat {
+ pinmux = <MT8168_PIN_119_DMIC0_DAT1__FUNC_GPIO119>;
+ slew-rate = <1>;
+ output-low;
+ };
+ };
+
+ flashlight_sub_pins_hwen_high: flashlight_sub_pins_hwen_high {
+ pins_cmd_dat {
+ pinmux = <MT8168_PIN_119_DMIC0_DAT1__FUNC_GPIO119>;
+ slew-rate = <1>;
+ output-high;
+ };
+ };
+
+ flashlight_sub_pins_hwen_low: flashlight_sub_pins_hwen_low {
+ pins_cmd_dat {
+ pinmux = <MT8168_PIN_119_DMIC0_DAT1__FUNC_GPIO119>;
+ slew-rate = <1>;
+ output-low;
+ };
+ };
+
};
对应的 flashlights-gpio-sub.c代码参考flashlights-dummy-gpio.c 去控制闪光灯。
详细文档参看官方文档: