[PATCH v3] pwm: i.MX: Avoid sample FIFO overflow for i.MX PWM version2
Lothar Waßmann
LW at KARO-electronics.de
Sun May 18 22:53:28 PDT 2014
Hi,
Liu Ying wrote:
[...]
> @@ -30,6 +32,7 @@
> /* i.MX27, i.MX31, i.MX35 share the same PWM function block: */
>
> #define MX3_PWMCR 0x00 /* PWM Control Register */
> +#define MX3_PWMIR 0x08 /* PWM Interrupt Register */
> #define MX3_PWMSAR 0x0C /* PWM Sample Register */
> #define MX3_PWMPR 0x10 /* PWM Period Register */
> #define MX3_PWMCR_PRESCALER(x) (((x - 1) & 0xFFF) << 4)
> @@ -38,7 +41,12 @@
> #define MX3_PWMCR_DBGEN (1 << 22)
> #define MX3_PWMCR_CLKSRC_IPG_HIGH (2 << 16)
> #define MX3_PWMCR_CLKSRC_IPG (1 << 16)
> +#define MX3_PWMCR_SWR (1 << 3)
> #define MX3_PWMCR_EN (1 << 0)
> +#define MX3_PWMSR_ROV (1 << 4)
> +#define MX3_PWMIR_RIE (1 << 1)
> +
You should decide whether to use tabs or spaces for indentation.
And probably cleanup the indentation of the existing definitions to use
all the same indentation style.
> @@ -128,6 +160,13 @@ static int imx_pwm_config_v2(struct pwm_chip *chip,
> else
> period_cycles = 0;
>
> + if (!enable || duty_cycles == 0)
> + imx_pwm_software_reset_v2(chip);
> + else if (readl(imx->mmio_base + MX3_PWMSAR))
> + /* No rollover irq generated if duty peroid is zero. */
typo: 'period'.
> @@ -135,27 +174,55 @@ static int imx_pwm_config_v2(struct pwm_chip *chip,
> MX3_PWMCR_DOZEEN | MX3_PWMCR_WAITEN |
> MX3_PWMCR_DBGEN | MX3_PWMCR_CLKSRC_IPG_HIGH;
>
> - if (test_bit(PWMF_ENABLED, &pwm->flags))
> + if (enable)
> cr |= MX3_PWMCR_EN;
>
> writel(cr, imx->mmio_base + MX3_PWMCR);
>
> + if (enable && duty_cycles)
> + /* No rollover irq generated if duty peroid is zero. */
dto.
Lothar Waßmann
--
___________________________________________________________
Ka-Ro electronics GmbH | Pascalstraße 22 | D - 52076 Aachen
Phone: +49 2408 1402-0 | Fax: +49 2408 1402-10
Geschäftsführer: Matthias Kaussen
Handelsregistereintrag: Amtsgericht Aachen, HRB 4996
www.karo-electronics.de | info at karo-electronics.de
___________________________________________________________
More information about the linux-arm-kernel
mailing list