Expand description
Typed access to the HDMI 2.1 SCDC (Status and Control Data Channel) register map.
Culvert sits on top of hdmi_hal::scdc::ScdcTransport and provides named structs,
bitfield types, and typed operations for scrambling control, FRL training primitives,
and CED (Character Error Detection) reporting.
The central type is Scdc, a thin stateless client that wraps a transport
and exposes one typed method per register group. Sequencing of register operations —
rate selection, timeout handling, retry logic — belongs in the link training crate
above.
The register map itself — addresses and per-register encoding and decoding — is the
I/O-free codec module, which Scdc and culvert-async’s client share.
Modules§
- codec
- Register addresses and per-register encoding and decoding for the SCDC register map (HDMI 2.1), without I/O.
Structs§
- CedCount
- A 15-bit character error count decoded from an ERR_DET register pair.
- CedCounters
- Per-lane character error counts decoded from
ERR_DETregisters (0x50–0x55 for lanes 0–2, 0x57–0x58 for lane 3). - CedReading
- The per-lane character error counts from one read of the CED registers, with what the read found wrong.
- Clearable
Update Flags - The
Update_0flags a source may clear: every flag butRR_Test(bit 2). - Config0
- Content written to
Config_0(0x30). - FfeLevels
- FFE (Feed-Forward Equalization) levels written into
Config_1bits[7:4]: the highest TxFFE level index the source supports for the requested rate. - FrlConfig
- Configuration written to
Config_1(0x31). Build one withnew. - LtpRequests
- Per-lane link training pattern requests from
Status_Flags_1(0x41) andStatus_Flags_2(0x42). - RsCorrection
Count - A 15-bit Reed-Solomon correction count decoded from
RS_Correction_L/H(0x59/0x5A). - Scdc
- Typed client for the HDMI 2.1 SCDC (Status and Control Data Channel) register map.
- Scrambler
Status - Decoded content of
Scrambler_Status(0x21). - Source
Test Config - Decoded content of
Source_Test_Configuration(0x35). - Status
Flags - Decoded content of
Status_Flags_0(0x40). - Tmds
Config - Configuration written to
TMDS_Config(0x20). - Update
Flags - Decoded content of
Update_0(0x10).
Enums§
- CedWarning
- A non-fatal anomaly in a CED read, returned with the decoded counters in
CedReading. - FrlRate
- Maximum Fixed Rate Link (FRL) bandwidth supported by a HDMI 2.1 sink.
- Hdmi
Lanes - The link’s data lanes, re-exported from
display-types: three for TMDS and 3-lane FRL, four for 4-lane FRL (FrlRate::lanes).Scdc::read_cedtakes it to know what the CED checksum covers: 0x50–0x56 withThree, 0x50–0x58 withFour. The number of data lanes an HDMI link carries: three for TMDS (its three data channels) and 3-lane FRL, four for 4-lane FRL, where the TMDS clock channel becomes lane 3. SeeHdmiForumFrl::lanes. - LtpReq
- Link Training Pattern requested by the sink for one lane: a 4-bit field in
Status_Flags_1(0x41, lanes 0–1) orStatus_Flags_2(0x42, lanes 2–3). - Protocol
Error - What culvert refuses because it would violate the SCDC protocol.
- Scdc
Error - Errors returned by
Scdcregister operations.
Traits§
- Scdc
Transport - The transport
Scdc<T>is generic over, re-exported fromhdmi-hal. Raw register access to the SCDC register map over DDC/I²C.