59e4c5aed0
- Updated basic samples READMEs to use the new zephyr:code-sample:: directive. Dropped "-sample" suffix that's not required anymore now that samples have their own namespace. - Updated all references to the samples to use the :zephyr:code-sample: role. Checked and updated the wording of said references to account for the fact that samples should not have "... sample" in their name anymore. Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org> |
||
---|---|---|
.. | ||
boards | ||
dts/bindings | ||
src | ||
CMakeLists.txt | ||
prj.conf | ||
README.rst | ||
sample.yaml |
.. zephyr:code-sample:: gpio-custom-dts-binding :name: GPIO with custom Devicetree binding :relevant-api: gpio_interface devicetree-generic-id devicetree-generic-exist Use custom Devicetree binding to control a GPIO. Overview ******** In Zephyr, all hardware-specific configuration is described in the devicetree. Consequently, also GPIO pins are configured in the devicetree and assigned to a specific purpose using a compatible. This is in contrast to other embedded environments like Arduino, where e.g. the direction (input / output) of a GPIO pin is configured in the application firmware. For typical use cases like LEDs or buttons, the existing :dtcompatible:`gpio-leds` or :dtcompatible:`gpio-keys` compatibles can be used. This sample demonstrates how to use a GPIO pin for other purposes with a custom devicetree binding. We assume that a load with high current demands should be switched on or off via a MOSFET. The custom devicetree binding for the power output controlled via a GPIO pin is specified in the file :zephyr_file:`samples/basic/custom_dts_binding/dts/bindings/power-switch.yaml`. The gate driver for the MOSFET would be connected to the pin as specified in the ``.overlay`` file in the boards folder. Building and Running ******************** For each board that should be supported, a ``.overlay`` file has to be defined in the ``boards`` subfolder. Afterwards, the sample can be built and executed for the ``<board>`` as follows: .. zephyr-app-commands:: :zephyr-app: samples/basic/custom_dts_binding :board: <board> :goals: build flash :compact: For demonstration purposes, some boards use the GPIO pin of the built-in LED. Sample output ============= The GPIO pin should be switched to active level after one second. The following output is printed: .. code-block:: console Initializing pin with inactive level. Waiting one second. Setting pin to active level.