arm64/pinephone: Add driver for LCD Panel (Xingbangda XBD599)

This PR adds the driver for Xingbangda XBD599 LCD Panel (based on Sitronix ST7703 LCD Controller) on PINE64 PinePhone. This PR also includes:

- The driver for X-Powers AXP803 Power Mgmt IC, which calls our driver for Allwinner A64's Reduced Serial Bus. The PMIC Driver is needed to power on the MIPI DSI Interface for the LCD Panel.

- A simple Display Driver that renders a Test Pattern on the LCD Display at startup. It calls our Allwinner A64 drivers for Display Engine, Timing Controller TCON0 and MIPI Display Serial Interface.

The NuttX Frame Buffer Driver will be implemented in the next PR.

`arch/arm64/src/a64/a64_de.c`, `a64_de.h`: Changed the Frame Buffer pointer to `const` for Allwinner A64 Display Engine

`arch/arm64/src/a64/hardware/a64_memorymap.h`: Added the Base Address for PWM, for controlling the PWM Backlight

`boards/arm64/a64/pinephone/src/pinephone_bringup.c`: Call `fb_register()` to start the Display Driver at startup

`boards/arm64/a64/pinephone/src/Makefile`: Added LCD Driver, PMIC Driver and Display Driver to Makefile

`boards/arm64/a64/pinephone/Kconfig`: Added the Kconfig option for "PINE64 PinePhone > LCD Display" (`CONFIG_PINEPHONE_LCD`) which enables the LCD Driver, PMIC Driver and Display Driver

`boards/arm64/a64/pinephone/src/pinephone_lcd.c`, `pinephone_lcd.h`: Driver for Xingbangda XBD599 LCD Panel

`boards/arm64/a64/pinephone/src/pinephone_pmic.c`, `pinephone_pmic.h`: Driver for X-Powers AXP803 Power Mgmt IC

`boards/arm64/a64/pinephone/src/pinephone_display.c`: Simple Display Driver that renders a Test Pattern in `up_fbinitialize()`

`boards/arm64/a64/pinephone/configs/lcd/defconfig`: New PinePhone Board Configuration `pinephone:lcd` that enables the LCD Driver (`CONFIG_PINEPHONE_LCD`)

`platforms/arm/a64/boards/pinephone/index.rst`: Added PinePhone Board Configuration `pinephone:lcd` that enables the LCD Driver
This commit is contained in:
Lee Lup Yuen
2022-12-24 14:38:03 +08:00
committed by Xiang Xiao
parent 5a0d8fdf49
commit 17639af0a8
13 changed files with 2214 additions and 16 deletions
@@ -12,7 +12,7 @@ Features
- **GPU:** ARM Mali400 MP2
- **Interrupt Controller:** ARM GIC PL400 (Generic Interrupt Controller v2)
- **Display Engine:** Allwinner Display Engine 2.0 (MIPI DSI with DMA)
- **Display:** Xingbangda XBD599 HD IPS Capacitive Touchscreen (5.95 inches, 1440x720 resolution, 16M colors)
- **Display:** Xingbangda XBD599 HD IPS Capacitive Touchscreen (5.95 inches, 1440x720 resolution, 16M colors, PWM Backlight)
- **LCD Controller:** Sitronix ST7703 (MIPI DSI)
- **RAM:** 2GB or 3GB LPDDR3 SDRAM
- **Internal Storage:** 16GB or 32GB eMMC, extendable up to 2TB via microSD
@@ -29,6 +29,7 @@ Features
- **Privacy Switches:** Modem, WiFi & Bluetooth, Microphone, Cameras, Headphone
- **Battery:** Lithium-ion, rated capacity 2800mAh (10.64Wh), typical capacity 3000mAh (11.40Wh)
- **I/O:** USB Type-C, USB Host, DisplayPort Alternate Mode output, 15W 5V 3A Quick Charge, follows USB PD specification
- **Power Management Integrated Circuit:** X-Powers AXP803 (Reduced Serial Bus)
Serial Console
==============
@@ -73,7 +74,7 @@ Configure the NuttX project and build the project:
.. code:: console
$ cd nuttx
$ tools/configure.sh pinephone:nsh
$ tools/configure.sh pinephone:lcd
$ make
$ cp nuttx.bin Image
$ rm -f Image.gz
@@ -129,6 +130,15 @@ LED3 Blue LED PD20
Configurations
==============
lcd
___
Supports LCD Display (XBD599) with LCD Controller (ST7703),
Display Engine 2.0, MIPI Display Serial Interface (DSI),
Power Management Integrated Circuit (AXP803) and
Reduced Serial Bus (RSB).
Serial Console is enabled on UART0 at 115.2 kbps.
nsh
---
@@ -142,14 +152,18 @@ Peripheral Support
NuttX for PinePhone supports these peripherals:
============== ======= =====
Peripheral Support NOTES
============== ======= =====
Display Engine Yes
MIPI D-PHY Yes
MIPI DSI Yes
PIO Yes
RSB Yes
TCON0 Yes
UART Yes Only UART0 is supported
============== ======= =====
======================= ======= =====
Peripheral Support NOTES
======================= ======= =====
Backlight Yes
Display Engine Yes
LCD Controller (ST7703) Yes
LCD Panel (XBD599) Yes
MIPI D-PHY Yes
MIPI DSI Yes
PIO Yes
PMIC (AXP803) Yes
RSB Yes
TCON0 Yes
UART Yes Only UART0 is supported
======================= ======= =====