From: Rohith Seelaboyina <rseelaboyina@xxxxxxxxxx> Add reset control of the PWM controller to reset it before accessing the PWM register. Signed-off-by: Rohith Seelaboyina <rseelaboyina@xxxxxxxxxx> Signed-off-by: Laxman Dewangan <ldewangan@xxxxxxxxxx> --- drivers/pwm/pwm-tegra.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/pwm/pwm-tegra.c b/drivers/pwm/pwm-tegra.c index d4de060..71b9c4d 100644 --- a/drivers/pwm/pwm-tegra.c +++ b/drivers/pwm/pwm-tegra.c @@ -29,6 +29,7 @@ #include <linux/pwm.h> #include <linux/platform_device.h> #include <linux/slab.h> +#include <linux/reset.h> #define PWM_ENABLE (1 << 31) #define PWM_DUTY_WIDTH 8 @@ -43,6 +44,7 @@ struct tegra_pwm_chip { struct device *dev; struct clk *clk; + struct reset_control *rstc; void __iomem *mmio_base; }; @@ -189,6 +191,14 @@ static int tegra_pwm_probe(struct platform_device *pdev) if (IS_ERR(pwm->clk)) return PTR_ERR(pwm->clk); + pwm->rstc = devm_reset_control_get(&pdev->dev, "pwm"); + if (IS_ERR(pwm->rstc)) { + ret = PTR_ERR(pwm->rstc); + dev_err(&pdev->dev, "Reset control is not found: %d\n", ret); + return ret; + } + reset_control_reset(pwm->rstc); + pwm->chip.dev = &pdev->dev; pwm->chip.ops = &tegra_pwm_ops; pwm->chip.base = -1; -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html