导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    T113S3的pwm默认极性问题

    Linux
    1
    1
    18
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • S
      Shaco_Ma LV 4 最后由 编辑

      各位大佬们好!
      刚刚再看pwm的部分,发现手册写的是默认是0,如下图
      901c986e-b833-4a8d-a569-edb2b993de7c-image.png
      但是在驱动中加了打印,为啥默认读出来的是1呢?
      代码路径:
      pwm-sunxi-group.c-->sunxi_pwm_probe-->pwmchip_add-->core.c-->pwmchip_add_with_polarity-->(chip->ops->get_state)-->sunxi_pwm_get_state
      代码如下:

      static void sunxi_pwm_get_state(struct pwm_chip *pwm_chip,
                   struct pwm_device *pwm_device,
                   struct pwm_state *state)
      {   
          unsigned int reg_offset;
          u32 val, sel;
          struct sunxi_pwm_chip *pc;
          pc = to_sunxi_pwm_chip(pwm_chip);
          sel = pwm_device->pwm - pwm_chip->base;
          reg_offset = pc->data->pcr_base_offset + sel * PWM_REG_UNIFORM_OFFSET;
          val = sunxi_pwm_readl(pwm_chip, reg_offset);
          if (val & BIT_MASK(8))
              state->polarity = PWM_POLARITY_NORMAL; 
          else
              state->polarity = PWM_POLARITY_INVERSED;
          pr_err("polarity = %d\n", state->polarity);
      }
      
      

      默认打印出来是1,是手册写错了吗?

      1 条回复 最后回复 回复 引用 分享 0
      • 1 / 1
      • First post
        Last post

      Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策