@@ -401,7 +401,7 @@ pub const ICM_20948 = struct {
401401 log .debug ("Device health check passed" , .{});
402402 }
403403
404- pub inline fn read_register (self : * Self , reg : Self.Register , buf : []u8 ) Error ! void {
404+ pub inline fn read_reg (self : * Self , reg : Self.Register , buf : []u8 ) Error ! void {
405405 if (buf .len == 0 ) return Error .InvalidParameter ;
406406
407407 try self .set_bank (reg .bank ());
@@ -416,7 +416,7 @@ pub const ICM_20948 = struct {
416416
417417 pub inline fn read_byte (self : * Self , reg : Self.Register ) Error ! u8 {
418418 var buf : [1 ]u8 = undefined ;
419- try self .read_register (reg , & buf );
419+ try self .read_reg (reg , & buf );
420420 return buf [0 ];
421421 }
422422
@@ -432,15 +432,15 @@ pub const ICM_20948 = struct {
432432 }
433433
434434 /// Read the register and modify the matching fields as provided
435- pub inline fn modify_register (self : * Self , reg : Self.Register , reg_t : type , fields : anytype ) Error ! void {
435+ pub inline fn modify_reg (self : * Self , reg : Self.Register , T : type , fields : anytype ) Error ! void {
436436 // Read the current value
437437 const current_val = self .read_byte (reg ) catch | err | {
438438 log .err ("Failed to read register 0x{X:02} for modification: {}" , .{ reg .value (), err });
439439 return err ;
440440 };
441441
442442 // Cast to the correct type and modify the named fields
443- var val : reg_t = @bitCast (current_val );
443+ var val : T = @bitCast (current_val );
444444 inline for (@typeInfo (@TypeOf (fields )).@"struct" .fields ) | field | {
445445 @field (val , field .name ) = @field (fields , field .name );
446446 }
@@ -476,7 +476,7 @@ pub const ICM_20948 = struct {
476476 // Reset the slave address as well
477477 self .slave_address = 0 ;
478478
479- self .modify_register (.{ .bank0 = .pwr_mgmt_1 }, pwr_mgmt_1 , .{ .DEVICE_RESET = true }) catch
479+ self .modify_reg (.{ .bank0 = .pwr_mgmt_1 }, pwr_mgmt_1 , .{ .DEVICE_RESET = true }) catch
480480 return Error .ResetFailed ;
481481
482482 // Sleep longer after reset to ensure device is ready
@@ -487,15 +487,15 @@ pub const ICM_20948 = struct {
487487 }
488488
489489 pub fn sleep (self : * Self , on : bool ) Error ! void {
490- try self .modify_register (.{ .bank0 = .pwr_mgmt_1 }, pwr_mgmt_1 , .{ .SLEEP = on });
490+ try self .modify_reg (.{ .bank0 = .pwr_mgmt_1 }, pwr_mgmt_1 , .{ .SLEEP = on });
491491 }
492492
493493 pub fn low_power (self : * Self , on : bool ) Error ! void {
494- try self .modify_register (.{ .bank0 = .pwr_mgmt_1 }, pwr_mgmt_1 , .{ .LP_EN = on });
494+ try self .modify_reg (.{ .bank0 = .pwr_mgmt_1 }, pwr_mgmt_1 , .{ .LP_EN = on });
495495 }
496496
497497 pub fn set_clocks (self : * Self ) Error ! void {
498- try self .modify_register (.{ .bank0 = .pwr_mgmt_1 }, pwr_mgmt_1 , .{
498+ try self .modify_reg (.{ .bank0 = .pwr_mgmt_1 }, pwr_mgmt_1 , .{
499499 // 1 = Auto select
500500 .CLKSEL = 1 ,
501501 .SLEEP = false ,
@@ -506,7 +506,7 @@ pub const ICM_20948 = struct {
506506 pub fn set_sample_mode (self : * Self ) Error ! void {
507507 // TODO: Support setting these individually. Could set based on if ODR fields are set (make
508508 // optional?)
509- try self .modify_register (.{ .bank0 = .lp_config }, lp_config , .{
509+ try self .modify_reg (.{ .bank0 = .lp_config }, lp_config , .{
510510 // Use I2C_MST_ODR_CONFIG, unless gyro or accel set their own data rate
511511 .I2C_MST_CYCLE = 1 ,
512512 // NOTE: We seem to need this set to 0?
@@ -540,7 +540,7 @@ pub const ICM_20948 = struct {
540540 }
541541
542542 pub fn disable_accelerometer (self : * Self ) Error ! void {
543- try self .modify_register (.{ .bank0 = .pwr_mgmt_2 }, pwr_mgmt_2 , .{
543+ try self .modify_reg (.{ .bank0 = .pwr_mgmt_2 }, pwr_mgmt_2 , .{
544544 .DISABLE_ACCEL = .disable ,
545545 });
546546 }
@@ -554,7 +554,7 @@ pub const ICM_20948 = struct {
554554 pub fn get_accel_data_unscaled (self : * Self ) Error ! Accel_data_unscaled {
555555 var raw_data : Accel_data_unscaled = .{};
556556
557- self .read_register (.{ .bank0 = .accel_xout_h }, std .mem .asBytes (& raw_data )) catch | err | {
557+ self .read_reg (.{ .bank0 = .accel_xout_h }, std .mem .asBytes (& raw_data )) catch | err | {
558558 log .err ("Failed to read accelerometer data: {}" , .{err });
559559 return err ;
560560 };
@@ -604,7 +604,7 @@ pub const ICM_20948 = struct {
604604 }
605605
606606 pub fn disable_gyroscope (self : * Self ) Error ! void {
607- try self .modify_register (.{ .bank0 = .pwr_mgmt_2 }, pwr_mgmt_2 , .{
607+ try self .modify_reg (.{ .bank0 = .pwr_mgmt_2 }, pwr_mgmt_2 , .{
608608 .DISABLE_GYRO = .disable ,
609609 });
610610 }
@@ -618,7 +618,7 @@ pub const ICM_20948 = struct {
618618 pub fn get_gyro_data_unscaled (self : * Self ) Error ! Gyro_data_unscaled {
619619 var raw_data : Gyro_data_unscaled = .{};
620620
621- self .read_register (.{ .bank0 = .gyro_xout_h }, std .mem .asBytes (& raw_data )) catch | err | {
621+ self .read_reg (.{ .bank0 = .gyro_xout_h }, std .mem .asBytes (& raw_data )) catch | err | {
622622 log .err ("Failed to read gyroscope data: {}" , .{err });
623623 return err ;
624624 };
@@ -664,7 +664,7 @@ pub const ICM_20948 = struct {
664664 temp : i16 = 0 ,
665665 }{};
666666
667- self .read_register (.{ .bank0 = .accel_xout_h }, std .mem .asBytes (& raw_data )) catch | err | {
667+ self .read_reg (.{ .bank0 = .accel_xout_h }, std .mem .asBytes (& raw_data )) catch | err | {
668668 log .err ("Failed to read combined accel/gyro data: {}" , .{err });
669669 return err ;
670670 };
@@ -698,7 +698,7 @@ pub const ICM_20948 = struct {
698698 mag : Mag_data_unscaled = .{},
699699 }{};
700700
701- self .read_register (.{ .bank0 = .accel_xout_h }, std .mem .asBytes (& raw_data )) catch | err | {
701+ self .read_reg (.{ .bank0 = .accel_xout_h }, std .mem .asBytes (& raw_data )) catch | err | {
702702 log .err ("Failed to read combined accel/gyro/mag data: {}" , .{err });
703703 return err ;
704704 };
@@ -729,7 +729,7 @@ pub const ICM_20948 = struct {
729729 pub fn get_temp (self : * Self ) Error ! f32 {
730730 var raw_data : i16 = undefined ;
731731
732- self .read_register (.{ .bank0 = .temp_out_h }, std .mem .asBytes (& raw_data )) catch | err | {
732+ self .read_reg (.{ .bank0 = .temp_out_h }, std .mem .asBytes (& raw_data )) catch | err | {
733733 log .err ("Failed to read temperature data: {}" , .{err });
734734 return err ;
735735 };
@@ -748,7 +748,7 @@ pub const ICM_20948 = struct {
748748 try self .write_byte (.{ .bank3 = .i2c_mst_odr_config }, config .mag_i2c_mst_odr_config );
749749
750750 // Enable I2C master on this device
751- try self .modify_register (.{ .bank0 = .user_ctrl }, user_ctrl , .{ .I2C_MST_EN = 1 });
751+ try self .modify_reg (.{ .bank0 = .user_ctrl }, user_ctrl , .{ .I2C_MST_EN = 1 });
752752 // We need to sleep here
753753 self .clock .sleep_ms (10 );
754754
@@ -806,7 +806,7 @@ pub const ICM_20948 = struct {
806806 // Give the device time to hit the magnetometer
807807 self .clock .sleep_us (MAG_READ_DELAY_US );
808808 // Read the data the master read in
809- return try self .read_register (.{ .bank0 = .ext_slv_sens_data_00 }, buf );
809+ return try self .read_reg (.{ .bank0 = .ext_slv_sens_data_00 }, buf );
810810 }
811811
812812 pub inline fn mag_read_byte (self : * Self , reg : MagRegister ) Error ! u8 {
@@ -834,7 +834,7 @@ pub const ICM_20948 = struct {
834834 self .clock .sleep_us (MAG_RESET_DELAY_US );
835835
836836 // Reset I2C master on device
837- try self .modify_register (.{ .bank0 = .user_ctrl }, user_ctrl , .{ .I2C_MST_RST = 1 });
837+ try self .modify_reg (.{ .bank0 = .user_ctrl }, user_ctrl , .{ .I2C_MST_RST = 1 });
838838 }
839839
840840 const Mag_data_unscaled = packed struct {
@@ -864,7 +864,7 @@ pub const ICM_20948 = struct {
864864 try self .mag_set_sensor_read ();
865865 var raw_data : Mag_data_unscaled = .{};
866866
867- self .read_register (.{ .bank0 = .ext_slv_sens_data_00 }, std .mem .asBytes (& raw_data )) catch | err | {
867+ self .read_reg (.{ .bank0 = .ext_slv_sens_data_00 }, std .mem .asBytes (& raw_data )) catch | err | {
868868 log .err ("Failed to read magnetometer data: {}" , .{err });
869869 return err ;
870870 };
0 commit comments