Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- a/firmware/target/mips/ingenic_x1000/erosqnative/lcd-erosqnative.c.orig 2024-06-16 10:27:59.251598558 +0200
- +++ b/firmware/target/mips/ingenic_x1000/erosqnative/lcd-erosqnative.c 2024-06-21 10:50:28.715569271 +0200
- @@ -26,9 +26,139 @@
- #include "gpio-x1000.h"
- #include "system.h"
- +//#define LCD_TYPE_GC9A01 1 /* Now defined in configure for 248|erosqnative_v3 */
- +
- /* for reference on these command/data hex values, see the mipi dcs lcd spec. *
- * Not everything here is there, but all the standard stuff is. */
- +/* New Display Eroq 2.1 / Hifiwalker 1.7+ / Surfans v3.2, unknown Controller *
- + * (partially GC9A01 register compatible) *
- + * https://espruino.microcosm.app/api/v1/files/ \ *
- + * 9dc1b976d621a2ab3854312cce862c4a9a50dc1b.html#GC9A01 , *
- + * https://www.buydisplay.com/download/ic/GC9A01A.pdf , *
- + * https://lcddisplay.co/wp-content/uploads/2023/02/GC9A01.pdf *
- + * Init sequence From 'EROS Q (c口)_V2.1_20231209固件.zip' *
- + * update.upt/.iso -> In 'uboot.bin' at 0x52da0-0x5305f *
- + * http://www.eroshifi.com/download/firmware/122.html */
- +
- +#ifdef LCD_TYPE_GC9A01
- +static const uint32_t erosqnative_lcd_cmd_enable[] = {
- +
- + /* Unlock EXTC? */
- + LCD_INSTR_CMD, 0xfe, // Inter Register Enable1
- + LCD_INSTR_CMD, 0xef, // Inter Register Enable2
- +
- + LCD_INSTR_CMD, 0x36, // Memory Access Control
- +/* Bit7 1:vertical flip 0:no vertical flip
- + Bit6 1:horizontal flip 0:no horizontal flip
- + Bit3 1:BGR 0:RGB */
- + LCD_INSTR_DAT, 0x90,
- + /* Pixel Format Set */
- + LCD_INSTR_CMD, 0x3a,
- + LCD_INSTR_DAT, 0x55, /* Rockbox uses 16pp, OF specified 18 bpp */
- +
- + LCD_INSTR_CMD, 0x84, // ?? (undocumented)
- + LCD_INSTR_DAT, 0x04,
- + LCD_INSTR_CMD, 0x86, // ??
- + LCD_INSTR_DAT, 0xfb,
- + LCD_INSTR_CMD, 0x87, // ??
- + LCD_INSTR_DAT, 0x79,
- + LCD_INSTR_CMD, 0x89, // ??
- + LCD_INSTR_DAT, 0x0b,
- + LCD_INSTR_CMD, 0x8a, // ??
- + LCD_INSTR_DAT, 0x20,
- + LCD_INSTR_CMD, 0x8b, // ??
- + LCD_INSTR_DAT, 0x80,
- + LCD_INSTR_CMD, 0x8d, // ??
- + LCD_INSTR_DAT, 0x3b,
- + LCD_INSTR_CMD, 0x8e, // ??
- + LCD_INSTR_DAT, 0xcf,
- +
- + LCD_INSTR_CMD, 0xec, // Charge Pump Frequent Control
- + LCD_INSTR_DAT, 0x33,
- + LCD_INSTR_DAT, 0x02,
- + LCD_INSTR_DAT, 0x4c,
- +
- + LCD_INSTR_CMD, 0x98, // ?? (undocumented)
- + LCD_INSTR_DAT, 0x3e,
- + LCD_INSTR_CMD, 0x9c, // ??
- + LCD_INSTR_DAT, 0x4b,
- + LCD_INSTR_CMD, 0x99, // ??
- + LCD_INSTR_DAT, 0x3e,
- + LCD_INSTR_CMD, 0x9d, // ??
- + LCD_INSTR_DAT, 0x4b,
- + LCD_INSTR_CMD, 0x9b, // ??
- + LCD_INSTR_DAT, 0x55,
- +
- + LCD_INSTR_CMD, 0xe8, // Frame Rate
- + LCD_INSTR_DAT, 0x11,
- + LCD_INSTR_DAT, 0x00,
- +
- + LCD_INSTR_CMD, 0xff, // ?? (Adafruit & Co lib. C:0xFF, D:0x60, D:0x01, D:0x04)
- + LCD_INSTR_DAT, 0x62, // LCD_INSTR_DAT, 0x01, LCD_INSTR_DAT, 0x04,
- + LCD_INSTR_CMD, 0xc3, // Vreg1a voltage Control
- + LCD_INSTR_DAT, 0x20,
- + LCD_INSTR_CMD, 0xc4, // Vreg1b voltage Control
- + LCD_INSTR_DAT, 0x03,
- + LCD_INSTR_CMD, 0xc9, // Vreg2a voltage Control
- + LCD_INSTR_DAT, 0x2a,
- +
- + LCD_INSTR_CMD, 0xf0, // SET_GAMMA1
- + LCD_INSTR_DAT, 0x4a,
- + LCD_INSTR_DAT, 0x10,
- + LCD_INSTR_DAT, 0x0a,
- + LCD_INSTR_DAT, 0x0a,
- + LCD_INSTR_DAT, 0x26,
- + LCD_INSTR_DAT, 0x39,
- +
- + LCD_INSTR_CMD, 0xf2, // SET_GAMMA3
- + LCD_INSTR_DAT, 0x4a,
- + LCD_INSTR_DAT, 0x10,
- + LCD_INSTR_DAT, 0x0a,
- + LCD_INSTR_DAT, 0x0a,
- + LCD_INSTR_DAT, 0x26,
- + LCD_INSTR_DAT, 0x39,
- +
- + LCD_INSTR_CMD, 0xf1, // SET_GAMMA2
- + LCD_INSTR_DAT, 0x50,
- + LCD_INSTR_DAT, 0x8f,
- + LCD_INSTR_DAT, 0xaf,
- + LCD_INSTR_DAT, 0x3b,
- + LCD_INSTR_DAT, 0x3f,
- + LCD_INSTR_DAT, 0x7f,
- +
- + LCD_INSTR_CMD, 0xf3, // SET_GAMMA4
- + LCD_INSTR_DAT, 0x50,
- + LCD_INSTR_DAT, 0x8f,
- + LCD_INSTR_DAT, 0xaf,
- + LCD_INSTR_DAT, 0x3b,
- + LCD_INSTR_DAT, 0x3f,
- + LCD_INSTR_DAT, 0x7f,
- +
- + LCD_INSTR_CMD, 0xba, // TE Control
- + LCD_INSTR_DAT, 0x0a,
- +
- +#ifdef BOOTLOADER
- + LCD_INSTR_CMD, 0x35, // Tearing Effect Line ON
- + LCD_INSTR_DAT, 0x00,
- +#endif
- +
- + LCD_INSTR_CMD, 0x21, /* Invert */
- +
- + /* Lock EXTC? */
- + LCD_INSTR_CMD, 0xfe, // Inter Register Enable1
- + LCD_INSTR_CMD, 0xee,
- +
- + /* Exit Sleep */
- + LCD_INSTR_CMD, 0x11,
- + LCD_INSTR_UDELAY, 120000,
- + /* Display On */
- + LCD_INSTR_CMD, 0x29,
- + LCD_INSTR_UDELAY, 20000,
- + LCD_INSTR_END,
- +};
- +#else
- +/* Original Display / Hifiwalker -1.5 / Surfans -2.7 */
- static const uint32_t erosqnative_lcd_cmd_enable[] = {
- /* Set EXTC? */
- LCD_INSTR_CMD, 0xc8,
- @@ -101,6 +220,7 @@
- LCD_INSTR_UDELAY, 20000,
- LCD_INSTR_END,
- };
- +#endif
- static const uint32_t erosqnative_lcd_of_compat_cmd[] = {
- /* Pixel Format Set */
- --- a/tools/configure 2024-06-16 15:38:01.000000000 +0200
- +++ b/tools/configure 2024-06-21 18:02:51.068247559 +02000
- @@ -1676,6 +1676,8 @@
- ==AIGO== 244) M3K Linux
- 245) Eros Q / K 246) M3K baremetal ==Shanling==
- 247) Eros Q / K native 260) Q1
- + 248) Eros Q / K native v3
- + (GC9A01 LCD Controller)
- EOF
- buildfor=`input`;
- @@ -4192,6 +4194,32 @@
- t_model="erosqnative"
- ;;
- + 248|erosqnative_v3)
- + target_id=116
- + modelname="erosqnative"
- + target="EROS_QN"
- + memory=32
- + mipsr2elcc
- + appextra="recorder:gui"
- + plugins="yes"
- + tool="$rootdir/tools/scramble -add=erosqnative "
- + boottool="$rootdir/tools/mkspl-x1000 -type=nand -ppb=2 -bpp=2 "
- + output="rockbox.erosq"
- + bootoutput="bootloader.erosq"
- + sysfontbl="16-Terminus"
- + # toolset is the tools within the tools directory that we build for
- + # this particular target.
- + toolset="$x1000tools"
- + bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
- + bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
- + # architecture, manufacturer and model for the target-tree build
- + t_cpu="mips"
- + t_manufacturer="ingenic_x1000"
- + t_model="erosqnative"
- + GCCOPTS="$GCCOPTS -DLCD_TYPE_GC9A01=1"
- + ;;
- +
- +
- *)
- echo "Please select a supported target platform!"
- exit 7
Add Comment
Please, Sign In to add comment