Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    T113S3的pwm默认极性问题

    Linux
    1
    1
    866
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      Shaco_Ma LV 4 last edited by

      各位大佬们好!
      刚刚再看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 Reply Last reply Reply Quote Share 0
      • 1 / 1
      • First post
        Last post

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

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