The Tab5 ships in two hardware variants and the board supported only one of them. The earlier units carry an ILI9881C panel and a GT911 touch controller, the later ones a ST7121/ST7123 panel and a ST7123 touch controller, and the two always come as a pair. On an earlier unit the panel stays lit but black, and the touch bring-up fails with "failed to register ST7123: -5". Add the ILI9881C initialization table, taken from the Espressif BSP, along with the display timings it needs, which differ from the ST7123 ones in the DPI clock (60 MHz instead of 70 MHz) and in every porch. The panel identification lives on command page 1 and is read and logged during bring-up, so the boot log says which panel answered. Add the GT911 to the touch controller choice. These units have a pull-up to 3V3 on the touch interrupt line that keeps the controller from scanning, so the line is driven low instead of being used as an interrupt, and contacts are picked up when the device is read. The controller identification is logged the same way. Split esp32p4_touch.c into one file per controller, which is how the panels are already handled, and document both variants together with the I2C scan that tells which one is fitted. The defaults are unchanged, so an existing configuration still selects the ST7121 panel and the ST7123 touch controller. Signed-off-by: Jorge Guzman <jorge.gzm@gmail.com> |
||
|---|---|---|
| .github | ||
| arch | ||
| audio | ||
| binfmt | ||
| boards | ||
| cmake | ||
| crypto | ||
| Documentation | ||
| drivers | ||
| dummy | ||
| fs | ||
| graphics | ||
| include | ||
| libs | ||
| mm | ||
| net | ||
| openamp | ||
| pass1 | ||
| sched | ||
| syscall | ||
| tools | ||
| video | ||
| wireless | ||
| .asf.yaml | ||
| .codespell-ignore-lines | ||
| .codespellrc | ||
| .editorconfig | ||
| .gitignore | ||
| .gitmessage | ||
| .pre-commit-config.yaml | ||
| .yamllint | ||
| AUTHORS | ||
| CMakeLists.txt | ||
| CONTRIBUTING.md | ||
| INVIOLABLES.md | ||
| Kconfig | ||
| LICENSE | ||
| Makefile | ||
| NOTICE | ||
| README.md | ||
| ReleaseNotes | ||
Apache NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOSs (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).
For brevity, many parts of the documentation will refer to Apache NuttX as simply NuttX.
Getting Started
First time on NuttX? Read the Getting Started guide! If you don't have a board available, NuttX has its own simulator that you can run on terminal.
Documentation
You can find the current NuttX documentation on the Documentation Page.
Alternatively, you can build the documentation yourself by following the Documentation Build Instructions.
The old NuttX documentation is still available in the Apache wiki.
Supported Boards
NuttX supports a wide variety of platforms. See the full list on the Supported Platforms page.
Contributing
If you wish to contribute to the NuttX project, read the Contributing guidelines for information on Git usage, coding standard, workflow and the NuttX principles.
License
The code in this repository is under either the Apache 2 license, or a license compatible with the Apache 2 license. See the License Page for more information.