Commit d8a2f6f2 authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Thierry Reding

pwm: sprd: Provide a helper to cast a chip to driver data

Similar to most other PWM drivers provide a static inline function to
calculate driver data from a given pwmchip.

Link: https://lore.kernel.org/r/20230929161918.2410424-8-u.kleine-koenig@pengutronix.deSigned-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: default avatarThierry Reding <thierry.reding@gmail.com>
parent 4f9ab690
...@@ -40,6 +40,11 @@ struct sprd_pwm_chip { ...@@ -40,6 +40,11 @@ struct sprd_pwm_chip {
struct sprd_pwm_chn chn[SPRD_PWM_CHN_NUM]; struct sprd_pwm_chn chn[SPRD_PWM_CHN_NUM];
}; };
static inline struct sprd_pwm_chip* sprd_pwm_from_chip(struct pwm_chip *chip)
{
return container_of(chip, struct sprd_pwm_chip, chip);
}
/* /*
* The list of clocks required by PWM channels, and each channel has 2 clocks: * The list of clocks required by PWM channels, and each channel has 2 clocks:
* enable clock and pwm clock. * enable clock and pwm clock.
...@@ -69,8 +74,7 @@ static void sprd_pwm_write(struct sprd_pwm_chip *spc, u32 hwid, ...@@ -69,8 +74,7 @@ static void sprd_pwm_write(struct sprd_pwm_chip *spc, u32 hwid,
static int sprd_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm, static int sprd_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
struct pwm_state *state) struct pwm_state *state)
{ {
struct sprd_pwm_chip *spc = struct sprd_pwm_chip *spc = sprd_pwm_from_chip(chip);
container_of(chip, struct sprd_pwm_chip, chip);
struct sprd_pwm_chn *chn = &spc->chn[pwm->hwpwm]; struct sprd_pwm_chn *chn = &spc->chn[pwm->hwpwm];
u32 val, duty, prescale; u32 val, duty, prescale;
u64 tmp; u64 tmp;
...@@ -162,8 +166,7 @@ static int sprd_pwm_config(struct sprd_pwm_chip *spc, struct pwm_device *pwm, ...@@ -162,8 +166,7 @@ static int sprd_pwm_config(struct sprd_pwm_chip *spc, struct pwm_device *pwm,
static int sprd_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, static int sprd_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
const struct pwm_state *state) const struct pwm_state *state)
{ {
struct sprd_pwm_chip *spc = struct sprd_pwm_chip *spc = sprd_pwm_from_chip(chip);
container_of(chip, struct sprd_pwm_chip, chip);
struct sprd_pwm_chn *chn = &spc->chn[pwm->hwpwm]; struct sprd_pwm_chn *chn = &spc->chn[pwm->hwpwm];
struct pwm_state *cstate = &pwm->state; struct pwm_state *cstate = &pwm->state;
int ret; int ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment