71 lines
1.9 KiB
YAML
71 lines
1.9 KiB
YAML
|
# Copyright (c) 2024 NXP Semiconductors
|
||
|
# SPDX-License-Identifier: Apache-2.0
|
||
|
|
||
|
description: |
|
||
|
SBUS input driver using
|
||
|
This driver implements the SBUS protocol used on RC radio's
|
||
|
to send out analogue joystick and switches output.
|
||
|
SBUS is an single-wire inverted serial protocol to either you need to
|
||
|
to the rx-invert feature of your serial driver or use an external signal inverter.
|
||
|
The driver binds this to the Zephyr input system using INPUT_EV_CODES.
|
||
|
|
||
|
The following examples defines a a binding of 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.
|