Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

pwm: raspberrypi-poe: Make use of devm_pwmchip_alloc() function

This prepares the pwm-raspberrypi-poe 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.

Link: https://lore.kernel.org/r/4654a6438ab618574afc3bb73bf402df7c254ee2.1707900770.git.u.kleine-koenig@pengutronix.de
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

+9 -9
+9 -9
drivers/pwm/pwm-raspberrypi-poe.c
··· 27 27 28 28 struct raspberrypi_pwm { 29 29 struct rpi_firmware *firmware; 30 - struct pwm_chip chip; 31 30 unsigned int duty_cycle; 32 31 }; 33 32 ··· 39 40 static inline 40 41 struct raspberrypi_pwm *raspberrypi_pwm_from_chip(struct pwm_chip *chip) 41 42 { 42 - return container_of(chip, struct raspberrypi_pwm, chip); 43 + return pwmchip_get_drvdata(chip); 43 44 } 44 45 45 46 static int raspberrypi_pwm_set_property(struct rpi_firmware *firmware, ··· 141 142 struct device_node *firmware_node; 142 143 struct device *dev = &pdev->dev; 143 144 struct rpi_firmware *firmware; 145 + struct pwm_chip *chip; 144 146 struct raspberrypi_pwm *rpipwm; 145 147 int ret; 146 148 ··· 157 157 return dev_err_probe(dev, -EPROBE_DEFER, 158 158 "Failed to get firmware handle\n"); 159 159 160 - rpipwm = devm_kzalloc(&pdev->dev, sizeof(*rpipwm), GFP_KERNEL); 161 - if (!rpipwm) 162 - return -ENOMEM; 160 + chip = devm_pwmchip_alloc(&pdev->dev, RASPBERRYPI_FIRMWARE_PWM_NUM, 161 + sizeof(*rpipwm)); 162 + if (IS_ERR(chip)) 163 + return PTR_ERR(chip); 164 + rpipwm = raspberrypi_pwm_from_chip(chip); 163 165 164 166 rpipwm->firmware = firmware; 165 - rpipwm->chip.dev = dev; 166 - rpipwm->chip.ops = &raspberrypi_pwm_ops; 167 - rpipwm->chip.npwm = RASPBERRYPI_FIRMWARE_PWM_NUM; 167 + chip->ops = &raspberrypi_pwm_ops; 168 168 169 169 ret = raspberrypi_pwm_get_property(rpipwm->firmware, RPI_PWM_CUR_DUTY_REG, 170 170 &rpipwm->duty_cycle); ··· 173 173 return ret; 174 174 } 175 175 176 - return devm_pwmchip_add(dev, &rpipwm->chip); 176 + return devm_pwmchip_add(dev, chip); 177 177 } 178 178 179 179 static const struct of_device_id raspberrypi_pwm_of_match[] = {