Lines Matching refs:cmd
45 static void atmel_i2c_checksum(struct atmel_i2c_cmd *cmd) in atmel_i2c_checksum() argument
47 u8 *data = &cmd->count; in atmel_i2c_checksum()
48 size_t len = cmd->count - CRC_SIZE; in atmel_i2c_checksum()
54 void atmel_i2c_init_read_cmd(struct atmel_i2c_cmd *cmd) in atmel_i2c_init_read_cmd() argument
56 cmd->word_addr = COMMAND; in atmel_i2c_init_read_cmd()
57 cmd->opcode = OPCODE_READ; in atmel_i2c_init_read_cmd()
62 cmd->param1 = CONFIG_ZONE; in atmel_i2c_init_read_cmd()
63 cmd->param2 = cpu_to_le16(DEVICE_LOCK_ADDR); in atmel_i2c_init_read_cmd()
64 cmd->count = READ_COUNT; in atmel_i2c_init_read_cmd()
66 atmel_i2c_checksum(cmd); in atmel_i2c_init_read_cmd()
68 cmd->msecs = MAX_EXEC_TIME_READ; in atmel_i2c_init_read_cmd()
69 cmd->rxsize = READ_RSP_SIZE; in atmel_i2c_init_read_cmd()
73 void atmel_i2c_init_random_cmd(struct atmel_i2c_cmd *cmd) in atmel_i2c_init_random_cmd() argument
75 cmd->word_addr = COMMAND; in atmel_i2c_init_random_cmd()
76 cmd->opcode = OPCODE_RANDOM; in atmel_i2c_init_random_cmd()
77 cmd->param1 = 0; in atmel_i2c_init_random_cmd()
78 cmd->param2 = 0; in atmel_i2c_init_random_cmd()
79 cmd->count = RANDOM_COUNT; in atmel_i2c_init_random_cmd()
81 atmel_i2c_checksum(cmd); in atmel_i2c_init_random_cmd()
83 cmd->msecs = MAX_EXEC_TIME_RANDOM; in atmel_i2c_init_random_cmd()
84 cmd->rxsize = RANDOM_RSP_SIZE; in atmel_i2c_init_random_cmd()
88 void atmel_i2c_init_genkey_cmd(struct atmel_i2c_cmd *cmd, u16 keyid) in atmel_i2c_init_genkey_cmd() argument
90 cmd->word_addr = COMMAND; in atmel_i2c_init_genkey_cmd()
91 cmd->count = GENKEY_COUNT; in atmel_i2c_init_genkey_cmd()
92 cmd->opcode = OPCODE_GENKEY; in atmel_i2c_init_genkey_cmd()
93 cmd->param1 = GENKEY_MODE_PRIVATE; in atmel_i2c_init_genkey_cmd()
95 cmd->param2 = cpu_to_le16(keyid); in atmel_i2c_init_genkey_cmd()
97 atmel_i2c_checksum(cmd); in atmel_i2c_init_genkey_cmd()
99 cmd->msecs = MAX_EXEC_TIME_GENKEY; in atmel_i2c_init_genkey_cmd()
100 cmd->rxsize = GENKEY_RSP_SIZE; in atmel_i2c_init_genkey_cmd()
104 int atmel_i2c_init_ecdh_cmd(struct atmel_i2c_cmd *cmd, in atmel_i2c_init_ecdh_cmd() argument
109 cmd->word_addr = COMMAND; in atmel_i2c_init_ecdh_cmd()
110 cmd->count = ECDH_COUNT; in atmel_i2c_init_ecdh_cmd()
111 cmd->opcode = OPCODE_ECDH; in atmel_i2c_init_ecdh_cmd()
112 cmd->param1 = ECDH_PREFIX_MODE; in atmel_i2c_init_ecdh_cmd()
114 cmd->param2 = cpu_to_le16(DATA_SLOT_2); in atmel_i2c_init_ecdh_cmd()
124 cmd->data, ATMEL_ECC_PUBKEY_SIZE); in atmel_i2c_init_ecdh_cmd()
128 atmel_i2c_checksum(cmd); in atmel_i2c_init_ecdh_cmd()
130 cmd->msecs = MAX_EXEC_TIME_ECDH; in atmel_i2c_init_ecdh_cmd()
131 cmd->rxsize = ECDH_RSP_SIZE; in atmel_i2c_init_ecdh_cmd()
217 int atmel_i2c_send_receive(struct i2c_client *client, struct atmel_i2c_cmd *cmd) in atmel_i2c_send_receive() argument
229 ret = i2c_master_send(client, (u8 *)cmd, cmd->count + WORD_ADDR_SIZE); in atmel_i2c_send_receive()
234 msleep(cmd->msecs); in atmel_i2c_send_receive()
237 ret = i2c_master_recv(client, cmd->data, cmd->rxsize); in atmel_i2c_send_receive()
247 return atmel_i2c_status(&client->dev, cmd->data); in atmel_i2c_send_receive()
258 struct atmel_i2c_cmd *cmd = &work_data->cmd; in atmel_i2c_work_handler() local
262 status = atmel_i2c_send_receive(client, cmd); in atmel_i2c_work_handler()
289 struct atmel_i2c_cmd *cmd; in device_sanity_check() local
292 cmd = kmalloc(sizeof(*cmd), GFP_KERNEL); in device_sanity_check()
293 if (!cmd) in device_sanity_check()
296 atmel_i2c_init_read_cmd(cmd); in device_sanity_check()
298 ret = atmel_i2c_send_receive(client, cmd); in device_sanity_check()
308 if (cmd->data[LOCK_CONFIG_IDX] || cmd->data[LOCK_VALUE_IDX]) { in device_sanity_check()
315 kfree(cmd); in device_sanity_check()