VIM3 LCD 调试dts问题咨询

你好,lcd dts配置有几个问题不太清楚,想请教一下khadas的同事,谢谢!LCD pwm背光调节的pin是
GPIOAO_6(JTAG_A_CLK//PWMAO_C//TSIN_A_SOP//TDMB_D2//TDMB_DIN2),对应dts 是pwm_AO_cd MESON_PWM_0 这个值代表什么?

bl_pwm_conf:bl_pwm_conf{
pwm_channel_0 {
pwm_port_index = <6>;
pwms = <&pwm_AO_cd MESON_PWM_0 30040 0>;
};
};

@seekdream1990 具体的定义在代码里面有清晰的解析

/*defination for meson pwm channel index
 *for example:
 *  1.there are four pwm controllers for axg:
 *  pwm A/B ,pwm C/D, pwm AOA/AOB, pwm AOC/AOD.
 *  each controller has four pwm channels:
 *  MESON_PWM_0,MESON_PWM_1,MESON_PWM_2,MESON_PWM_3
 *  when double pwm channels used, pwm channel
 *      [ MESON_PWM_0 and MESON_PWM_2 ],
 *      [ MESON_PWM_1 and MESON_PWM_3 ],
 *  should be used together.
 *
 *  2.there are two three pwm controllers for m8b:
 *  pwm A/B,pwm C/D,pwm E/F.
 *  each controllere has two pwm channels:
 *  MESON_PWM_0 and MESON_PWM_1.
 */
#define     MESON_PWM_0  0
#define     MESON_PWM_1  1
#define     MESON_PWM_2  2
#define     MESON_PWM_3  3

AO_cd 是指选择的pwm,后面的0是指选择的通道

是的 看到了 通道这个怎么确定的?都可以?

pwm_port_index 这个indes又是怎么确定的

@seekdream1990 要看你的硬件连接是哪个脚,具体可以查看原理图

        /* pwm port: PWM_A, PWM_B, PWM_C, PWM_D, PWM_E, PWM_F, PWM_AO_C, PWM_VS */
        /* power index:(point gpios_index, 0xff=invalid)
         * power value:(0=output low, 1=output high, 2=input)
         * power delay:(unit in ms)
         */


dts中已经对这个参数进行了说明了,我们是用AO_cd这个pwm,所以这里是设置成6

我看 vddcpu0用的是GPIOE_1(PWMAO_D) dts配置的是pwms = <&pwm_AO_cd MESON_PWM_1 1500 0>; 用的是MESON_PWM_1 VIM3用的是GPIOAO_6 PWMAO_C 配置的是MESON_PWM_0 。如果我用的是GPIOAO_10 PWMAO_D pwm通道index该配置什么? 没有明白怎么对应的?

@Frank 你好 我看 VIM3 PWM控制是GPIOAO_6 uboot pinmux改为0x72e55 这个值怎么得到的

— a/board/khadas/kvim3/lcd.c
+++ b/board/khadas/kvim3/lcd.c
@@ -149,8 +149,8 @@ static struct lcd_pinmux_ctrl_s lcd_pinmux_ctrl[LCD_PINMX_MAX] = {
static struct lcd_pinmux_ctrl_s bl_pinmux_ctrl[BL_PINMUX_MAX] = {
{
.name = “bl_pwm_on_pin”, //GPIOH_5

  •           .pinmux_set = {{11, 0x00400000}, {LCD_PINMUX_END, 0x0}},
    
  •           .pinmux_clr = {{11, 0x00f00000}, {LCD_PINMUX_END, 0x0}},
    
  •           .pinmux_set = {{0x72e55, 0x03000000}, {LCD_PINMUX_END, 0x0}},
    
  •           .pinmux_clr = {{0x72e55, 0x00f00000}, {LCD_PINMUX_END, 0x0}},
      },

khadas同事能帮忙解答下吗 谢谢 @Frank @Terry

想了解下你的具体需求是什么?如果只是用VIM3适配新的屏幕,是不需要修改这里的。

单纯想搞清楚原因 便于后续开发 :grinning: :grinning: :grinning: :grinning: