|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
Graphics LCD Controller driver implementation. More...
#include "ra8_glcdc.h"#include <stdint.h>#include "ra8_attributes.h"#include "ra8_check.h"#include "ra8_err.h"#include "ra8_glcdc_regs.h"#include "ra8_hw_err.h"#include "ra8_log.h"#include "ra8_mstp.h"Go to the source code of this file.
Data Structures | |
| struct | ra8_glcdc_panel_timing_t |
| Panel timing parameters shared by the per-stage helpers. More... | |
Functions | |
| static void | internal_hoco_enable (void) |
| Enable HOCO via PRC0-protected HOCOCR. | |
| static void | internal_graphics_domain_power_on (void) |
| Power on the Graphics power domain via PRC1-protected PDCTRGD. | |
| static void | internal_lcdclk_switch_pll1r (void) |
| Switch LCDCLK source to PLL1R / 4 via the SREQ/SRDY handshake. | |
| static void | internal_graphics_power_on (void) |
| Bring up the GLCDC graphics power domain and clock tree. | |
| static void | internal_program_tcon (const ra8_glcdc_panel_timing_t *t) |
| Program TCON sync-signal registers for parallel-RGB output. | |
| static void | internal_program_bg (const ra8_glcdc_panel_timing_t *t) |
| Program the GLCDC background-plane registers. | |
| static void | internal_program_gr1 (const ra8_glcdc_panel_timing_t *t, uintptr_t fb_addr, uint16_t fb_format, uint16_t fb_w, uint16_t fb_h) |
| Program graphics layer 1 (top blend layer). | |
| static void | internal_program_gr2 (const ra8_glcdc_panel_timing_t *t) |
| Program graphics layer 2 (lower blend layer). | |
| static void | internal_program_out (void) |
| Program the OUT stage (output format, brightness, contrast). | |
| static void | internal_panel_program (uintptr_t fb_addr, uint16_t fb_format, uint16_t fb_w, uint16_t fb_h, const ra8_glcdc_timing_t *tm) |
| Program every GLCDC register required to drive the panel. | |
| ra8_err_t | ra8_glcdc_init (const ra8_glcdc_config_t *cfg) |
| Initialise GLCDC with the EK-RA8D2 1024x600 timings and the supplied graphics layer 1 framebuffer. | |
| ra8_err_t | ra8_glcdc_start (bool enable) |
| Start or stop the panel output. | |
| ra8_err_t | ra8_glcdc_set_dithering (ra8_glcdc_dither_mode_t mode) |
| Programme the output dithering mode (PDTHA.SEL). | |
| ra8_err_t | ra8_glcdc_set_brightness (uint8_t r, uint8_t g, uint8_t b) |
| Programme per-channel output brightness. | |
| ra8_err_t | ra8_glcdc_set_contrast (uint8_t r, uint8_t g, uint8_t b) |
| Programme per-channel output contrast gain. | |
| ra8_err_t | ra8_glcdc_deinit (void) |
| Tear down GLCDC (stop + MSTP release). | |
| ra8_err_t | ra8_glcdc_get_status (uint32_t *out_mask) |
| Read GLCDC status register (VSYNC/HSYNC/underflow). | |
| ra8_err_t | ra8_glcdc_clear_status (uint32_t mask) |
| Clear GLCDC status flags. | |
| ra8_err_t | ra8_glcdc_attach_handler (ra8_glcdc_event_fn_t fn, void *ctx) |
| Attach a GLCDC event callback. | |
| void | ra8_glcdc_dispatch (void) |
| Dispatch a GLCDC event – snapshot + fire callback. | |
| ra8_err_t | ra8_glcdc_enter_stop (void) |
| Put GLCDC into MSTP-gated stop. | |
| ra8_err_t | ra8_glcdc_exit_stop (void) |
| Exit MSTP-gated stop. | |
Variables | |
| static const char * | s_tag = "GLCDC" |
| static ra8_glcdc_event_fn_t | s_glcdc_fn |
| static void * | s_glcdc_ctx |
Graphics LCD Controller driver implementation.
Driver for the RA8D2 GLCDC block. Programmes the background stage, both graphics layers (UI overlay over background image), the alpha blender, output-stage brightness/contrast/dithering, and double-buffered CLUTs. Closely mirrors the init order in FSP's r_glcdc_graphics_layer_set and the shadow-CLUT swap pattern in FSP's R_GLCDC_ClutEdit / R_GLCDC_ColorPaletteUpdate. Every register access carries a HUM Ch 63 citation.
| [in] | mode | See header declaration for direction and constraints. |
| k_ra8_ok | Success path. |
| k_ra8_err_invalid_arg | Caller violated a precondition. |
| [in] | layer | See header declaration for direction and constraints. |
| [in] | plane | See header declaration for direction and constraints. |
| [in] | argb | See header declaration for direction and constraints. |
| [in] | global_alpha | See header declaration for direction and constraints. |
| [in] | cfg | See header declaration for direction and constraints. |
Definition in file ra8_glcdc.c.
| anonymous enum : uintptr_t |
Power on the GLCDC graphics power domain and route LCDCLK.
Unlocks PRCR (PRC0 for CGC, PRC1 for LPM), clears PDCTRGD to power on the Graphics domain, waits for PDPGSF status, then switches LCDCKCR to PLL1R via the SREQ / SRDY handshake and enables HOCO. Required once at boot before any GLCDC register is touched – the peripheral bus returns garbage until PDCTRGD clears.
| Enumerator | |
|---|---|
| k_addr_prcr | Address prcr. |
| k_addr_pdctrgd | Address pdctrgd. |
| k_addr_lcdckdivcr | Address lcdckdivcr. |
| k_addr_lcdckcr | Address lcdckcr. |
| k_addr_hococr | Address hococr. |
Definition at line 128 of file ra8_glcdc.c.
| anonymous enum : uint16_t |
| Enumerator | |
|---|---|
| k_prcr_unlock_lpm | Prcr unlock lpm. |
| k_prcr_unlock_cgc | Prcr unlock cgc. |
| k_prcr_relock | Prcr relock. |
Definition at line 135 of file ra8_glcdc.c.
| anonymous enum : uint8_t |
Definition at line 140 of file ra8_glcdc.c.
| enum glcdc_clut_t : uint32_t |
CLUT entry count (16-bit address space).
| Enumerator | |
|---|---|
| k_glcdc_clut_size | GLCDC CLUT size. |
Definition at line 62 of file ra8_glcdc.c.
| enum ra8_glcdc_alpha_priv_t : uint32_t |
| Enumerator | |
|---|---|
| k_glcdc_alpha_opaque | Fully opaque (constant alpha). |
Definition at line 365 of file ra8_glcdc.c.
| enum ra8_glcdc_clut_const_t : uint16_t |
| Enumerator | |
|---|---|
| k_ra8_glcdc_clut_entries | Entries per CLUT plane. |
Definition at line 79 of file ra8_glcdc.c.
| enum ra8_glcdc_dispsel_priv_t : uint32_t |
| Enumerator | |
|---|---|
| k_glcdc_dispsel_transparent | GLCDC dispsel transparent. |
| k_glcdc_dispsel_non_transparent | GLCDC dispsel non transparent. |
Definition at line 359 of file ra8_glcdc.c.
| enum ra8_glcdc_layout_priv_t : uint32_t |
Definition at line 337 of file ra8_glcdc.c.
| enum ra8_glcdc_out_set_fmt_t : uint32_t |
| Enumerator | |
|---|---|
| k_glcdc_out_set_rgb888 | GLCDC out set rgb888. |
| k_glcdc_out_set_rgb666 | GLCDC out set rgb666. |
| k_glcdc_out_set_rgb565 | GLCDC out set rgb565. |
Definition at line 375 of file ra8_glcdc.c.
| enum ra8_glcdc_pdtha_fmt_t : uint32_t |
| Enumerator | |
|---|---|
| k_glcdc_pdtha_rgb888 | GLCDC pdtha rgb888. |
| k_glcdc_pdtha_rgb666 | GLCDC pdtha rgb666. |
| k_glcdc_pdtha_rgb565 | GLCDC pdtha rgb565. |
Definition at line 382 of file ra8_glcdc.c.
| enum ra8_glcdc_priv_const_t : uint8_t |
Definition at line 66 of file ra8_glcdc.c.
| enum ra8_glcdc_priv_mask_t : uint32_t |
| Enumerator | |
|---|---|
| k_ra8_glcdc_clutsel_mask | CLUTINT.SEL bit mask. |
| k_ra8_glcdc_arcon_mask | AB1.ARCON bit mask. |
Definition at line 83 of file ra8_glcdc.c.
| enum ra8_glcdc_tcon_sel_t : uint32_t |
| Enumerator | |
|---|---|
| k_glcdc_sel_stva | GLCDC sel stva. |
| k_glcdc_sel_stvb | GLCDC sel stvb. |
| k_glcdc_sel_stha | GLCDC sel stha. |
| k_glcdc_sel_de | GLCDC sel de. |
Definition at line 349 of file ra8_glcdc.c.
|
static |
Power on the Graphics power domain via PRC1-protected PDCTRGD.
HUM Ch 11.2.16 PDCTRGD power-on sequence (mirrors FSP bsp_clock_init):
Definition at line 198 of file ra8_glcdc.c.
References k_addr_pdctrgd, k_addr_prcr, k_glcdc_clut_size, k_pdctrgd_on, k_pdctrgd_pdpgsf, k_pdctrgd_status, k_prcr_relock, and k_prcr_unlock_lpm.
Referenced by internal_graphics_power_on().
|
static |
Bring up the GLCDC graphics power domain and clock tree.
Orchestrates the three-step sequence required before any GLCDC register outside of MSTPCRC is writable on RA8D2:
Definition at line 311 of file ra8_glcdc.c.
References internal_graphics_domain_power_on(), internal_hoco_enable(), and internal_lcdclk_switch_pll1r().
Referenced by ra8_glcdc_init().
|
static |
Enable HOCO via PRC0-protected HOCOCR.
HUM Ch 9.2.34 HOCOCR.HCSTP = 0 starts the HOCO. FSP bsp_clock_init keeps HOCO enabled even on PLL1-sourced systems because the graphics power domain's analogue trim logic still requires it.
Definition at line 169 of file ra8_glcdc.c.
References k_addr_hococr, k_addr_prcr, k_hococr_run, k_prcr_relock, and k_prcr_unlock_cgc.
Referenced by internal_graphics_power_on().
|
static |
Switch LCDCLK source to PLL1R / 4 via the SREQ/SRDY handshake.
HUM Ch 9.2.58 LCDCKCR change handshake: SREQ=1 -> wait SRDY=1 -> set LCDCKDIVCR -> set LCDCKSEL with SREQ=1 -> drop SREQ -> wait SRDY=0. PRC0 (CGC) gates these writes.
Definition at line 251 of file ra8_glcdc.c.
References k_addr_lcdckcr, k_addr_lcdckdivcr, k_addr_prcr, k_glcdc_clut_size, k_lcdck_sel_pll1r, k_lcdck_srdy_mask, k_lcdck_sreq, k_lcdckdivcr_div4, k_prcr_relock, and k_prcr_unlock_cgc.
Referenced by internal_graphics_power_on().
|
static |
Program every GLCDC register required to drive the panel.
Thin orchestrator that builds the panel-timing struct from the caller-supplied tm and calls the five per-stage helpers in the order FSP's r_glcdc_open uses: TCON, BG, GR1, GR2, OUT.
| [in] | fb_addr | Framebuffer base address for GR1. |
| [in] | fb_format | GR1 framebuffer pixel format. |
| [in] | fb_w | GR1 framebuffer width (pixels). |
| [in] | fb_h | GR1 framebuffer height (pixels). |
| [in] | tm | Panel RGB timing (from the board BSP). |
Definition at line 636 of file ra8_glcdc.c.
References ra8_glcdc_timing_t::h_active, ra8_glcdc_timing_t::h_back, ra8_glcdc_timing_t::h_front, ra8_glcdc_timing_t::h_sync, internal_program_bg(), internal_program_gr1(), internal_program_gr2(), internal_program_out(), internal_program_tcon(), ra8_glcdc_timing_t::v_active, ra8_glcdc_timing_t::v_back, ra8_glcdc_timing_t::v_front, and ra8_glcdc_timing_t::v_sync.
Referenced by ra8_glcdc_init().
|
static |
Program the GLCDC background-plane registers.
Sets BG period, sync position, and active area so the BG plane drives a full-frame solid colour from BG_BGC. Mirrors FSP r_glcdc_background_screen_set.
| [in] | t | Panel timing parameters used to compute the BG area and frame period. |
Definition at line 471 of file ra8_glcdc.c.
References ra8_glcdc_panel_timing_t::h_active, ra8_glcdc_panel_timing_t::h_back, ra8_glcdc_panel_timing_t::h_total, k_glcdc_shift_high, k_glcdc_sync_pos_min, k_ra8_glcdc_off_bg_bgc, k_ra8_glcdc_off_bg_hsize, k_ra8_glcdc_off_bg_per, k_ra8_glcdc_off_bg_sync, k_ra8_glcdc_off_bg_vsize, ra8_glcdc_reg32(), ra8_glcdc_panel_timing_t::v_active, ra8_glcdc_panel_timing_t::v_back, and ra8_glcdc_panel_timing_t::v_total.
Referenced by internal_panel_program().
|
static |
Program graphics layer 1 (top blend layer).
Configures GR1's framebuffer pointer, format, AXI burst count, panel position/size, and alpha. DISPSEL=transparent and FLMRD=0 so by default GR1 contributes nothing to the output – callers that want layer-1 pixels fill the framebuffer themselves and flip FLMRD=1.
| [in] | t | Panel timing. |
| [in] | fb_addr | GR1 framebuffer base address. |
| [in] | fb_format | Pixel format code for FLM6.FORMAT[30:28]. |
| [in] | fb_w | Framebuffer width in pixels (and layer width on the panel). |
| [in] | fb_h | Framebuffer height in pixels (and layer height on the panel). |
Definition at line 509 of file ra8_glcdc.c.
References ra8_glcdc_panel_timing_t::h_back, k_glcdc_axi_burst_bytes, k_glcdc_bpp_rgb565, k_glcdc_dispsel_transparent, k_glcdc_shift_flm6_fmt, k_glcdc_shift_high, k_ra8_glcdc_off_gr1_ab1, k_ra8_glcdc_off_gr1_ab2, k_ra8_glcdc_off_gr1_ab4, k_ra8_glcdc_off_gr1_ab5, k_ra8_glcdc_off_gr1_ab7, k_ra8_glcdc_off_gr1_flm3, k_ra8_glcdc_off_gr1_flmrd, k_ra8_glcdc_off_gr1_fmt, k_ra8_glcdc_off_gr1_line, k_ra8_glcdc_off_gr1_saddr, k_ra8_glcdc_off_gr1_size, ra8_glcdc_reg32(), and ra8_glcdc_panel_timing_t::v_back.
Referenced by internal_panel_program().
|
static |
Program graphics layer 2 (lower blend layer).
CRITICAL bring-up finding (2026-05-10): the RA8D2 GLCDC output stage composes its final pixel from BG x GR2 x GR1. If GR2 is left in reset state (all zeros, FLMRD=0, AB1.DISPSEL=0), the pipeline emits solid black even when BG_BGC is non-zero and GR1.DISPSEL=transparent – the unconfigured lower layer silently masks the BG plane. This helper configures GR2 to the same dimensions as the panel with DISPSEL=transparent, alpha=0, and FLMRD=0, so it occupies its pipeline slot without contributing pixels. Mirrors FSP r_glcdc_open which configures both layers in a for (layer = 0..1) loop.
| [in] | t | Panel timing parameters used for GR2 dimensions. |
Definition at line 568 of file ra8_glcdc.c.
References ra8_glcdc_panel_timing_t::h_active, ra8_glcdc_panel_timing_t::h_back, k_glcdc_dispsel_transparent, k_glcdc_shift_high, k_ra8_glcdc_off_gr2_ab1, k_ra8_glcdc_off_gr2_ab2, k_ra8_glcdc_off_gr2_ab4, k_ra8_glcdc_off_gr2_ab5, k_ra8_glcdc_off_gr2_ab7, k_ra8_glcdc_off_gr2_flmrd, k_ra8_glcdc_off_gr2_size, ra8_glcdc_reg32(), ra8_glcdc_panel_timing_t::v_active, and ra8_glcdc_panel_timing_t::v_back.
Referenced by internal_panel_program().
|
static |
Program the OUT stage (output format, brightness, contrast).
Selects RGB888 output (drives all 24 LCD_DATAn pins; the chip auto-expands RGB565 framebuffer pixels internally) and programs identity brightness/contrast. Mirrors FSP r_glcdc_output_block_set + the default brightness/contrast path in r_glcdc_brightness_correction.
< Bright mid.
< Contrast mid.
Definition at line 597 of file ra8_glcdc.c.
References k_glcdc_out_set_rgb888, k_glcdc_pdtha_rgb888, k_glcdc_shift_outset_fmt, k_glcdc_shift_pdtha_fmt, k_ra8_glcdc_off_out_bright1, k_ra8_glcdc_off_out_bright2, k_ra8_glcdc_off_out_contrast, k_ra8_glcdc_off_out_set, k_ra8_glcdc_off_panel_dtha, and ra8_glcdc_reg32().
Referenced by internal_panel_program().
|
static |
Program TCON sync-signal registers for parallel-RGB output.
Sets STVA/STHA pulse widths and routes STVA -> TCON0, STHA -> TCON1, DE -> TCON2 with the polarity inversions that the panel expects. Mirrors FSP r_glcdc_sync_signal_set.
| [in] | t | Panel timing parameters; only h_* and v_* widths and the back-porch values are read. |
Definition at line 426 of file ra8_glcdc.c.
References ra8_glcdc_panel_timing_t::h_active, ra8_glcdc_panel_timing_t::h_back, ra8_glcdc_panel_timing_t::h_sync, k_glcdc_sel_de, k_glcdc_sel_stha, k_glcdc_sel_stva, k_glcdc_shift_high, k_ra8_glcdc_off_out_clkphase, k_ra8_glcdc_off_tcon_de, k_ra8_glcdc_off_tcon_stha1, k_ra8_glcdc_off_tcon_stha2, k_ra8_glcdc_off_tcon_sthb1, k_ra8_glcdc_off_tcon_sthb2, k_ra8_glcdc_off_tcon_stva1, k_ra8_glcdc_off_tcon_stva2, k_ra8_glcdc_off_tcon_stvb1, k_ra8_glcdc_off_tcon_stvb2, k_ra8_glcdc_off_tcon_tim, ra8_glcdc_reg32(), ra8_glcdc_panel_timing_t::v_active, ra8_glcdc_panel_timing_t::v_back, and ra8_glcdc_panel_timing_t::v_sync.
Referenced by internal_panel_program().
|
nodiscard |
Attach a GLCDC event callback.
Definition at line 842 of file ra8_glcdc.c.
References k_ra8_ok, s_glcdc_ctx, and s_glcdc_fn.
|
nodiscard |
Clear GLCDC status flags.
Definition at line 835 of file ra8_glcdc.c.
References k_ra8_glcdc_off_sys_stat, k_ra8_ok, and ra8_glcdc_reg32().
|
nodiscard |
Tear down GLCDC (stop + MSTP release).
Definition at line 818 of file ra8_glcdc.c.
References k_ra8_glcdc_off_bg_en, k_ra8_glcdc_off_gr1_en, k_ra8_glcdc_off_sys_cfg, k_ra8_mstp_glcdc, ra8_glcdc_reg32(), ra8_mstp_disable(), s_glcdc_ctx, and s_glcdc_fn.
Referenced by internal_lcd_deinit().
| void ra8_glcdc_dispatch | ( | void | ) |
Dispatch a GLCDC event – snapshot + fire callback.
See the matching header declaration for the full contract; this site adds no behaviour beyond what the public API documents.
Definition at line 850 of file ra8_glcdc.c.
References k_ra8_glcdc_off_sys_stat, ra8_glcdc_reg32(), s_glcdc_ctx, and s_glcdc_fn.
|
nodiscard |
Put GLCDC into MSTP-gated stop.
Definition at line 862 of file ra8_glcdc.c.
References k_ra8_glcdc_off_sys_cfg, k_ra8_mstp_glcdc, ra8_glcdc_reg32(), and ra8_mstp_disable().
|
nodiscard |
Exit MSTP-gated stop.
Definition at line 868 of file ra8_glcdc.c.
References k_ra8_mstp_glcdc, and ra8_mstp_enable().
|
nodiscard |
Read GLCDC status register (VSYNC/HSYNC/underflow).
Definition at line 828 of file ra8_glcdc.c.
References k_ra8_glcdc_off_sys_stat, k_ra8_ok, RA8_CHECK_NULL_PTR, ra8_glcdc_reg32(), and s_tag.
Referenced by gh_glcdc_programmed().
|
nodiscard |
Initialise GLCDC with the EK-RA8D2 1024x600 timings and the supplied graphics layer 1 framebuffer.
< Panel clk clksel lcdclk.
< Panel clk clken.
< Panel clk dcdr div2.
Definition at line 662 of file ra8_glcdc.c.
References ra8_glcdc_config_t::format, ra8_glcdc_config_t::framebuffer_addr, ra8_glcdc_config_t::height_px, internal_graphics_power_on(), internal_panel_program(), k_ra8_glcdc_off_bg_en, k_ra8_glcdc_off_panel_clk, k_ra8_mstp_glcdc, k_ra8_ok, RA8_CHECK_NULL_PTR, ra8_glcdc_reg32(), ra8_log_info_val, ra8_mstp_enable(), RA8_RETURN_ON_ERROR, s_tag, ra8_glcdc_config_t::timing, and ra8_glcdc_config_t::width_px.
Referenced by internal_lcd_bringup_panel(), internal_lcd_bringup_panel(), and ra8_nsc_glcdc_init().
|
nodiscard |
Programme per-channel output brightness.
Writes g to BRIGHT1.BRTG and packs b/r into BRIGHT2.BRTB/BRTR. The values are 8-bit offsets that are added to the 10-bit channel (the low bits of the 10-bit BRTx field are left as 0 – callers wanting the full range supply pre-scaled numbers in the 0..255 portion).
| [in] | r | Red brightness offset (0..255). |
| [in] | g | Green brightness offset (0..255). |
| [in] | b | Blue brightness offset (0..255). |
| k_ra8_ok | Always. |
Definition at line 791 of file ra8_glcdc.c.
References k_ra8_glcdc_off_out_bright1, k_ra8_glcdc_off_out_bright2, k_ra8_glcdc_word_shift, k_ra8_ok, and ra8_glcdc_reg32().
|
nodiscard |
Programme per-channel output contrast gain.
Writes the three 8-bit gains into CONTRAST.CONTG/CONTB/CONTR. 0x80 == x1.000 gain (FSP convention).
| [in] | r | Red contrast gain (0..255, 0x80 = 1.0). |
| [in] | g | Green contrast gain (0..255, 0x80 = 1.0). |
| [in] | b | Blue contrast gain (0..255, 0x80 = 1.0). |
| k_ra8_ok | Always. |
Definition at line 802 of file ra8_glcdc.c.
References k_ra8_glcdc_b_shift, k_ra8_glcdc_g_shift, k_ra8_glcdc_off_out_contrast, k_ra8_ok, and ra8_glcdc_reg32().
|
nodiscard |
Programme the output dithering mode (PDTHA.SEL).
Selects the dithering algorithm applied when the 24bpp internal pipeline drives a narrower (18bpp / 16bpp) panel.
| [in] | mode | Dither mode. |
| k_ra8_ok | Dither register written. |
| k_ra8_err_invalid_arg | mode was out of range. |
Definition at line 766 of file ra8_glcdc.c.
References k_ra8_dither_2x2, k_ra8_dither_off, k_ra8_dither_truncate, k_ra8_err_invalid_arg, k_ra8_glcdc_off_panel_dtha, k_ra8_glcdc_pdtha_shift, k_ra8_ok, and ra8_glcdc_reg32().
|
nodiscard |
Start or stop the panel output.
< Bit en.
< Bit ven.
< Bit swrst.
Definition at line 709 of file ra8_glcdc.c.
References k_ra8_glcdc_off_bg_en, k_ra8_glcdc_off_gr1_en, k_ra8_glcdc_off_gr2_en, k_ra8_glcdc_off_out_vlatch, k_ra8_glcdc_off_sys_cfg, k_ra8_ok, and ra8_glcdc_reg32().
Referenced by internal_lcd_bringup_panel(), and internal_lcd_bringup_panel().
|
static |
Definition at line 816 of file ra8_glcdc.c.
Referenced by ra8_glcdc_attach_handler(), ra8_glcdc_deinit(), and ra8_glcdc_dispatch().
|
static |
Definition at line 815 of file ra8_glcdc.c.
Referenced by ra8_glcdc_attach_handler(), ra8_glcdc_deinit(), and ra8_glcdc_dispatch().
|
static |
Definition at line 54 of file ra8_glcdc.c.