]> git.sur5r.net Git - u-boot/blobdiff - drivers/pwm/pwm-imx.c
Merge branch 'master' of git://git.denx.de/u-boot-usb
[u-boot] / drivers / pwm / pwm-imx.c
index 40bf0275437fefbd4deaecd6934e2b4ccb2392aa..83c1bfa8206aaf7d9046488d68b9d0d70ddaedb4 100644 (file)
@@ -1,10 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * (C) Copyright 2014
  * Heiko Schocher, DENX Software Engineering, hs@denx.de.
  *
- * Basic support for the pwm modul on imx6.
- *
- * SPDX-License-Identifier:    GPL-2.0+
+ * Basic support for the pwm module on imx6.
  */
 
 #include <common.h>
@@ -18,6 +17,9 @@ int pwm_init(int pwm_id, int div, int invert)
 {
        struct pwm_regs *pwm = (struct pwm_regs *)pwm_id_to_reg(pwm_id);
 
+       if (!pwm)
+               return -1;
+
        writel(0, &pwm->ir);
        return 0;
 }
@@ -28,6 +30,9 @@ int pwm_config(int pwm_id, int duty_ns, int period_ns)
        unsigned long period_cycles, duty_cycles, prescale;
        u32 cr;
 
+       if (!pwm)
+               return -1;
+
        pwm_imx_get_parms(period_ns, duty_ns, &period_cycles, &duty_cycles,
                          &prescale);
 
@@ -47,6 +52,9 @@ int pwm_enable(int pwm_id)
 {
        struct pwm_regs *pwm = (struct pwm_regs *)pwm_id_to_reg(pwm_id);
 
+       if (!pwm)
+               return -1;
+
        setbits_le32(&pwm->cr, PWMCR_EN);
        return 0;
 }
@@ -55,5 +63,8 @@ void pwm_disable(int pwm_id)
 {
        struct pwm_regs *pwm = (struct pwm_regs *)pwm_id_to_reg(pwm_id);
 
+       if (!pwm)
+               return;
+
        clrbits_le32(&pwm->cr, PWMCR_EN);
 }