@@ -217,18 +217,18 @@ pub const I2C = enum(u1) {
217217
218218 inline fn disable (i2c : I2C ) void {
219219 i2c .get_regs ().IC_ENABLE .write (.{
220- .ENABLE = .{ . value = . DISABLED } ,
221- .ABORT = .{ . value = . DISABLE } ,
222- .TX_CMD_BLOCK = .{ . value = . NOT_BLOCKED } ,
220+ .ENABLE = .DISABLED ,
221+ .ABORT = .DISABLE ,
222+ .TX_CMD_BLOCK = .NOT_BLOCKED ,
223223 .padding = 0 ,
224224 });
225225 }
226226
227227 inline fn enable (i2c : I2C ) void {
228228 i2c .get_regs ().IC_ENABLE .write (.{
229- .ENABLE = .{ . value = . ENABLED } ,
230- .ABORT = .{ . value = . DISABLE } ,
231- .TX_CMD_BLOCK = .{ . value = . NOT_BLOCKED } ,
229+ .ENABLE = .ENABLED ,
230+ .ABORT = .DISABLE ,
231+ .TX_CMD_BLOCK = .NOT_BLOCKED ,
232232 .padding = 0 ,
233233 });
234234 }
@@ -244,15 +244,15 @@ pub const I2C = enum(u1) {
244244 i2c .disable ();
245245 const regs = i2c .get_regs ();
246246 regs .IC_CON .write (.{
247- .MASTER_MODE = .{ . value = . ENABLED } ,
248- .SPEED = .{ . value = . FAST } ,
249- .IC_RESTART_EN = .{ . value = if (config .repeated_start ) .ENABLED else .DISABLED } ,
250- .IC_SLAVE_DISABLE = .{ . value = . SLAVE_DISABLED } ,
251- .TX_EMPTY_CTRL = .{ . value = . ENABLED } ,
252- .IC_10BITADDR_SLAVE = .{ . raw = 0 } ,
253- .IC_10BITADDR_MASTER = .{ . raw = 0 } ,
254- .STOP_DET_IFADDRESSED = .{ . raw = 0 } ,
255- .RX_FIFO_FULL_HLD_CTRL = .{ . raw = 0 } ,
247+ .MASTER_MODE = .ENABLED ,
248+ .SPEED = .FAST ,
249+ .IC_RESTART_EN = if (config .repeated_start ) .ENABLED else .DISABLED ,
250+ .IC_SLAVE_DISABLE = .SLAVE_DISABLED ,
251+ .TX_EMPTY_CTRL = .ENABLED ,
252+ .IC_10BITADDR_SLAVE = @enumFromInt ( 0 ) ,
253+ .IC_10BITADDR_MASTER = @enumFromInt ( 0 ) ,
254+ .STOP_DET_IFADDRESSED = @enumFromInt ( 0 ) ,
255+ .RX_FIFO_FULL_HLD_CTRL = @enumFromInt ( 0 ) ,
256256 .STOP_DET_IF_MASTER_ACTIVE = 0 ,
257257 .padding = 0 ,
258258 });
@@ -263,8 +263,8 @@ pub const I2C = enum(u1) {
263263
264264 // DREQ signal control
265265 regs .IC_DMA_CR .write (.{
266- .RDMAE = .{ . value = . ENABLED } ,
267- .TDMAE = .{ . value = . ENABLED } ,
266+ .RDMAE = .ENABLED ,
267+ .TDMAE = .ENABLED ,
268268 .padding = 0 ,
269269 });
270270
@@ -308,8 +308,8 @@ pub const I2C = enum(u1) {
308308 i2c .disable ();
309309 i2c .get_regs ().IC_TAR .write (.{
310310 .IC_TAR = @intFromEnum (addr ),
311- .GC_OR_START = .{ . value = . GENERAL_CALL } ,
312- .SPECIAL = .{ . value = . DISABLED } ,
311+ .GC_OR_START = .GENERAL_CALL ,
312+ .SPECIAL = .DISABLED ,
313313 .padding = 0 ,
314314 });
315315 i2c .enable ();
@@ -324,10 +324,10 @@ pub const I2C = enum(u1) {
324324 // IC_CLR_TX_ABRT register always reads as 0.
325325 _ = regs .IC_CLR_TX_ABRT .read ();
326326
327- if (abort_reason .ABRT_7B_ADDR_NOACK . value == .ACTIVE ) {
327+ if (abort_reason .ABRT_7B_ADDR_NOACK == .ACTIVE ) {
328328 // Address byte wasn't acknowledged by any targets on the bus
329329 return TransactionError .DeviceNotPresent ;
330- } else if (abort_reason .ABRT_TXDATA_NOACK . value == .ABRT_TXDATA_NOACK_GENERATED ) {
330+ } else if (abort_reason .ABRT_TXDATA_NOACK == .ABRT_TXDATA_NOACK_GENERATED ) {
331331 // Address byte was acknowledged, but a data byte wasn't
332332 return TransactionError .NoAcknowledge ;
333333 } else if (abort_reason .TX_FLUSH_CNT > 0 ) {
@@ -353,7 +353,7 @@ pub const I2C = enum(u1) {
353353 // condition here? If so, additional code would be needed here
354354 // to take care of the abort.
355355 // As far as I can tell from the datasheet, no, this is not possible.
356- while (regs .IC_RAW_INTR_STAT .read ().STOP_DET . value == .INACTIVE ) {
356+ while (regs .IC_RAW_INTR_STAT .read ().STOP_DET == .INACTIVE ) {
357357 hw .tight_loop_contents ();
358358 if (deadline .is_reached ())
359359 break ;
@@ -400,12 +400,12 @@ pub const I2C = enum(u1) {
400400 var iter = write_vec .iterator ();
401401 while (iter .next_element ()) | element | {
402402 regs .IC_DATA_CMD .write (.{
403- .RESTART = .{ . raw = 0 } ,
404- .STOP = .{ . raw = @ intFromBool (element .last ) } ,
405- .CMD = .{ . value = . WRITE } ,
403+ .RESTART = @enumFromInt ( 0 ) ,
404+ .STOP = @enumFromInt ( @ intFromBool (element .last )) ,
405+ .CMD = .WRITE ,
406406 .DAT = element .value ,
407407
408- .FIRST_DATA_BYTE = .{ . value = . INACTIVE } ,
408+ .FIRST_DATA_BYTE = .INACTIVE ,
409409 .padding = 0 ,
410410 });
411411 // If an abort occurrs, the TX/RX FIFO is flushed, and subsequent writes to IC_DATA_CMD
@@ -427,7 +427,7 @@ pub const I2C = enum(u1) {
427427
428428 // Waits until everything in the TX FIFO is either successfully transmitted, or flushed
429429 // due to an abort. This functions because of TX_EMPTY_CTRL being enabled in apply().
430- while (regs .IC_RAW_INTR_STAT .read ().TX_EMPTY . value == .INACTIVE ) {
430+ while (regs .IC_RAW_INTR_STAT .read ().TX_EMPTY == .INACTIVE ) {
431431 if (deadline .is_reached ()) {
432432 timed_out = true ;
433433 break ;
@@ -479,12 +479,12 @@ pub const I2C = enum(u1) {
479479 var iter = read_vec .iterator ();
480480 while (iter .next_element_ptr ()) | element | {
481481 regs .IC_DATA_CMD .write (.{
482- .RESTART = .{ . raw = 0 } ,
483- .STOP = .{ . raw = @ intFromBool (element .last ) } ,
484- .CMD = .{ . value = . READ } ,
482+ .RESTART = @enumFromInt ( 0 ) ,
483+ .STOP = @enumFromInt ( @ intFromBool (element .last )) ,
484+ .CMD = .READ ,
485485 .DAT = 0 ,
486486
487- .FIRST_DATA_BYTE = .{ . value = . INACTIVE } ,
487+ .FIRST_DATA_BYTE = .INACTIVE ,
488488 .padding = 0 ,
489489 });
490490
@@ -551,12 +551,12 @@ pub const I2C = enum(u1) {
551551 var write_iter = write_vec .iterator ();
552552 send_loop : while (write_iter .next_element ()) | element | {
553553 regs .IC_DATA_CMD .write (.{
554- .RESTART = .{ . raw = 0 } ,
555- .STOP = .{ . raw = 0 } ,
556- .CMD = .{ . value = . WRITE } ,
554+ .RESTART = @enumFromInt ( 0 ) ,
555+ .STOP = @enumFromInt ( 0 ) ,
556+ .CMD = .WRITE ,
557557 .DAT = element .value ,
558558
559- .FIRST_DATA_BYTE = .{ . value = . INACTIVE } ,
559+ .FIRST_DATA_BYTE = .INACTIVE ,
560560 .padding = 0 ,
561561 });
562562 // If an abort occurrs, the TX/RX FIFO is flushed, and subsequent writes to IC_DATA_CMD
@@ -583,12 +583,12 @@ pub const I2C = enum(u1) {
583583 var read_iter = read_vec .iterator ();
584584 recv_loop : while (read_iter .next_element_ptr ()) | element | {
585585 regs .IC_DATA_CMD .write (.{
586- .RESTART = .{ . raw = @ intFromBool (element .first ) } ,
587- .STOP = .{ . raw = @ intFromBool (element .last ) } ,
588- .CMD = .{ . value = . READ } ,
586+ .RESTART = @enumFromInt ( @ intFromBool (element .first )) ,
587+ .STOP = @enumFromInt ( @ intFromBool (element .last )) ,
588+ .CMD = .READ ,
589589 .DAT = 0 ,
590590
591- .FIRST_DATA_BYTE = .{ . value = . INACTIVE } ,
591+ .FIRST_DATA_BYTE = .INACTIVE ,
592592 .padding = 0 ,
593593 });
594594
0 commit comments