Find a file
TOKITA Hiroshi 6699d4d4f9 drivers: led_strip: add rpi_pico's PIO based ws2812 driver
Add driver that based on RPI-PICO's PIO feature for ws2812.

This driver can handle WS2812 or compatible LED strips.
The single PIO node can handle up to 4 strips.
Any pins that can be configured for PIO can be used for strips.

I verified the samples/driver/led_ws2812 sample
working with WS2812(144 pcs) led strip using following patches.

- samples/drivers/led_ws2812/boards/rpi_pico.overlay

```
/ {
        aliases {
                led-strip = &ws2812;
        };
};

&pinctrl {
        ws2812_pio0_default: ws2812_pio0_default {
                ws2812 {
                        pinmux = <PIO0_P21>;
                };
        };
};

&pio0 {
        status = "okay";

        pio-ws2812 {
                compatible = "worldsemi,ws2812-rpi_pico-pio";
                status = "okay";
                pinctrl-0 = <&ws2812_pio0_default>;
                pinctrl-names = "default";
                bit-waveform = <3>, <3>, <4>;

                ws2812: ws2812 {
                        status = "okay";
                        output-pin = <21>;
                        chain-length = <144>;
                        color-mapping = <LED_COLOR_ID_GREEN
                                         LED_COLOR_ID_RED
                                         LED_COLOR_ID_BLUE>;
                        reset-delay = <280>;
                        frequency = <800000>;
                };
        };
};

```

- samples/drivers/led_ws2812/boards/rpi_pico.conf

```
CONFIG_WS2812_STRIP_RPI_PICO_PIO=y
```

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
2024-01-10 12:10:36 +01:00
.github ci: use kitaware ninja with job server support 2024-01-09 11:52:15 -05:00
arch arch: arm: core: cortex_m: fix cache disabling in init_arch_hw_at_boot 2024-01-10 09:59:58 +01:00
boards doc: add note that some versions of displays are not supported 2024-01-10 11:07:41 +01:00
cmake cmake: modules: shields: Process shields in order 2024-01-09 10:03:15 +01:00
doc doc: net: ppp: Fix the point-to-point documentation 2024-01-10 12:06:19 +01:00
drivers drivers: led_strip: add rpi_pico's PIO based ws2812 driver 2024-01-10 12:10:36 +01:00
dts drivers: led_strip: add rpi_pico's PIO based ws2812 driver 2024-01-10 12:10:36 +01:00
include/zephyr driver: usb: change function parameter name from class to base_class. 2024-01-10 11:08:11 +01:00
kernel kernel: need_swap zephyrproject-rtos#66299 2024-01-04 09:42:12 +01:00
lib posix: patch to implement get_pid function 2024-01-08 12:44:45 +01:00
misc cmake: modules: dts: use devicetree stub file 2023-10-20 12:18:17 -07:00
modules drivers: mdio: Add xmc4xxx mdio drivers 2024-01-09 10:00:47 +01:00
samples tests bsim bt: Add basic connection test with HCI UART async controllers 2024-01-10 10:01:37 +01:00
scripts scripts: tests: twister_blackbox: Add more tests test_printouts.py 2024-01-09 18:26:41 +01:00
share sysbuild: kconfig: Unset shield config value variable 2024-01-02 12:02:21 +00:00
snippets snippets: xen_dom0: add support for Renesas R-Car Gen3 boards 2023-09-15 11:15:00 +01:00
soc soc: arm: use sys_cache* to enable caches for stm32f7 and stm32h7 2024-01-10 09:59:58 +01:00
submanifests manifest: zscilib: update revision for double promotion fix 2024-01-03 18:59:32 +00:00
subsys driver: usb: change function parameter name from class to base_class. 2024-01-10 11:08:11 +01:00
tests tests/drivers uart_async_*: Provide overlays for nrf52_bsim 2024-01-10 10:01:37 +01:00
.checkpatch.conf checkpatch: Remove ext/ from excludes 2022-11-30 12:06:55 -05:00
.clang-format Build System: clang-format: add K_SPINLOCK to FOR_EACH 2023-12-26 19:36:01 +00:00
.codecov.yml yamllint: fix all yamllint comments errors 2023-01-04 01:16:45 +09:00
.editorconfig editorconfig: Improve verbosity 2022-04-28 08:55:39 -04:00
.gitattributes gitattributes: consider SVG files generated 2021-10-14 12:42:44 -04:00
.gitignore scripts: compliance: add a compliance check to keep blocks of code sorted 2023-11-13 09:41:05 +01:00
.gitlint .gitlint: de-duplicate defaults with zephyr_commit_rules.py 2023-09-21 09:29:24 +02:00
.mailmap mailmap: sort alphabetically 2023-05-15 13:23:32 -04:00
.yamllint scripts: compliance: add support for YAMLLint 2023-01-04 17:29:23 +01:00
CMakeLists.txt scripts: zspdx: Include modules as packages in zephyr.spdx 2024-01-09 09:59:57 +01:00
CODE_OF_CONDUCT.md coc: Update Code of Conduct to latest Contributor Covenant 2023-12-21 09:38:23 +00:00
CODEOWNERS boards: xtensa: add Kincony KC868-A32 module suppport 2024-01-08 14:21:30 +01:00
CONTRIBUTING.rst doc: Fixed a link in CONTRIBUTING.rst 2019-02-28 12:46:04 -08:00
Kconfig kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
Kconfig.zephyr kconfig: Deprecate BOOTLOADER_SRAM_SIZE 2024-01-08 10:06:24 +01:00
LICENSE
MAINTAINERS.yml MAINTAINERS.yml: Update the Ambiq platform covered files 2024-01-09 10:04:24 +01:00
README.rst doc: README: Rework Resources section 2023-10-17 19:05:20 +03:00
VERSION release: bump main to v3.5.99 2023-10-20 14:32:45 +03:00
version.h.in kernel: banner: Allow for customising version 2023-08-21 10:09:46 +02:00
west.yml west.yml: MCUboot synchronization from upstream 2024-01-10 10:01:43 +01:00
zephyr-env.cmd
zephyr-env.sh everywhere: fix typos 2022-03-18 13:24:08 -04:00

.. raw:: html

   <a href="https://www.zephyrproject.org">
     <p align="center">
       <picture>
         <source media="(prefers-color-scheme: dark)" srcset="doc/_static/images/logo-readme-dark.svg">
         <source media="(prefers-color-scheme: light)" srcset="doc/_static/images/logo-readme-light.svg">
         <img src="doc/_static/images/logo-readme-light.svg">
       </picture>
     </p>
   </a>

   <a href="https://bestpractices.coreinfrastructure.org/projects/74"><img
   src="https://bestpractices.coreinfrastructure.org/projects/74/badge"></a>
   <a
   href="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml?query=branch%3Amain">
   <img
   src="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml/badge.svg?event=push"></a>


The Zephyr Project is a scalable real-time operating system (RTOS) supporting
multiple hardware architectures, optimized for resource constrained devices,
and built with security in mind.

The Zephyr OS is based on a small-footprint kernel designed for use on
resource-constrained systems: from simple embedded environmental sensors and
LED wearables to sophisticated smart watches and IoT wireless gateways.

The Zephyr kernel supports multiple architectures, including ARM (Cortex-A,
Cortex-R, Cortex-M), Intel x86, ARC, Nios II, Tensilica Xtensa, and RISC-V,
SPARC, MIPS, and a large number of `supported boards`_.

.. below included in doc/introduction/introduction.rst


Getting Started
***************

Welcome to Zephyr! See the `Introduction to Zephyr`_ for a high-level overview,
and the documentation's `Getting Started Guide`_ to start developing.

.. start_include_here

Community Support
*****************

Community support is provided via mailing lists and Discord; see the Resources
below for details.

.. _project-resources:

Resources
*********

Here's a quick summary of resources to help you find your way around:

Getting Started
---------------

  | 📖 `Zephyr Documentation`_
  | 🚀 `Getting Started Guide`_
  | 🙋🏽 `Tips when asking for help`_
  | 💻 `Code samples`_

Code and Development
--------------------

  | 🌐 `Source Code Repository`_
  | 📦 `Releases`_
  | 🤝 `Contribution Guide`_

Community and Support
---------------------

  | 💬 `Discord Server`_ for real-time community discussions
  | 📧 `User mailing list (users@lists.zephyrproject.org)`_
  | 📧 `Developer mailing list (devel@lists.zephyrproject.org)`_
  | 📬 `Other project mailing lists`_
  | 📚 `Project Wiki`_

Issue Tracking and Security
---------------------------

  | 🐛 `GitHub Issues`_
  | 🔒 `Security documentation`_
  | 🛡️ `Security Advisories Repository`_
  | ⚠️ Report security vulnerabilities at vulnerabilities@zephyrproject.org

Additional Resources
--------------------
  | 🌐 `Zephyr Project Website`_
  | 📺 `Zephyr Tech Talks`_

.. _Zephyr Project Website: https://www.zephyrproject.org
.. _Discord Server: https://chat.zephyrproject.org
.. _supported boards: https://docs.zephyrproject.org/latest/boards/index.html
.. _Zephyr Documentation: https://docs.zephyrproject.org
.. _Introduction to Zephyr: https://docs.zephyrproject.org/latest/introduction/index.html
.. _Getting Started Guide: https://docs.zephyrproject.org/latest/develop/getting_started/index.html
.. _Contribution Guide: https://docs.zephyrproject.org/latest/contribute/index.html
.. _Source Code Repository: https://github.com/zephyrproject-rtos/zephyr
.. _GitHub Issues: https://github.com/zephyrproject-rtos/zephyr/issues
.. _Releases: https://github.com/zephyrproject-rtos/zephyr/releases
.. _Project Wiki: https://github.com/zephyrproject-rtos/zephyr/wiki
.. _User mailing list (users@lists.zephyrproject.org): https://lists.zephyrproject.org/g/users
.. _Developer mailing list (devel@lists.zephyrproject.org): https://lists.zephyrproject.org/g/devel
.. _Other project mailing lists: https://lists.zephyrproject.org/g/main/subgroups
.. _Code samples: https://docs.zephyrproject.org/latest/samples/index.html
.. _Security documentation: https://docs.zephyrproject.org/latest/security/index.html
.. _Security Advisories Repository: https://github.com/zephyrproject-rtos/zephyr/security
.. _Tips when asking for help: https://docs.zephyrproject.org/latest/develop/getting_started/index.html#asking-for-help
.. _Zephyr Tech Talks: https://www.zephyrproject.org/tech-talks