qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

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