Lines Matching +full:capture +full:- +full:rate
3 * Copyright (c) 2020-2021 Vestas Wind Systems A/S
5 * SPDX-License-Identifier: Apache-2.0
34 #include <zephyr/dt-bindings/pwm/pwm.h>
41 * @name PWM capture configuration flags
54 /** PWM pin capture captures period. */
57 /** PWM pin capture captures pulse width. */
60 /** PWM pin capture captures both period and pulse width. */
64 /** PWM pin capture captures a single period/pulse width. */
67 /** PWM pin capture captures period/pulse width continuously. */
121 * pwm-names = "alpha", "beta";
146 * @param name Lowercase-and-underscores name of a pwms element as defined by
147 * the node's pwm-names property.
166 * @param name Lowercase-and-underscores name of a pwms element as defined by
167 * the node's pwm-names property.
185 * @param name Lowercase-and-underscores name of a pwms element as defined by
186 * the node's pwm-names property
204 * @param name Lowercase-and-underscores name of a pwms element as defined by
205 * the node's pwm-names property.
373 * @brief PWM capture callback handler function signature
377 * @note @kconfig{CONFIG_PWM_CAPTURE} must be selected to enable PWM capture
386 * @param status Status for the PWM capture (0 if no error, negative errno
415 * @brief PWM driver API call to configure PWM capture.
424 * @brief PWM driver API call to enable PWM capture.
430 * @brief PWM driver API call to disable PWM capture.
456 * @note Not all PWM controllers support synchronous, glitch-free updates of the
460 * @note Some multi-channel PWM controllers share the PWM period across all
466 * Passing a non-zero @p pulse equal to @p period will cause the pin
476 * @retval -EINVAL If pulse > period.
477 * @retval -errno Negative errno code on failure.
488 (const struct pwm_driver_api *)dev->api; in z_impl_pwm_set_cycles()
491 return -EINVAL; in z_impl_pwm_set_cycles()
494 return api->set_cycles(dev, channel, period, pulse, flags); in z_impl_pwm_set_cycles()
498 * @brief Get the clock rate (cycles per second) for a single PWM output.
502 * @param[out] cycles Pointer to the memory to store clock rate (cycles per
506 * @retval -errno Negative errno code on failure.
516 (const struct pwm_driver_api *)dev->api; in z_impl_pwm_get_cycles_per_sec()
518 return api->get_cycles_per_sec(dev, channel, cycles); in z_impl_pwm_get_cycles_per_sec()
534 * @retval -ENOTSUP If requested period or pulse cycles are not supported.
535 * @retval -errno Other negative errno code on failure.
552 return -ENOTSUP; in pwm_set()
557 return -ENOTSUP; in pwm_set()
570 * pwm_set(spec->dev, spec->channel, period, pulse, spec->flags)
586 return pwm_set(spec->dev, spec->channel, period, pulse, spec->flags); in pwm_set_dt()
595 * pwm_set(spec->dev, spec->channel, spec->period, pulse, spec->flags)
607 return pwm_set(spec->dev, spec->channel, spec->period, pulse, in pwm_set_pulse_dt()
608 spec->flags); in pwm_set_pulse_dt()
620 * @retval -ERANGE If result is too large.
621 * @retval -errno Other negative errno code on failure.
636 return -ERANGE; in pwm_cycles_to_usec()
653 * @retval -ERANGE If result is too large.
654 * @retval -errno Other negative errno code on failure.
669 return -ERANGE; in pwm_cycles_to_nsec()
679 * @brief Configure PWM period/pulse width capture for a single PWM input.
681 * After configuring PWM capture using this function, the capture can be
695 * @param flags PWM capture flags
696 * @param[in] cb Application callback handler function to be called upon capture
700 * @retval -EINVAL if invalid function parameters were given
701 * @retval -ENOSYS if PWM capture is not supported or the given flags are not
703 * @retval -EIO if IO error occurred while configuring
704 * @retval -EBUSY if PWM capture is already in progress
712 (const struct pwm_driver_api *)dev->api; in pwm_configure_capture()
714 if (api->configure_capture == NULL) { in pwm_configure_capture()
715 return -ENOSYS; in pwm_configure_capture()
718 return api->configure_capture(dev, channel, flags, cb, in pwm_configure_capture()
724 * @brief Enable PWM period/pulse width capture for a single PWM input.
736 * @retval -EINVAL if invalid function parameters were given
737 * @retval -ENOSYS if PWM capture is not supported
738 * @retval -EIO if IO error occurred while enabling PWM capture
739 * @retval -EBUSY if PWM capture is already in progress
748 (const struct pwm_driver_api *)dev->api; in z_impl_pwm_enable_capture()
750 if (api->enable_capture == NULL) { in z_impl_pwm_enable_capture()
751 return -ENOSYS; in z_impl_pwm_enable_capture()
754 return api->enable_capture(dev, channel); in z_impl_pwm_enable_capture()
759 * @brief Disable PWM period/pulse width capture for a single PWM input.
768 * @retval -EINVAL if invalid function parameters were given
769 * @retval -ENOSYS if PWM capture is not supported
770 * @retval -EIO if IO error occurred while disabling PWM capture
779 (const struct pwm_driver_api *)dev->api; in z_impl_pwm_disable_capture()
781 if (api->disable_capture == NULL) { in z_impl_pwm_disable_capture()
782 return -ENOSYS; in z_impl_pwm_disable_capture()
785 return api->disable_capture(dev, channel); in z_impl_pwm_disable_capture()
790 * @brief Capture a single PWM period/pulse width in clock cycles for a single
795 * the capture result to the caller. The function is blocking until either the
796 * PWM capture is completed or a timeout occurs.
803 * @param flags PWM capture flags.
808 * @param timeout Waiting period for the capture to complete.
811 * @retval -EBUSY PWM capture already in progress.
812 * @retval -EAGAIN Waiting period timed out.
813 * @retval -EIO IO error while capturing.
814 * @retval -ERANGE If result is too large.
821 * @brief Capture a single PWM period/pulse width in microseconds for a single
825 * pwm_cycles_to_usec() and passes the capture result to the caller. The
826 * function is blocking until either the PWM capture is completed or a timeout
834 * @param flags PWM capture flags.
839 * @param timeout Waiting period for the capture to complete.
842 * @retval -EBUSY PWM capture already in progress.
843 * @retval -EAGAIN Waiting period timed out.
844 * @retval -EIO IO error while capturing.
845 * @retval -ERANGE If result is too large.
846 * @retval -errno Other negative errno code on failure.
876 * @brief Capture a single PWM period/pulse width in nanoseconds for a single
880 * pwm_cycles_to_nsec() and passes the capture result to the caller. The
881 * function is blocking until either the PWM capture is completed or a timeout
889 * @param flags PWM capture flags.
894 * @param timeout Waiting period for the capture to complete.
897 * @retval -EBUSY PWM capture already in progress.
898 * @retval -EAGAIN Waiting period timed out.
899 * @retval -EIO IO error while capturing.
900 * @retval -ERANGE If result is too large.
901 * @retval -errno Other negative errno code on failure.
940 return device_is_ready(spec->dev); in pwm_is_ready_dt()