mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-28 10:15:32 -05:00
pwm: sun4i: Make use of devm_pwmchip_alloc() function
This prepares the pwm-sun4i driver to further changes of the pwm core outlined in the commit introducing devm_pwmchip_alloc(). There is no intended semantical change and the driver should behave as before. Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com> Link: https://lore.kernel.org/r/9d175b4e27878618cef2e75b6ecbf01ad5d18164.1707900770.git.u.kleine-koenig@pengutronix.de Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
This commit is contained in:
@@ -81,7 +81,6 @@ struct sun4i_pwm_data {
|
||||
};
|
||||
|
||||
struct sun4i_pwm_chip {
|
||||
struct pwm_chip chip;
|
||||
struct clk *bus_clk;
|
||||
struct clk *clk;
|
||||
struct reset_control *rst;
|
||||
@@ -92,7 +91,7 @@ struct sun4i_pwm_chip {
|
||||
|
||||
static inline struct sun4i_pwm_chip *to_sun4i_pwm_chip(struct pwm_chip *chip)
|
||||
{
|
||||
return container_of(chip, struct sun4i_pwm_chip, chip);
|
||||
return pwmchip_get_drvdata(chip);
|
||||
}
|
||||
|
||||
static inline u32 sun4i_pwm_readl(struct sun4i_pwm_chip *sun4ichip,
|
||||
@@ -385,18 +384,20 @@ MODULE_DEVICE_TABLE(of, sun4i_pwm_dt_ids);
|
||||
static int sun4i_pwm_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct pwm_chip *chip;
|
||||
const struct sun4i_pwm_data *data;
|
||||
struct sun4i_pwm_chip *sun4ichip;
|
||||
int ret;
|
||||
|
||||
sun4ichip = devm_kzalloc(&pdev->dev, sizeof(*sun4ichip), GFP_KERNEL);
|
||||
if (!sun4ichip)
|
||||
return -ENOMEM;
|
||||
chip = &sun4ichip->chip;
|
||||
|
||||
sun4ichip->data = of_device_get_match_data(&pdev->dev);
|
||||
if (!sun4ichip->data)
|
||||
data = of_device_get_match_data(&pdev->dev);
|
||||
if (!data)
|
||||
return -ENODEV;
|
||||
|
||||
chip = devm_pwmchip_alloc(&pdev->dev, data->npwm, sizeof(*sun4ichip));
|
||||
if (IS_ERR(chip))
|
||||
return PTR_ERR(chip);
|
||||
sun4ichip = to_sun4i_pwm_chip(chip);
|
||||
|
||||
sun4ichip->data = data;
|
||||
sun4ichip->base = devm_platform_ioremap_resource(pdev, 0);
|
||||
if (IS_ERR(sun4ichip->base))
|
||||
return PTR_ERR(sun4ichip->base);
|
||||
@@ -453,9 +454,7 @@ static int sun4i_pwm_probe(struct platform_device *pdev)
|
||||
goto err_bus;
|
||||
}
|
||||
|
||||
chip->dev = &pdev->dev;
|
||||
chip->ops = &sun4i_pwm_ops;
|
||||
chip->npwm = sun4ichip->data->npwm;
|
||||
|
||||
spin_lock_init(&sun4ichip->ctrl_lock);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user