blob: d5d41ed38ee396270c2fb3068bd3d3eed16e0143 [file] [log] [blame]
# Copyright (c) 2023, TOKITA Hiroshi
# SPDX-License-Identifier: Apache-2.0
description: |
The pio node configured for ws2812.
compatible: "worldsemi,ws2812-rpi_pico-pio"
include: pinctrl-device.yaml
properties:
bit-waveform:
type: array
description: |
This property defines the waveform for sending 1-bit data.
The program uses the first three elements of the array.
The T0 is equal to T0H in the datasheet.
The T2 is equal to T1L in the datasheet.
The T1 is equal to (T1H-T0H) or (T0L-T1L) in the datasheet.
Code-0
+------+ +---
| | |
| T0 | T1+T2 |
| | |
---+ +-----------------+
Code-1
+---------------+ +---
| | |
| T0+T1 | T2 |
| | |
---+ +--------+
The frequency determines the wave period.
The T0~T2 means ratio in one period.
For example, T0=3, T1=3, T2=4 and the frequency is 800kHz case,
T0H is
(1 / 800kHz) * (3/10) = 375ns
T0L is
(1 / 800kHz) * ((4+3)/10) = 875ns
child-binding:
description: |
Worldsemi WS2812 or compatible LED strip driver based on RaspberryPi Pico's PIO
The LED strip node can put up to 4 instances under a single PIO node.
include: ws2812.yaml
properties:
output-pin:
type: int
required: true
description: |
Select the output pin.
Note: This driver does not configure the output pin.
You need to configure the pin with pinctrl that is in the parent node configuration
for use by PIO.
frequency:
type: int
description: |
Specify the number of times a waveform representing 1 bit is
transmitted per second. It is same meaning as bit-per-seconds.
WS2812 works with 800000. Set the value 400000 if use with WS2811.