ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_mpc.h
Go to the documentation of this file.
1
33
34#pragma once
35
36#ifdef __cplusplus
37extern "C" {
38#endif
39
40#include <stdint.h>
41
42#include "ra8_err.h"
43#include "ra8_port_constants.h"
44
45/* =============================================================================
46 * Types
47 * =============================================================================
48 */
49
100
105typedef enum : uint8_t {
109
114typedef enum : uint8_t {
118
119/* =============================================================================
120 * Operations
121 * =============================================================================
122 */
123
150[[nodiscard]] ra8_err_t
152
172
190
214
235
254[[nodiscard]] ra8_err_t ra8_mpc_set_open_drain(ra8_port_t port, ra8_pin_t pin, bool enable);
255
275[[nodiscard]] ra8_err_t ra8_mpc_read_pfs(ra8_port_t port, ra8_pin_t pin, uint32_t* out_val);
276
277#ifdef __cplusplus
278}
279#endif
ra8_board_eth_pin_t pin
Pin.
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546
ra8_mpc_pull_t
Pull-up enable for ra8_mpc_set_pull.
Definition ra8_mpc.h:114
@ k_ra8_mpc_pull_off
RA8 mpc pull off.
Definition ra8_mpc.h:115
@ k_ra8_mpc_pull_up
RA8 mpc pull up.
Definition ra8_mpc.h:116
ra8_mpc_psel_t
Peripheral function select values for the PMR/PSEL path.
Definition ra8_mpc.h:66
@ k_ra8_mpc_psel_mipi
11111: MIPI DSI.
Definition ra8_mpc.h:98
@ k_ra8_mpc_psel_ceu
01111: camera engine unit (CEU).
Definition ra8_mpc.h:81
@ k_ra8_mpc_psel_usbhs
10100: USB High-Speed / GPT2.
Definition ra8_mpc.h:86
@ k_ra8_mpc_psel_spi
00110: SPI.
Definition ra8_mpc.h:73
@ k_ra8_mpc_psel_acmphs
01100: ACMPHS / CTSU.
Definition ra8_mpc.h:79
@ k_ra8_mpc_psel_gpt1
00011: GPT1 alt mux.
Definition ra8_mpc.h:70
@ k_ra8_mpc_psel_sci1
00101: SCI 1/3/5/7/9.
Definition ra8_mpc.h:72
@ k_ra8_mpc_psel_cac_adc
01010: CAC / ADC trigger.
Definition ra8_mpc.h:77
@ k_ra8_mpc_psel_sdhi
10101: SDHI / MMC / GPT3.
Definition ra8_mpc.h:87
@ k_ra8_mpc_psel_lcdc
01101: segment LCDC / SCI DEn.
Definition ra8_mpc.h:80
@ k_ra8_mpc_psel_clkout_rtc
01001: CLKOUT / comparator / RTC.
Definition ra8_mpc.h:76
@ k_ra8_mpc_psel_ether_rgmii
11000: Ethernet RGMII (preferred name).
Definition ra8_mpc.h:91
@ k_ra8_mpc_psel_ether_mii
10110: Ethernet MII / GPT4 / UARTA.
Definition ra8_mpc.h:88
@ k_ra8_mpc_psel_ospi
11100: Octa-SPI controller.
Definition ra8_mpc.h:95
@ k_ra8_mpc_psel_pdc
11000: PDC / AGT1 / Ether RGMII (alias).
Definition ra8_mpc.h:90
@ k_ra8_mpc_psel_sci0
00100: SCI 0/2/4/6/8.
Definition ra8_mpc.h:71
@ k_ra8_mpc_psel_agt
00001: AGT/AGTW timer I/O.
Definition ra8_mpc.h:68
@ k_ra8_mpc_psel_canfd
10000: CAN / CANFD.
Definition ra8_mpc.h:82
@ k_ra8_mpc_psel_glcdc
11001: graphics LCDC / CAC.
Definition ra8_mpc.h:92
@ k_ra8_mpc_psel_bus
01011: external bus interface.
Definition ra8_mpc.h:78
@ k_ra8_mpc_psel_gpt0
00010: GPT0 (low channels).
Definition ra8_mpc.h:69
@ k_ra8_mpc_psel_usbfs
10011: USB Full-Speed.
Definition ra8_mpc.h:85
@ k_ra8_mpc_psel_pdm
11011: PDM / GPT5.
Definition ra8_mpc.h:94
@ k_ra8_mpc_psel_ether_rmii
10111: Ethernet RMII.
Definition ra8_mpc.h:89
@ k_ra8_mpc_psel_key
01000: KEY input.
Definition ra8_mpc.h:75
@ k_ra8_mpc_psel_ssi
10010: SSI audio.
Definition ra8_mpc.h:84
@ k_ra8_mpc_psel_cec
11101: CEC / PGAOUT0.
Definition ra8_mpc.h:96
@ k_ra8_mpc_psel_trace
11010: ETM debug trace.
Definition ra8_mpc.h:93
@ k_ra8_mpc_psel_iic
00111: IIC.
Definition ra8_mpc.h:74
@ k_ra8_mpc_psel_ulpt
11110: ULPT / PGAOUT1.
Definition ra8_mpc.h:97
@ k_ra8_mpc_psel_gpio
00000: plain GPIO / DEBUG.
Definition ra8_mpc.h:67
@ k_ra8_mpc_psel_qspi
10001: QSPI controller.
Definition ra8_mpc.h:83
ra8_err_t ra8_mpc_set_open_drain(ra8_port_t port, ra8_pin_t pin, bool enable)
Enable or disable N-channel open-drain on a pin.
Definition ra8_mpc.c:198
ra8_err_t ra8_mpc_set_gpio(ra8_port_t port, ra8_pin_t pin, ra8_mpc_dir_t dir)
Reset a pin to plain GPIO with a chosen direction.
Definition ra8_mpc.c:156
ra8_mpc_dir_t
Pin direction for ra8_mpc_set_gpio.
Definition ra8_mpc.h:105
@ k_ra8_mpc_dir_input
Input direction (PDR = 0).
Definition ra8_mpc.h:106
@ k_ra8_mpc_dir_output
Output direction (PDR = 1).
Definition ra8_mpc.h:107
ra8_err_t ra8_mpc_set_irq(ra8_port_t port, ra8_pin_t pin)
Mark a pin as an external IRQ input (ISEL = 1).
Definition ra8_mpc.c:177
ra8_err_t ra8_mpc_route_peripheral(ra8_port_t port, ra8_pin_t pin, ra8_mpc_psel_t psel)
Route a pin to a peripheral function.
Definition ra8_mpc.c:122
ra8_err_t ra8_mpc_read_pfs(ra8_port_t port, ra8_pin_t pin, uint32_t *out_val)
Read the raw 32-bit PmnPFS register for diagnostic use.
Definition ra8_mpc.c:212
ra8_err_t ra8_mpc_set_pull(ra8_port_t port, ra8_pin_t pin, ra8_mpc_pull_t pull)
Enable or disable the internal pull-up on a pin.
Definition ra8_mpc.c:187
ra8_err_t ra8_mpc_set_analog(ra8_port_t port, ra8_pin_t pin)
Put a pin in analog-input mode (ASEL = 1).
Definition ra8_mpc.c:167
Typed Port / Pin Constants for the RA8D2 IOPORT Module.
ra8_port_t
Port indices for the RA8D2 IOPORT module.
ra8_pin_t
Pin indices within an IOPORT port (0..15).