Skip to content
Permalink
Baruch-Siach/a…
Switch branches/tags

Commits on Jul 13, 2021

  1. arm64: dts: ipq6018: add pwm node

    Describe the PWM block on IPQ6018.
    
    Signed-off-by: Baruch Siach <baruch@tkos.co.il>
    baruchsiach authored and intel-lab-lkp committed Jul 13, 2021
  2. dt-bindings: pwm: add IPQ6018 binding

    DT binding for the PWM block in Qualcomm IPQ6018 SoC.
    
    Signed-off-by: Baruch Siach <baruch@tkos.co.il>
    baruchsiach authored and intel-lab-lkp committed Jul 13, 2021
  3. pwm: driver for qualcomm ipq6018 pwm block

    Driver for the PWM block in Qualcomm IPQ6018 line of SoCs. Based on
    driver from downstream Codeaurora kernel tree. Removed support for older
    (V1) variants because I have no access to that hardware.
    
    Tested on IPQ6010 based hardware.
    
    Signed-off-by: Baruch Siach <baruch@tkos.co.il>
    baruchsiach authored and intel-lab-lkp committed Jul 13, 2021
  4. arm64: dts: ipq6018: correct TCSR block area

    According to Bjorn Andersson[1], &tcsr_q6 base is 0x01937000 with size
    0x21000. Adjust qcom,halt-regs offsets (add 0x8000) to match the new
    syscon base.
    
    [1] https://lore.kernel.org/r/YLgO0Aj1d4w9EcPv@yoga
    
    Signed-off-by: Baruch Siach <baruch@tkos.co.il>
    baruchsiach authored and intel-lab-lkp committed Jul 13, 2021

Commits on Jul 8, 2021

  1. pwm: ep93xx: Ensure configuring period and duty_cycle isn't wrongly s…

    …kipped
    
    As the last call to ep93xx_pwm_apply() might have exited early if
    state->enabled was false, the values for period and duty_cycle stored in
    pwm->state might not have been written to hardware and it must be
    ensured that they are configured before enabling the PWM.
    
    Fixes: 6d45374 ("pwm: ep93xx: Implement .apply callback")
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    ukleinek authored and thierryreding committed Jul 8, 2021
  2. pwm: berlin: Ensure configuring period and duty_cycle isn't wrongly s…

    …kipped
    
    As the last call to berlin_pwm_apply() might have exited early if
    state->enabled was false, the values for period and duty_cycle stored in
    pwm->state might not have been written to hardware and it must be
    ensured that they are configured before enabling the PWM.
    
    Fixes: 30dffb4 ("pwm: berlin: Implement .apply() callback")
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    ukleinek authored and thierryreding committed Jul 8, 2021
  3. pwm: tiecap: Ensure configuring period and duty_cycle isn't wrongly s…

    …kipped
    
    As the last call to ecap_pwm_apply() might have exited early if
    state->enabled was false, the values for period and duty_cycle stored in
    pwm->state might not have been written to hardware and it must be
    ensured that they are configured before enabling the PWM.
    
    Fixes: 0ca7acd ("pwm: tiecap: Implement .apply() callback")
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    ukleinek authored and thierryreding committed Jul 8, 2021
  4. pwm: spear: Ensure configuring period and duty_cycle isn't wrongly sk…

    …ipped
    
    As the last call to spear_pwm_apply() might have exited early if
    state->enabled was false, the values for period and duty_cycle stored in
    pwm->state might not have been written to hardware and it must be
    ensured that they are configured before enabling the PWM.
    
    Fixes: 98761ce ("pwm: spear: Implement .apply() callback")
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    ukleinek authored and thierryreding committed Jul 8, 2021
  5. pwm: sprd: Ensure configuring period and duty_cycle isn't wrongly ski…

    …pped
    
    As the last call to sprd_pwm_apply() might have exited early if
    state->enabled was false, the values for period and duty_cycle stored in
    pwm->state might not have been written to hardware and it must be
    ensured that they are configured before enabling the PWM.
    
    Fixes: 8aae4b0 ("pwm: sprd: Add Spreadtrum PWM support")
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    ukleinek authored and thierryreding committed Jul 8, 2021

Commits on Jul 7, 2021

  1. pwm: Remove redundant assignment to pointer pwm

    The pointer pwm is being initialized with a value that is never read and
    it is being updated later with a new value. The initialization is
    redundant and can be removed.
    
    Addresses-Coverity: ("Unused value")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    Colin Ian King authored and thierryreding committed Jul 7, 2021

