mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 04:23:35 +02:00
pwm: Provide wrappers for storing and getting driver private data
These functions are useful to store and query driver private data depending on the pwm_chip. After struct pwm_chip got its own struct device, this can make use of dev_get_drvdata() and dev_set_drvdata() on that device. These functions are required already now to convert drivers to pwmchip_alloc() which must happen before changing pwm_chip::dev. Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Link: https://lore.kernel.org/r/67514cdf29d29bd8b4ad8d44fac87f6ae6dca1e5.1707900770.git.u.kleine-koenig@pengutronix.de Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
This commit is contained in:
parent
4e59267c7a
commit
24003d501f
|
|
@ -272,6 +272,7 @@ struct pwm_ops {
|
|||
* @npwm: number of PWMs controlled by this chip
|
||||
* @of_xlate: request a PWM device given a device tree PWM specifier
|
||||
* @atomic: can the driver's ->apply() be called in atomic context
|
||||
* @driver_data: Private pointer for driver specific info
|
||||
* @pwms: array of PWM devices allocated by the framework
|
||||
*/
|
||||
struct pwm_chip {
|
||||
|
|
@ -286,6 +287,7 @@ struct pwm_chip {
|
|||
bool atomic;
|
||||
|
||||
/* only used internally by the PWM framework */
|
||||
void *driver_data;
|
||||
struct pwm_device *pwms;
|
||||
};
|
||||
|
||||
|
|
@ -294,6 +296,24 @@ static inline struct device *pwmchip_parent(const struct pwm_chip *chip)
|
|||
return chip->dev;
|
||||
}
|
||||
|
||||
static inline void *pwmchip_get_drvdata(struct pwm_chip *chip)
|
||||
{
|
||||
/*
|
||||
* After pwm_chip got a dedicated struct device, this can be replaced by
|
||||
* dev_get_drvdata(&chip->dev);
|
||||
*/
|
||||
return chip->driver_data;
|
||||
}
|
||||
|
||||
static inline void pwmchip_set_drvdata(struct pwm_chip *chip, void *data)
|
||||
{
|
||||
/*
|
||||
* After pwm_chip got a dedicated struct device, this can be replaced by
|
||||
* dev_set_drvdata(&chip->dev, data);
|
||||
*/
|
||||
chip->driver_data = data;
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_PWM)
|
||||
/* PWM user APIs */
|
||||
int pwm_apply_might_sleep(struct pwm_device *pwm, const struct pwm_state *state);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user