Change all instances of master/slave to initiator/target

This makes perfect sense, because the 'initiator' starts the transaction and
the 'target' is the addressee of the transaction. Even the I²C spec defines the
'master' as 'initiating' the transaction.

This is the same nomenclature now used by the Glasgow project too.
This commit is contained in:
Richard Hughes 2020-07-01 15:21:24 +01:00
parent 7ebcd06ae4
commit d09cf101c3
13 changed files with 53 additions and 53 deletions

View File

@ -25,7 +25,7 @@
#define CY_I2C_ENABLE_PRECISE_TIMING 1
#define CY_I2C_EVENT_NOTIFICATION_LEN 3
#define PD_I2C_SLAVE_ADDRESS 0x08
#define PD_I2C_TARGET_ADDRESS 0x08
/* timeout (ms) for USB I2C communication */
#define FU_CCGX_HPI_WAIT_TIMEOUT 5000
@ -60,11 +60,11 @@ typedef enum {
* length = 16, data_out = 16 byte configuration information */
CY_I2C_WRITE_CMD, /* perform I2C write operation
* value = bit0 - start, bit1 - stop, bit3 - start on idle,
* bits[14:8] - slave address, bit15 - scbIndex. length = 0 the
* bits[14:8] - target address, bit15 - scbIndex. length = 0 the
* data is provided over the bulk endpoints */
CY_I2C_READ_CMD, /* rerform I2C read operation.
* value = bit0 - start, bit1 - stop, bit2 - Nak last byte,
* bit3 - start on idle, bits[14:8] - slave address, bit15 - scbIndex,
* bit3 - start on idle, bits[14:8] - target address, bit15 - scbIndex,
* length = 0. The data is provided over the bulk endpoints */
CY_I2C_GET_STATUS_CMD, /* retrieve the I2C bus status.
* value = bit0 - 0: TX 1: RX, bit15 - scbIndex, length = 3,
@ -107,10 +107,10 @@ typedef enum {
typedef struct __attribute__((packed)) {
guint32 frequency; /* frequency of operation. Only valid values are 100KHz and 400KHz */
guint8 slave_address; /* slave address to be used when in slave mode */
guint8 target_address; /* target address to be used when in target mode */
guint8 is_msb_first; /* whether to transmit most significant bit first */
guint8 is_master; /* whether to block is to be configured as a master*/
guint8 s_ignore; /* ignore general call in slave mode */
guint8 is_initiator; /* whether to block is to be configured as a initiator */
guint8 s_ignore; /* ignore general call in target mode */
guint8 is_clock_stretch; /* whether to stretch clock in case of no FIFO availability */
guint8 is_loop_back; /* whether to loop back TX data to RX. Valid only for debug purposes */
guint8 reserved[6];

View File

@ -26,7 +26,7 @@ struct _FuCcgxHpiDevice
guint8 num_ports; /* max number of ports */
FWMode fw_mode;
FWImageType fw_image_type;
guint8 slave_address;
guint8 target_address;
guint8 ep_bulk_in;
guint8 ep_bulk_out;
guint8 ep_intr_in;
@ -273,19 +273,19 @@ fu_ccgx_hpi_device_i2c_read (FuCcgxHpiDevice *self,
CyI2CDataConfigBits cfg_bits,
GError **error)
{
guint8 slave_address = 0;
guint8 target_address = 0;
if (!fu_ccgx_hpi_device_check_i2c_status (self, CY_I2C_MODE_READ, error)) {
g_prefix_error (error, "i2c read error: ");
return FALSE;
}
slave_address = (self->slave_address & 0x7F) | (self->scb_index << 7);
target_address = (self->target_address & 0x7F) | (self->scb_index << 7);
if (!g_usb_device_control_transfer (fu_usb_device_get_dev (FU_USB_DEVICE (self)),
G_USB_DEVICE_DIRECTION_HOST_TO_DEVICE,
G_USB_DEVICE_REQUEST_TYPE_VENDOR,
G_USB_DEVICE_RECIPIENT_DEVICE,
CY_I2C_READ_CMD,
(((guint16) slave_address) << 8) | cfg_bits,
(((guint16) target_address) << 8) | cfg_bits,
bufsz, NULL, 0x0, NULL,
FU_CCGX_HPI_WAIT_TIMEOUT, NULL,
error)) {
@ -316,20 +316,20 @@ fu_ccgx_hpi_device_i2c_write (FuCcgxHpiDevice *self,
CyI2CDataConfigBits cfg_bits,
GError **error)
{
guint8 slave_address;
guint8 target_address;
g_autoptr(GError) error_local = NULL;
if (!fu_ccgx_hpi_device_check_i2c_status (self, CY_I2C_MODE_WRITE, error)) {
g_prefix_error (error, "i2c get status error: ");
return FALSE;
}
slave_address = (self->slave_address & 0x7F) | (self->scb_index << 7);
target_address = (self->target_address & 0x7F) | (self->scb_index << 7);
if (!g_usb_device_control_transfer (fu_usb_device_get_dev (FU_USB_DEVICE (self)),
G_USB_DEVICE_DIRECTION_HOST_TO_DEVICE,
G_USB_DEVICE_REQUEST_TYPE_VENDOR,
G_USB_DEVICE_RECIPIENT_DEVICE,
CY_I2C_WRITE_CMD,
((guint16) slave_address << 8) | (cfg_bits & CY_I2C_DATA_CONFIG_STOP),
((guint16) target_address << 8) | (cfg_bits & CY_I2C_DATA_CONFIG_STOP),
bufsz, /* idx */
NULL, 0x0, NULL,
FU_CCGX_HPI_WAIT_TIMEOUT,
@ -360,20 +360,20 @@ fu_ccgx_hpi_device_i2c_write_no_resp (FuCcgxHpiDevice *self,
CyI2CDataConfigBits cfg_bits,
GError **error)
{
guint8 slave_address = 0;
guint8 target_address = 0;
g_autoptr(GError) error_local = NULL;
if (!fu_ccgx_hpi_device_check_i2c_status (self, CY_I2C_MODE_WRITE, error)) {
g_prefix_error (error, "i2c write error: ");
return FALSE;
}
slave_address = (self->slave_address & 0x7F) | (self->scb_index << 7);
target_address = (self->target_address & 0x7F) | (self->scb_index << 7);
if (!g_usb_device_control_transfer (fu_usb_device_get_dev (FU_USB_DEVICE (self)),
G_USB_DEVICE_DIRECTION_HOST_TO_DEVICE,
G_USB_DEVICE_REQUEST_TYPE_VENDOR,
G_USB_DEVICE_RECIPIENT_DEVICE,
CY_I2C_WRITE_CMD,
((guint16) slave_address << 8) | (cfg_bits & CY_I2C_DATA_CONFIG_STOP),
((guint16) target_address << 8) | (cfg_bits & CY_I2C_DATA_CONFIG_STOP),
bufsz, NULL, 0x0, NULL,
FU_CCGX_HPI_WAIT_TIMEOUT,
NULL, error)) {
@ -1376,7 +1376,7 @@ fu_ccgx_hpi_device_setup (FuDevice *device, GError **error)
return FALSE;
}
i2c_config.frequency = FU_CCGX_HPI_FREQ;
i2c_config.is_master = TRUE;
i2c_config.is_initiator = TRUE;
i2c_config.is_msb_first = TRUE;
if (!fu_ccgx_hpi_device_set_i2c_config (self, &i2c_config, error)) {
g_prefix_error (error, "set config error: ");
@ -1574,7 +1574,7 @@ fu_ccgx_hpi_device_init (FuCcgxHpiDevice *self)
self->inf_num = 0x0;
self->hpi_addrsz = 1;
self->num_ports = 1;
self->slave_address = PD_I2C_SLAVE_ADDRESS;
self->target_address = PD_I2C_TARGET_ADDRESS;
self->ep_bulk_out = PD_I2C_USB_EP_BULK_OUT;
self->ep_bulk_in = PD_I2C_USB_EP_BULK_IN;
self->ep_intr_in = PD_I2C_USB_EP_INTR_IN;

View File

@ -77,10 +77,10 @@ ch_strerror (ChError error_enum)
return "Self test failed: ADC Vss";
if (error_enum == CH_ERROR_SELF_TEST_ADC_VREF)
return "Self test failed: ADC Vref";
if (error_enum == CH_ERROR_I2C_SLAVE_ADDRESS)
return "I2C set slave address failed";
if (error_enum == CH_ERROR_I2C_SLAVE_CONFIG)
return "I2C set slave config failed";
if (error_enum == CH_ERROR_I2C_TARGET_ADDRESS)
return "I2C set target address failed";
if (error_enum == CH_ERROR_I2C_TARGET_CONFIG)
return "I2C set target config failed";
if (error_enum == CH_ERROR_SELF_TEST_EEPROM)
return "Self test failed: EEPROM";
return NULL;

View File

@ -42,8 +42,8 @@ typedef enum {
CH_ERROR_SELF_TEST_ADC_VDD,
CH_ERROR_SELF_TEST_ADC_VSS,
CH_ERROR_SELF_TEST_ADC_VREF,
CH_ERROR_I2C_SLAVE_ADDRESS,
CH_ERROR_I2C_SLAVE_CONFIG,
CH_ERROR_I2C_TARGET_ADDRESS,
CH_ERROR_I2C_TARGET_CONFIG,
CH_ERROR_SELF_TEST_EEPROM,
CH_ERROR_LAST
} ChError;

View File

@ -65,7 +65,7 @@ typedef struct __attribute__ ((packed)) {
typedef struct __attribute__ ((packed)) {
guint8 cmd;
guint8 ext;
guint8 i2cslaveaddr;
guint8 i2ctargetaddr;
guint8 i2cspeed;
union {
guint32 startaddress;
@ -129,7 +129,7 @@ fu_dell_dock_hid_get_hub_version (FuDevice *self,
.cmd_data2 = 0,
.cmd_data3 = 0,
.bufferlen = GUINT16_TO_LE (12),
.parameters = {.i2cslaveaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
.parameters = {.i2ctargetaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
.extended_cmdarea[0 ... 52] = 0,
};
@ -164,7 +164,7 @@ fu_dell_dock_hid_raise_mcu_clock (FuDevice *self,
.cmd_data2 = 0,
.cmd_data3 = 0,
.bufferlen = 0,
.parameters = {.i2cslaveaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
.parameters = {.i2ctargetaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
.extended_cmdarea[0 ... 52] = 0,
};
@ -193,7 +193,7 @@ fu_dell_dock_hid_get_ec_status (FuDevice *self,
.cmd_data2 = 0,
.cmd_data3 = 0,
.bufferlen = GUINT16_TO_LE (27),
.parameters = {.i2cslaveaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
.parameters = {.i2ctargetaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
.extended_cmdarea[0 ... 52] = 0,
};
@ -224,7 +224,7 @@ fu_dell_dock_hid_erase_bank (FuDevice *self, guint8 idx, GError **error)
.cmd_data2 = 0,
.cmd_data3 = 0,
.bufferlen = 0,
.parameters = {.i2cslaveaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
.parameters = {.i2ctargetaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
.extended_cmdarea[0 ... 52] = 0,
};
@ -249,7 +249,7 @@ fu_dell_dock_hid_write_flash (FuDevice *self,
.ext = HUB_EXT_WRITEFLASH,
.dwregaddr = GUINT32_TO_LE (dwAddr),
.bufferlen = GUINT16_TO_LE (write_size),
.parameters = {.i2cslaveaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
.parameters = {.i2ctargetaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
.extended_cmdarea[0 ... 52] = 0,
};
@ -280,7 +280,7 @@ fu_dell_dock_hid_verify_update (FuDevice *self,
.cmd_data2 = 0,
.cmd_data3 = 0,
.bufferlen = GUINT16_TO_LE (1),
.parameters = {.i2cslaveaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
.parameters = {.i2ctargetaddr = 0, .regaddrlen = 0, .i2cspeed = 0},
.extended_cmdarea[0 ... 52] = 0,
};
@ -310,7 +310,7 @@ fu_dell_dock_hid_i2c_write (FuDevice *self,
.ext = HUB_EXT_I2C_WRITE,
.dwregaddr = 0,
.bufferlen = GUINT16_TO_LE (write_size),
.parameters = {.i2cslaveaddr = parameters->i2cslaveaddr,
.parameters = {.i2ctargetaddr = parameters->i2ctargetaddr,
.regaddrlen = 0,
.i2cspeed = parameters->i2cspeed | 0x80},
.extended_cmdarea[0 ... 52] = 0,
@ -336,7 +336,7 @@ fu_dell_dock_hid_i2c_read (FuDevice *self,
.ext = HUB_EXT_I2C_READ,
.dwregaddr = GUINT32_TO_LE (cmd),
.bufferlen = GUINT16_TO_LE (read_size),
.parameters = {.i2cslaveaddr = parameters->i2cslaveaddr,
.parameters = {.i2ctargetaddr = parameters->i2ctargetaddr,
.regaddrlen = parameters->regaddrlen,
.i2cspeed = parameters->i2cspeed | 0x80},
.extended_cmdarea[0 ... 52] = 0,
@ -365,7 +365,7 @@ fu_dell_dock_hid_tbt_wake (FuDevice *self,
FuTbtCmdBuffer cmd_buffer = {
.cmd = HUB_CMD_READ_DATA, /* special write command that reads status result */
.ext = HUB_EXT_WRITE_TBT_FLASH,
.i2cslaveaddr = parameters->i2cslaveaddr,
.i2ctargetaddr = parameters->i2ctargetaddr,
.i2cspeed = parameters->i2cspeed, /* unlike other commands doesn't need | 0x80 */
.tbt_command = TBT_COMMAND_WAKEUP,
.bufferlen = 0,
@ -408,7 +408,7 @@ fu_dell_dock_hid_tbt_write (FuDevice *self,
FuTbtCmdBuffer cmd_buffer = {
.cmd = HUB_CMD_READ_DATA, /* It's a special write command that reads status result */
.ext = HUB_EXT_WRITE_TBT_FLASH,
.i2cslaveaddr = parameters->i2cslaveaddr,
.i2ctargetaddr = parameters->i2ctargetaddr,
.i2cspeed = parameters->i2cspeed, /* unlike other commands doesn't need | 0x80 */
.startaddress = GUINT32_TO_LE (start_addr),
.bufferlen = write_size,
@ -454,7 +454,7 @@ fu_dell_dock_hid_tbt_authenticate (FuDevice *self,
FuTbtCmdBuffer cmd_buffer = {
.cmd = HUB_CMD_READ_DATA, /* It's a special write command that reads status result */
.ext = HUB_EXT_WRITE_TBT_FLASH,
.i2cslaveaddr = parameters->i2cslaveaddr,
.i2ctargetaddr = parameters->i2ctargetaddr,
.i2cspeed = parameters->i2cspeed, /* unlike other commands doesn't need | 0x80 */
.tbt_command = GUINT32_TO_LE (TBT_COMMAND_AUTHENTICATE),
.bufferlen = 0,

View File

@ -23,7 +23,7 @@
#include "fu-device.h"
typedef struct __attribute__ ((packed)) {
guint8 i2cslaveaddr;
guint8 i2ctargetaddr;
guint8 regaddrlen;
guint8 i2cspeed;
} FuHIDI2CParameters;

View File

@ -54,7 +54,7 @@ typedef enum {
} FuDellDockECFWUpdateStatus;
const FuHIDI2CParameters ec_base_settings = {
.i2cslaveaddr = I2C_EC_ADDRESS,
.i2ctargetaddr = I2C_EC_ADDRESS,
.regaddrlen = 1,
.i2cspeed = I2C_SPEED_250K,
};

View File

@ -96,7 +96,7 @@ const MSTBankAttributes esm_attributes = {
};
FuHIDI2CParameters mst_base_settings = {
.i2cslaveaddr = I2C_MST_ADDRESS,
.i2ctargetaddr = I2C_MST_ADDRESS,
.regaddrlen = 0,
.i2cspeed = I2C_SPEED_400K,
};

View File

@ -28,7 +28,7 @@
#define I2C_TBT_ADDRESS 0xa2
const FuHIDI2CParameters tbt_base_settings = {
.i2cslaveaddr = I2C_TBT_ADDRESS,
.i2ctargetaddr = I2C_TBT_ADDRESS,
.regaddrlen = 1,
.i2cspeed = I2C_SPEED_400K,
};

View File

@ -44,6 +44,6 @@ This plugin uses the following plugin-specific quirks:
| Quirk | Description | Minimum fwupd version |
|------------------------|---------------------------------------------|-----------------------|
| `Rts54SlaveAddr` | The slave address of a child module. | 1.1.3 |
| `Rts54TargetAddr` | The target address of a child module. | 1.1.3 |
| `Rts54I2cSpeed` | The I2C speed to operate at (0, 1, 2). | 1.1.3 |
| `Rts54RegisterAddrLen` | The I2C register address length of commands | 1.1.3 |

View File

@ -15,7 +15,7 @@
#define FU_RTS54HID_CMD_BUFFER_OFFSET_DATA 0x40
typedef struct __attribute__ ((packed)) {
guint8 slave_addr;
guint8 target_addr;
guint8 data_sz;
guint8 speed;
} FuRts54HidI2cParameters;

View File

@ -17,7 +17,7 @@
struct _FuRts54HidModule {
FuDevice parent_instance;
guint8 slave_addr;
guint8 target_addr;
guint8 i2c_speed;
guint8 register_addr_len;
};
@ -28,7 +28,7 @@ static void
fu_rts54hid_module_to_string (FuDevice *module, guint idt, GString *str)
{
FuRts54HidModule *self = FU_RTS54HID_MODULE (module);
fu_common_string_append_kx (str, idt, "SlaveAddr", self->slave_addr);
fu_common_string_append_kx (str, idt, "TargetAddr", self->target_addr);
fu_common_string_append_kx (str, idt, "I2cSpeed", self->i2c_speed);
fu_common_string_append_kx (str, idt, "RegisterAddrLen", self->register_addr_len);
}
@ -59,7 +59,7 @@ fu_rts54hid_module_i2c_write (FuRts54HidModule *self,
.ext = FU_RTS54HID_EXT_I2C_WRITE,
.dwregaddr = 0,
.bufferlen = GUINT16_TO_LE (data_sz),
.parameters_i2c = {.slave_addr = self->slave_addr,
.parameters_i2c = {.target_addr = self->target_addr,
.data_sz = self->register_addr_len,
.speed = self->i2c_speed | 0x80},
};
@ -83,7 +83,7 @@ fu_rts54hid_module_i2c_write (FuRts54HidModule *self,
FU_RTS54HID_DEVICE_TIMEOUT * 2,
FU_HID_DEVICE_FLAG_NONE,
error)) {
g_prefix_error (error, "failed to write i2c @%04x: ", self->slave_addr);
g_prefix_error (error, "failed to write i2c @%04x: ", self->target_addr);
return FALSE;
}
return TRUE;
@ -102,7 +102,7 @@ fu_rts54hid_module_i2c_read (FuRts54HidModule *self,
.ext = FU_RTS54HID_EXT_I2C_READ,
.dwregaddr = GUINT32_TO_LE (cmd),
.bufferlen = GUINT16_TO_LE (data_sz),
.parameters_i2c = {.slave_addr = self->slave_addr,
.parameters_i2c = {.target_addr = self->target_addr,
.data_sz = self->register_addr_len,
.speed = self->i2c_speed | 0x80},
};
@ -123,7 +123,7 @@ fu_rts54hid_module_i2c_read (FuRts54HidModule *self,
FU_RTS54HID_DEVICE_TIMEOUT * 2,
FU_HID_DEVICE_FLAG_NONE,
error)) {
g_prefix_error (error, "failed to write i2c @%04x: ", self->slave_addr);
g_prefix_error (error, "failed to write i2c @%04x: ", self->target_addr);
return FALSE;
}
if (!fu_hid_device_get_report (FU_HID_DEVICE (parent), 0x0, buf, sizeof(buf),
@ -144,17 +144,17 @@ fu_rts54hid_module_set_quirk_kv (FuDevice *device,
{
FuRts54HidModule *self = FU_RTS54HID_MODULE (device);
/* load slave address from quirks */
if (g_strcmp0 (key, "Rts54SlaveAddr") == 0) {
/* load target address from quirks */
if (g_strcmp0 (key, "Rts54TargetAddr") == 0) {
guint64 tmp = fu_common_strtoull (value);
if (tmp <= 0xff) {
self->slave_addr = tmp;
self->target_addr = tmp;
return TRUE;
}
g_set_error_literal (error,
G_IO_ERROR,
G_IO_ERROR_INVALID_DATA,
"invalid slave address");
"invalid target address");
return FALSE;
}

View File

@ -11,6 +11,6 @@ Plugin = rts54hid
Name = HDMI Converter
Flags = updatable
FirmwareSize = 0x20000
Rts54SlaveAddr = 0x00
Rts54TargetAddr = 0x00
Rts54I2cSpeed = 0x00
Rts54RegisterAddrLen = 0x04