logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

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