bus: ts-nbus: Convert to atomic pwm API
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Wed, 24 Jan 2024 08:12:04 +0000 (09:12 +0100)
committerArnd Bergmann <arnd@arndb.de>
Tue, 12 Mar 2024 20:07:12 +0000 (21:07 +0100)
With this change the PWM hardware is only configured once (instead of
three times).

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
drivers/bus/ts-nbus.c

index 4fa932cb09150a3bdb15c6f78033a8e2cc6e541c..19c5d1f4e4d7ff46ebbc7308d9568eab7d524b92 100644 (file)
@@ -273,7 +273,7 @@ EXPORT_SYMBOL_GPL(ts_nbus_write);
 static int ts_nbus_probe(struct platform_device *pdev)
 {
        struct pwm_device *pwm;
-       struct pwm_args pargs;
+       struct pwm_state state;
        struct device *dev = &pdev->dev;
        struct ts_nbus *ts_nbus;
        int ret;
@@ -296,25 +296,22 @@ static int ts_nbus_probe(struct platform_device *pdev)
                return ret;
        }
 
-       pwm_get_args(pwm, &pargs);
-       if (!pargs.period) {
+       pwm_init_state(pwm, &state);
+       if (!state.period) {
                dev_err(&pdev->dev, "invalid PWM period\n");
                return -EINVAL;
        }
 
-       /*
-        * FIXME: pwm_apply_args() should be removed when switching to
-        * the atomic PWM API.
-        */
-       pwm_apply_args(pwm);
-       ret = pwm_config(pwm, pargs.period, pargs.period);
+       state.duty_cycle = state.period;
+       state.enabled = true;
+
+       ret = pwm_apply_state(pwm, &state);
        if (ret < 0)
                return ret;
 
        /*
         * we can now start the FPGA and populate the peripherals.
         */
-       pwm_enable(pwm);
        ts_nbus->pwm = pwm;
 
        /*