| # Copyright (c) 2024 NXP Semiconductors |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| title: Futaba SBUS |
| |
| description: | |
| SBUS is a single-wire inverted serial protocol that can be used to receive |
| analog joystick and switch inputs from RC transmitters. Since the signal is |
| inverted, you need to use an external signal inverter or set the rx-invert |
| flag on the serial controller node (if it supports pin inversion). |
| |
| The binding allows mapping of up to 16 SBUS channels to Zephyr input events. |
| Each channel can be configured to generate either absolute position events |
| (for joysticks) or key events (for switches). |
| |
| The following example shows how to configure 2 joysticks and a button using 5 channels: |
| |
| &lpuart6 { |
| status = "okay"; |
| |
| sbus { |
| compatible = "futaba,sbus"; |
| right_stick_x { |
| channel = <1>; |
| type = <INPUT_EV_ABS>; |
| zephyr,code = <INPUT_ABS_RX>; |
| }; |
| right_stick_y { |
| channel = <2>; |
| type = <INPUT_EV_ABS>; |
| zephyr,code = <INPUT_ABS_RY>; |
| }; |
| left_stick_x { |
| channel = <3>; |
| type = <INPUT_EV_ABS>; |
| zephyr,code = <INPUT_ABS_X>; |
| }; |
| left_stick_y { |
| channel = <4>; |
| type = <INPUT_EV_ABS>; |
| zephyr,code = <INPUT_ABS_Y>; |
| }; |
| kill_switch { |
| channel = <5>; |
| type = <INPUT_EV_KEY>; |
| zephyr,code = <INPUT_KEY_0>; |
| }; |
| }; |
| }; |
| |
| compatible: "futaba,sbus" |
| |
| include: [base.yaml, uart-device.yaml] |
| |
| child-binding: |
| description: | |
| SBUS Channel to input-event-code binding |
| INPUT_EV_ABS & INPUT_EV_MSC gives raw input value |
| INPUT_EV_KEY emulates a key |
| properties: |
| channel: |
| type: int |
| required: true |
| description: | |
| SBUS input channel |
| Valid range: 1 - 16 |
| type: |
| type: int |
| required: true |
| description: Input event types see INPUT_EV_CODES |
| zephyr,code: |
| type: int |
| required: true |
| description: Code to emit. |