|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
Cross-TU surface for the ra8_ceu driver split. More...
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. | |
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.
| 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.
| [in] | cfg | Validated config; must not be nullptr. |
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().
| 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.
| [in] | cfg | Validated config; must not be nullptr. |
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().
| 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.
| [in] | cfg | Caller-supplied config; must not be nullptr. |
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().