Commits on Jun 30, 2021

  1. pwm: ep93xx: Fix read of uninitialized variable ret

    There is a potential path in function ep93xx_pwm_apply where ret is
    never assigned a value and it is checked for an error code. Fix this
    by ensuring ret is zero'd in the success path to avoid this issue.
    
    Addresses-Coverity: ("Uninitialized scalar variable")
    Fixes: f6ef94e ("pwm: ep93xx: Unfold legacy callbacks into ep93xx_pwm_apply()")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    Colin Ian King authored and thierryreding committed Jun 30, 2021
  2. pwm: ep93xx: Prepare clock before using it

    Use clk_prepare_enable()/clk_disable_unprepare() in preparation for switch
    to Common Clock Framework.
    
    Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
    Reviewed-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    sverdlin authored and thierryreding committed Jun 30, 2021
  3. pwm: ep93xx: Unfold legacy callbacks into ep93xx_pwm_apply()

    This just puts the implementation of ep93xx_pwm_disable(),
    ep93xx_pwm_enable() and ep93xx_pwm_config() into their only caller.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    ukleinek authored and thierryreding committed Jun 30, 2021
  4. pwm: ep93xx: Implement .apply callback

    To ease review this reuses the formerly implemented callbacks.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    ukleinek authored and thierryreding committed Jun 30, 2021
  5. pwm: vt8500: Only unprepare the clock after the pwmchip was removed

    Until pwmchip_remove() returns the PWM is supposed to work, so
    pwmchip_remove() must be called before the clock is stopped.
    
    The return value of pwmchip_remove doesn't need to be checked because
    it returns zero anyhow and I plan to make it return void soon.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    ukleinek authored and thierryreding committed Jun 30, 2021
  6. pwm: vt8500: Drop if with an always false condition

    vt8500_pwm_remove() is only called after vt8500_pwm_probe() returned
    successfully. In this case driver data was set to a non-NULL value
    and so chip can never be NULL.
    
    While touching this code also put declaration and assignment in a single
    line.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    ukleinek authored and thierryreding committed Jun 30, 2021
  7. pwm: tegra: Assert reset only after the PWM was unregistered

    The driver is supposed to stay functional until pwmchip_remove()
    returns. So the reset must be asserted only after that.
    
    pwmchip_remove() always returns 0, so the return code can be ignored
    which keeps the tegra_pwm_remove() a bit simpler.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    ukleinek authored and thierryreding committed Jun 30, 2021
  8. pwm: tegra: Don't needlessly enable and disable the clock in .remove()

    There is no reason to enable the PWM clock just to assert the reset
    control. (If the reset control depends on the clock this is a bug and
    probably it doesn't because in .probe() the reset is deasserted without
    the clock being enabled.)
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    ukleinek authored and thierryreding committed Jun 30, 2021
  9. pwm: tegra: Don't modify HW state in .remove callback

    A consumer is expected to disable a PWM before calling pwm_put(). And if
    they didn't there is hopefully a good reason (or the consumer needs
    fixing). Also if disabling an enabled PWM was the right thing to do,
    this should better be done in the framework instead of in each low level
    driver.
    
    So drop the hardware modification from the .remove() callback.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    ukleinek authored and thierryreding committed Jun 30, 2021
  10. pwm: tegra: Drop an if block with an always false condition

    tegra_pwm_remove() is only called after tegra_pwm_probe() successfully
    completed. In this case platform_set_drvdata() was called with a
    non-NULL value and so platform_get_drvdata(pdev) cannot return NULL.
    
    Returning an error code from a platform_driver's remove function is
    ignored anyway, so it's a good thing this exit path is gone.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    ukleinek authored and thierryreding committed Jun 30, 2021
  11. pwm: core: Simplify some devm_*pwm*() functions

    Use devm_add_action_or_reset() instead of devres_alloc() and
    devres_add(), which works the same. This will simplify the
    code. There is no functional changes.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Reviewed-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    andy-shev authored and thierryreding committed Jun 30, 2021
  12. pwm: core: Remove unused devm_pwm_put()

    There are no users and seems no will come of the devm_pwm_put().
    Remove the function.
    
    While at it, slightly update documentation.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Reviewed-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    andy-shev authored and thierryreding committed Jun 30, 2021
  13. pwm: core: Unify fwnode checks in the module

    Historically we have two different approaches on how to check type of fwnode.
    Unify them using the latest and greatest fwnode related APIs.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    andy-shev authored and thierryreding committed Jun 30, 2021
  14. pwm: core: Reuse fwnode_to_pwmchip() in ACPI case

    In ACPI case we may use matching by fwnode as provided via
    fwnode_to_pwmchip(). This makes device_to_pwmchip() not needed
    anymore.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    andy-shev authored and thierryreding committed Jun 30, 2021
  15. pwm: core: Convert to use fwnode for matching

    When we traverse the list of the registered PWM controllers,
    use fwnode to match. This will help for further cleanup.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    andy-shev authored and thierryreding committed Jun 30, 2021
  16. docs: firmware-guide: ACPI: Add a PWM example

    When PWM support for ACPI has been added into the kernel, it missed
    the documentation update. Hence update documentation here.
    
    Fixes: 4a6ef8e ("pwm: Add support referencing PWMs from ACPI")
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    andy-shev authored and thierryreding committed Jun 30, 2021
  17. dt-bindings: pwm: pwm-tiecap: Add compatible string for AM64 SoC

    Add compatible string for AM64 SoC in device tree binding.
    IP is compatible with ti,am3352-ecap, so adding the AM64 compatible
    under enum of one of the compatible list entry.
    
    Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    lokeshvutla authored and thierryreding committed Jun 30, 2021
  18. dt-bindings: pwm: pwm-tiecap: Convert to json schema

    Convert the tiecap binding to DT schema format using json-schema.
    Along with this conversion the following changes are included:
    - 'clock' and 'clock-names' properties are marked required as
       driver fails to probe without these properties
    - Dropped ti,am33xx-ecap as it is no longer applicable.
    - 'power-domains' property is introduced and marked as optional.
    
    Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    lokeshvutla authored and thierryreding committed Jun 30, 2021
  19. pwm: sprd: Don't check the return code of pwmchip_remove()

    pwmchip_remove() returns always 0. Don't use the value to make it
    possible to eventually change the function to return void. This is a
    good thing as pwmchip_remove() is usually called from a remove function
    (mostly for platform devices) and their return value is ignored by the
    device core anyhow.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    ukleinek authored and thierryreding committed Jun 30, 2021
  20. pwm: img: Fix PM reference leak in img_pwm_enable()

    pm_runtime_get_sync will increment pm usage counter even it failed.
    Forgetting to putting operation will result in reference leak here.
    Fix it by replacing it with pm_runtime_resume_and_get to keep usage
    counter balanced.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zou Wei <zou_wei@huawei.com>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    SamuelZOU authored and thierryreding committed Jun 30, 2021
  21. pwm: pxa: Always use the same variable name for driver data

    In most functions the driver data variable is called pc. Do the same in
    the two remaining functions.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    ukleinek authored and thierryreding committed Jun 30, 2021
  22. pwm: pxa: Drop if with an always false condition

    The .remove() function is only called after .probe() returned
    successfully. In this case platform_set_drvdata() was called with a
    non-NULL argument and so platfrom_get_drvdata() returns the same
    non-NULL value.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    ukleinek authored and thierryreding committed Jun 30, 2021
  23. pwm: berlin: Don't check the return code of pwmchip_remove()

    pwmchip_remove() always returns 0. Don't use the value to make it
    possible to eventually change the function to return void. This is a
    good thing as pwmchip_remove() is usually called from a remove function
    (mostly for platform devices) and their return value is ignored by the
    device core anyhow.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    ukleinek authored and thierryreding committed Jun 30, 2021
  24. pwm: berlin: Implement .apply() callback

    To eventually get rid of all legacy drivers convert this driver to the
    modern world implementing .apply(). This just pushes down a slightly
    optimized variant of how legacy drivers are handled in the core.
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    ukleinek authored and thierryreding committed Jun 30, 2021
  25. pwm: berlin: use consistent naming for variables

    A struct berlin_pwm_chip * is now always called "bpc" (instead of "pwm"
    which is usually used for struct pwm_device * or "chip" which is usually
    used for struct pwm_chip *). The struct pwm_device * variables were
    named "pwm_dev" or "pwm"; they are now always called "pwm".
    
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    ukleinek authored and thierryreding committed Jun 30, 2021
Older