STRUCT ILI9322_CONFIG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

okay so welcome to the Kernel API Manual, bestie πŸ’– this is the page for struct ili9322_config(9) β€” literally the system specific ILI9322 configuration. It’s giving tiny struct, big panel energy, and we’re gonna go through every single member, no cap. 🫢

✨ SYNOPSIS ✨

struct ili9322_config {
    u32 width_mm;
    u32 height_mm;
    bool flip_horizontal;
    bool flip_vertical;
    enum ili9322_input input;
    u32 vreg1out_mv;
    u32 vcom_high_percent;
    u32 vcom_amplitude_percent;
    bool dclk_active_high;
    bool de_active_high;
    bool hsync_active_high;
    bool vsync_active_high;
    u8 syncmode;
    u8 gamma_corr_pos[8];
    u8 gamma_corr_neg[8];
};

🫢 Members 🫢

  • width_mm β€” physical panel width [mm] πŸ“
  • height_mm β€” physical panel height [mm] πŸ“
  • flip_horizontal β€” flip the image horizontally (right-to-left scan) (only in RGB and YUV modes) πŸ”„
  • flip_vertical β€” flip the image vertically (down-to-up scan) (only in RGB and YUV modes) πŸ™ƒ
  • input β€” the input/entry type used in this system; if this is set to ILI9322_INPUT_UNKNOWN the driver will try to figure it out by probing the hardware πŸ”
  • vreg1out_mv β€” the output in microvolts for the VREGOUT1 regulator used to drive the physical display. Valid ranges are 3600 thru 6000 in 100 microvolt increments. If not specified, hardware defaults will be used (4.5V). ⚑
  • vcom_high_percent β€” the percentage of VREGOUT1 used for the peak voltage on the communications link. Valid ranges are 37 thru 100 percent. If not specified, hardware defaults will be used (91%). πŸ’₯
  • vcom_amplitude_percent β€” the percentage of VREGOUT1 used for the peak-to-peak amplitude of the communcation signals to the physical display. Valid ranges are 70 thru 132 percent in increments if two percent. Odd percentages will be truncated. If not specified, hardware defaults will be used (114%). 🌊
  • dclk_active_high β€” data/pixel clock active high, data will be clocked in on the rising edge of the DCLK (this is usually the case). ⏰
  • de_active_high β€” DE (data entry) is active high πŸ“ˆ
  • hsync_active_high β€” HSYNC is active high πŸ“Ά
  • vsync_active_high β€” VSYNC is active high πŸ“Ί
  • syncmode β€” The synchronization mode, what sync signals are emitted. See the enum for details. πŸŽ›οΈ
  • gamma_corr_pos β€” a set of 8 nybbles describing positive gamma correction for voltages V1 thru V8. Valid range 0..15 🌈
  • gamma_corr_neg β€” a set of 8 nybbles describing negative gamma correction for voltages V1 thru V8. Valid range 0..15 πŸŒ™

πŸ’… Description πŸ’…

These adjust what grayscale voltage will be output for input data V1 = 0, V2 = 16, V3 = 48, V4 = 96, V5 = 160, V6 = 208, V7 = 240 and V8 = 255. The curve is shaped like this:

^ |                                                        V8 |
V7 |                                          V6 |
V5 |                    V4 |            V3 |     V2 | V1
+-----------------------------------------------------------> 0   16
48      96         160        208      240  255

The negative and postive gamma values adjust the V1 thru V8 up/down according to the datasheet specifications. This is a property of the physical display connected to the display controller and may vary. If defined, both arrays must be supplied in full. If the properties are not supplied, hardware defaults will be used.

πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./drivers/gpu/drm/panel/panel-ilitek-ili9322.c β€” go read it, bestie, it’s the main character πŸ‘‘

mwah πŸ’‹ source/version: ./drivers/gpu/drm/panel; date: October 2026. That’s the struct ili9322_config(9) page, periodt. 🫢

πŸ“¦ where this page comes from