summaryrefslogtreecommitdiffstats
path: root/firmware/target/arm/imx233/pwm-imx233.c
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2013-06-16 17:19:20 +0200
committerAmaury Pouly <amaury.pouly@gmail.com>2013-06-16 18:21:48 +0200
commit3e8c2dc46d843575096e92bd82886c7d6d44855d (patch)
tree9857f96bf2fbcf0300b8269aecc55e3ced6176bd /firmware/target/arm/imx233/pwm-imx233.c
parent7c5b65b9d234f819447195e3f852d9b59a225813 (diff)
downloadrockbox-3e8c2dc46d843575096e92bd82886c7d6d44855d.tar.gz
rockbox-3e8c2dc46d843575096e92bd82886c7d6d44855d.tar.bz2
rockbox-3e8c2dc46d843575096e92bd82886c7d6d44855d.zip
imx233: rewrite pwm using new registers
Change-Id: Ie222f0b25f4b8af9ccf21aecd82a7f4eba40aa3c
Diffstat (limited to 'firmware/target/arm/imx233/pwm-imx233.c')
-rw-r--r--firmware/target/arm/imx233/pwm-imx233.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/firmware/target/arm/imx233/pwm-imx233.c b/firmware/target/arm/imx233/pwm-imx233.c
index 1ebfe02a1c..c0417c55d0 100644
--- a/firmware/target/arm/imx233/pwm-imx233.c
+++ b/firmware/target/arm/imx233/pwm-imx233.c
@@ -30,15 +30,15 @@ void imx233_pwm_init(void)
bool imx233_pwm_is_channel_enable(int channel)
{
- return HW_PWM_CTRL & HW_PWM_CTRL__PWMx_ENABLE(channel);
+ return BF_RD(PWM_CTRL, PWMx_ENABLE(channel));
}
void imx233_pwm_enable_channel(int channel, bool enable)
{
if(enable)
- __REG_SET(HW_PWM_CTRL) = HW_PWM_CTRL__PWMx_ENABLE(channel);
+ BF_SET(PWM_CTRL, PWMx_ENABLE(channel));
else
- __REG_CLR(HW_PWM_CTRL) = HW_PWM_CTRL__PWMx_ENABLE(channel);
+ BF_CLR(PWM_CTRL, PWMx_ENABLE(channel));
}
void imx233_pwm_setup_channel(int channel, int period, int cdiv, int active,
@@ -56,11 +56,9 @@ void imx233_pwm_setup_channel(int channel, int period, int cdiv, int active,
imx233_set_pin_drive_strength(IMX233_PWM_PIN_BANK(channel), IMX233_PWM_PIN(channel),
PINCTRL_DRIVE_4mA);
/* watch the order ! active THEN period */
- HW_PWM_ACTIVEx(channel) = active << HW_PWM_ACTIVEx__ACTIVE_BP |
- inactive << HW_PWM_ACTIVEx__INACTIVE_BP;
- HW_PWM_PERIODx(channel) = period | active_state << HW_PWM_PERIODx__ACTIVE_STATE_BP |
- inactive_state << HW_PWM_PERIODx__INACTIVE_STATE_BP |
- cdiv << HW_PWM_PERIODx__CDIV_BP;
+ HW_PWM_ACTIVEn(channel) = BF_OR2(PWM_ACTIVEn, ACTIVE(active), INACTIVE(inactive));
+ HW_PWM_PERIODn(channel) = BF_OR4(PWM_PERIODn, PERIOD(period - 1),
+ ACTIVE_STATE(active_state), INACTIVE_STATE(inactive_state), CDIV(cdiv));
/* restore */
imx233_pwm_enable_channel(channel, enable);
}