Skip to content

Commit 5ddc67b

Browse files
shtirlicxiaoxiang781216
authored andcommitted
arch/arm/rp23xx: Fix PWM registers access
Fix offset alignment and correct the PWM enable register name Signed-off-by: Serg Podtynnyi <[email protected]>
1 parent 96fef53 commit 5ddc67b

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

arch/arm/src/rp23xx/hardware/rp23xx_pwm.h

+5-5
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,11 @@
3535

3636
/* Register offsets *********************************************************/
3737

38-
#define RP23XX_PWM_CSR_OFFSET(n) (0x000000 + (n) * 14) /* PWM control and status register */
39-
#define RP23XX_PWM_DIV_OFFSET(n) (0x000004 + (n) * 14) /* PWM clock divisor register */
40-
#define RP23XX_PWM_CTR_OFFSET(n) (0x000008 + (n) * 14) /* PWM counter register */
41-
#define RP23XX_PWM_CC_OFFSET(n) (0x00000c + (n) * 14) /* PWM compare register */
42-
#define RP23XX_PWM_TOP_OFFSET(n) (0x000010 + (n) * 14) /* PWM wrap value register */
38+
#define RP23XX_PWM_CSR_OFFSET(n) (0x000000 + (n) * 20) /* PWM control and status register */
39+
#define RP23XX_PWM_DIV_OFFSET(n) (0x000004 + (n) * 20) /* PWM clock divisor register */
40+
#define RP23XX_PWM_CTR_OFFSET(n) (0x000008 + (n) * 20) /* PWM counter register */
41+
#define RP23XX_PWM_CC_OFFSET(n) (0x00000c + (n) * 20) /* PWM compare register */
42+
#define RP23XX_PWM_TOP_OFFSET(n) (0x000010 + (n) * 20) /* PWM wrap value register */
4343
#define RP23XX_PWM_EN_OFFSET 0x0000f0 /* PWM enable register */
4444
#define RP23XX_PWM_INTR_OFFSET 0x0000f4 /* PWM raw interrupt register */
4545
#define RP23XX_PWM_IRQ0_INTE_OFFSET 0x0000f8 /* PWM interrupt enable register */

arch/arm/src/rp23xx/rp23xx_pwm.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,7 @@ static inline void set_enabled(struct rp23xx_pwm_lowerhalf_s * priv)
572572
{
573573
irqstate_t flags = enter_critical_section();
574574

575-
modreg32(1 << priv->num, 1 << priv->num, RP23XX_PWM_ENA);
575+
modreg32(1 << priv->num, 1 << priv->num, RP23XX_PWM_EN);
576576

577577
leave_critical_section(flags);
578578
}
@@ -592,7 +592,7 @@ static inline void clear_enabled(struct rp23xx_pwm_lowerhalf_s * priv)
592592
{
593593
irqstate_t flags = enter_critical_section();
594594

595-
modreg32(0, 1 << priv->num, RP23XX_PWM_ENA);
595+
modreg32(0, 1 << priv->num, RP23XX_PWM_EN);
596596

597597
leave_critical_section(flags);
598598
}

0 commit comments

Comments
 (0)