ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_ceu_internal.h File Reference

Cross-TU surface for the ra8_ceu driver split. More...

#include "ra8_attributes.h"
#include "ra8_ceu.h"
Include dependency graph for ra8_ceu_internal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void priv_ra8_ceu_program_format (const ra8_ceu_config_t *cfg)
 Program filter / format / camera-interface registers.
void priv_ra8_ceu_program_geometry (const ra8_ceu_config_t *cfg)
 Program the CMCYR/CAMOR/CAPWR geometry registers.
void priv_ra8_ceu_program_destination (const ra8_ceu_config_t *cfg)
 Program destination / firewall / output / event registers.

Detailed Description

Cross-TU surface for the ra8_ceu driver split.

Not part of the public API. Declares the init-time register programming helpers that were promoted from TU-private statics so the configuration packing/programming code can live in a separate translation unit (ra8_ceu_init_regs.c) from the runtime-control entry points (ra8_ceu.c). The two TUs share only the three ra8_ceu_program_* helpers declared below; everything else stays file-local. See CLAUDE.md "Test access to internal symbols (MC/DC scope)".

Definition in file ra8_ceu_internal.h.

Function Documentation

◆ priv_ra8_ceu_program_destination()

void priv_ra8_ceu_program_destination ( const ra8_ceu_config_t * cfg)

Program destination / firewall / output / event registers.

HUM Ch 60.2.11-60.2.22 pp 3651-3664. Post-geometry phase of ra8_ceu_init. Promoted from a TU-private static so ra8_ceu_init (in ra8_ceu.c) can call it while the implementation lives in ra8_ceu_init_regs.c.

Parameters
[in]cfgValidated config; must not be nullptr.
Precondition
Module clock ungated, geometry registers programmed.
Caller has validated cfg is non-nullptr.
Postcondition
Listed registers reflect cfg.
No other module state is modified.
Note
Internal helper, not thread-safe.
Since
0.1.0

Definition at line 264 of file ra8_ceu_init_regs.c.

References ra8_ceu_config_t::dst_stride, internal_pack_cdocr(), internal_pack_cfszr(), k_ra8_ceu_off_cdocr, k_ra8_ceu_off_cdwdr, k_ra8_ceu_off_cetcr, k_ra8_ceu_off_cfszr, k_ra8_ceu_off_cfwcr, k_ra8_ceu_off_clfcr, ra8_ceu_config_t::low_pass_filter, and ra8_ceu_reg32().

Referenced by ra8_ceu_init().

◆ priv_ra8_ceu_program_format()

void priv_ra8_ceu_program_format ( const ra8_ceu_config_t * cfg)

Program filter / format / camera-interface registers.

HUM Ch 60.2.10 (CFLCR), 60.2.7 (CAIFR), 60.2.2 (CAPCR), 60.2.3 (CAMCR). Pre-geometry phase of ra8_ceu_init. Promoted from a TU-private static so ra8_ceu_init (in ra8_ceu.c) can call it while the implementation lives in ra8_ceu_init_regs.c.

Parameters
[in]cfgValidated config; must not be nullptr.
Precondition
Module clock ungated, engine idle.
Caller has validated cfg is non-nullptr.
Postcondition
Listed registers reflect cfg.
No other module state is modified.
Note
Internal helper, not thread-safe.
Since
0.1.0

Definition at line 256 of file ra8_ceu_init_regs.c.

References internal_pack_caifr(), internal_pack_camcr(), internal_pack_capcr(), internal_pack_cflcr(), k_ra8_ceu_off_caifr, k_ra8_ceu_off_camcr, k_ra8_ceu_off_capcr, k_ra8_ceu_off_cflcr, and ra8_ceu_reg32().

Referenced by ra8_ceu_init().

◆ priv_ra8_ceu_program_geometry()

void priv_ra8_ceu_program_geometry ( const ra8_ceu_config_t * cfg)

Program the CMCYR/CAMOR/CAPWR geometry registers.

HUM Ch 60.2.4 (CMCYR p 3641), 60.2.5 (CAMOR p 3645) and 60.2.6 (CAPWR p 3646). Falls back to width_px / height_px when the caller leaves x_capture_px / y_capture_lines at zero. Promoted from a TU-private static so ra8_ceu_init (in ra8_ceu.c) can call it while the implementation lives in ra8_ceu_init_regs.c.

Parameters
[in]cfgCaller-supplied config; must not be nullptr.
Precondition
Module clock ungated, engine idle.
Caller has validated cfg is non-nullptr.
Postcondition
Geometry registers reflect cfg.
No other module state is modified.
Note
Internal helper, not thread-safe.
Since
0.1.0

Definition at line 221 of file ra8_ceu_init_regs.c.

References ra8_ceu_config_t::capture_format, ra8_ceu_config_t::height_px, k_ra8_ceu_camor_shift_vofst, k_ra8_ceu_capwr_shift_vwdth, k_ra8_ceu_cmcyr_shift_vcyl, k_ra8_ceu_fmt_data_enable, k_ra8_ceu_off_camor, k_ra8_ceu_off_capwr, k_ra8_ceu_off_cmcyr, ra8_ceu_reg32(), ra8_ceu_config_t::width_px, ra8_ceu_config_t::x_capture_px, ra8_ceu_config_t::x_start_px, ra8_ceu_config_t::y_capture_lines, and ra8_ceu_config_t::y_start_px.

Referenced by ra8_ceu_init().