qp_gc9a01_opcodes.h (4674B)
1 // Copyright 2021 Paul Cotter (@gr1mr3aver) 2 // Copyright 2024 Fernando Birra 3 // SPDX-License-Identifier: GPL-2.0-or-later 4 #pragma once 5 6 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 7 // Quantum Painter GC9A01 command opcodes 8 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 9 10 #define GC9A01_SET_MEM_CONT 0x3C // Set memory continue 11 #define GC9A01_SET_BRIGHTNESS 0x51 // Set brightness 12 #define GC9A01_SET_DISPLAY_CTL 0x53 // Set display ctl 13 14 #define GC9A01_SET_RGB_IF_SIG_CTL 0xB0 // RGB IF signal ctl 15 #define GC9A01_SET_BLANKING_PORCH_CTL 0xB5 // Set blanking porch ctl 16 #define GC9A01_SET_FUNCTION_CTL 0xB6 // Set function ctl 17 #define GC9A01_SET_TEARING_EFFECT 0xBA // Set tering effect control 18 #define GC9A01_SET_POWER_CTL_7 0xA7 // Set power ctl 7 19 #define GC9A01_SET_POWER_CTL_1 0xC1 // Set power ctl 1 20 #define GC9A01_SET_POWER_CTL_2 0xC3 // Set power ctl 2 21 #define GC9A01_SET_POWER_CTL_3 0xC4 // Set power ctl 3 22 #define GC9A01_SET_POWER_CTL_4 0xC9 // Set power ctl 4 23 #define GC9A01_SET_FRAME_RATE 0xE8 // Set frame rate 24 #define GC9A01_SET_SPI_2DATA 0xE9 // Set frame rate 25 #define GC9A01_SET_GAMMA3 0xF2 // Set gamma 3 26 #define GC9A01_SET_GAMMA4 0xF3 // Set gamma 4 27 #define GC9A01_SET_IF_CTL 0xF6 // Set interface control 28 29 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 30 // GC9A01 MADCTL Flags 31 #define GC9A01_MADCTL_MH 0b00000100 32 33 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 34 // GC9A01 Parameter constants 35 36 // Parameter values for 37 // GC9A01_SET_PIXEL_FORMAT 38 #define GC9A01_PIXEL_FORMAT_12_BPP_DBI (0b011 << 0) // 12 bits/pixel MCU interface format 39 #define GC9A01_PIXEL_FORMAT_16_BPP_DBI (0b101 << 0) // 16 bits/pixel MCU interface format 40 #define GC9A01_PIXEL_FORMAT_18_BPP_DBI (0b110 << 0) // 18 bits/pixel MCU interface format 41 #define GC9A01_PIXEL_FORMAT_16_BPP_DPI (0b101 << 4) // 16 bits/pixel RGB interface format 42 #define GC9A01_PIXEL_FORMAT_18_BPP_DPI (0b110 << 4) // 18 bits/pixel RGB interface format 43 44 // Parameter values for 45 // GC9A01_SET_FUNCTION_CTL (2nd parameter) 46 #define GC9A01_SOURCE_OUTPUT_SCAN_DIRECTION_S1_TO_S360 0b00000000 47 #define GC9A01_SOURCE_OUTPUT_SCAN_DIRECTION_S360_TO_S1 0b00100000 48 #define GC9A01_GATE_OUTPUT_SCAN_DIRECTION_G1_TO_G32 0b00000000 49 #define GC9A01_GATE_OUTPUT_SCAN_DIRECTION_G32_TO_G1 0b01000000 50 #define GC9A01_SCAN_MODE_INTER 0x10 51 52 // Parameter values for 53 // GC9A01_SET_FUNCTION_CTL (3rd parameter) 54 #define GC9A01_LCD_DRIVE_LINE_16 0x01 55 #define GC9A01_LCD_DRIVE_LINE_24 0x02 56 #define GC9A01_LCD_DRIVE_LINE_32 0x03 57 #define GC9A01_LCD_DRIVE_LINE_40 0x04 58 #define GC9A01_LCD_DRIVE_LINE_48 0x05 59 #define GC9A01_LCD_DRIVE_LINE_56 0x06 60 #define GC9A01_LCD_DRIVE_LINE_64 0x07 61 #define GC9A01_LCD_DRIVE_LINE_72 0x08 62 #define GC9A01_LCD_DRIVE_LINE_80 0x09 63 #define GC9A01_LCD_DRIVE_LINE_88 0x0A 64 #define GC9A01_LCD_DRIVE_LINE_96 0x0B 65 #define GC9A01_LCD_DRIVE_LINE_104 0x0C 66 #define GC9A01_LCD_DRIVE_LINE_112 0x0D 67 #define GC9A01_LCD_DRIVE_LINE_120 0x0E 68 #define GC9A01_LCD_DRIVE_LINE_128 0x0F 69 #define GC9A01_LCD_DRIVE_LINE_136 0x10 70 #define GC9A01_LCD_DRIVE_LINE_144 0x11 71 #define GC9A01_LCD_DRIVE_LINE_152 0x12 72 #define GC9A01_LCD_DRIVE_LINE_160 0x13 73 #define GC9A01_LCD_DRIVE_LINE_168 0x14 74 #define GC9A01_LCD_DRIVE_LINE_176 0x15 75 #define GC9A01_LCD_DRIVE_LINE_184 0x16 76 #define GC9A01_LCD_DRIVE_LINE_192 0x17 77 #define GC9A01_LCD_DRIVE_LINE_200 0x18 78 #define GC9A01_LCD_DRIVE_LINE_208 0x19 79 #define GC9A01_LCD_DRIVE_LINE_216 0x1A 80 #define GC9A01_LCD_DRIVE_LINE_224 0x1B 81 #define GC9A01_LCD_DRIVE_LINE_232 0x1C 82 #define GC9A01_LCD_DRIVE_LINE_240 0x1D 83 84 // Parameter values for 85 // GC9A01_SET_DISPLAY_CTL 86 #define GC9A01_BRIGHTNESS_CONTROL_ON 0b00100000 87 #define GC9A01_DIMMING_ON 0b00001000 88 #define GC9A01_BACKLIGHT_ON 0b00000100 89 #define GC9A01_BRIGHTNESS_CONTROL_OFF 0b00000000 90 #define GC9A01_DIMMING_OFF 0b00000000 91 #define GC9A01_BACKLIGHT_OFF 0b00000000 92 93 // Parameter values for 94 // GC9A01_SET_IF_CTL 95 #define GC9A01_DISPLAY_MODE_INTERNAL_CLOCK 0b00000000 96 #define GC9A01_DISPLAY_MODE_RGB_INTERFACE 0b00000100 97 #define GC9A01_DISPLAY_MODE_VSYNC_INTERFACE 0b00001000 98 #define GC9A01_DSISPLAY_MODE_DISABLED 0b00001100 99 100 #define GC0A01_GRAM_INTERFACE_VSYNC 0b00000000 101 #define GC9A01_GRAM_INTERFACE_RGB 0b00000010 102 103 #define GC9A01_RGB_INTERFACE_MODE_1_TRANSFER 0b00000000 104 #define GC9A01_RGB_INTERFACE_MODE_3_TRANSFER 0b00000001