Symbol: smbus
usr/src/lib/libi2c/common/libi2c_io.c
489
smbus_req_t smbus;
usr/src/lib/libi2c/common/libi2c_io.c
506
(void) memset(&smbus, 0, sizeof (smbus_req_t));
usr/src/lib/libi2c/common/libi2c_io.c
507
smbus.smbr_op = req->sir_op;
usr/src/lib/libi2c/common/libi2c_io.c
508
smbus.smbr_flags = req->sir_flags;
usr/src/lib/libi2c/common/libi2c_io.c
509
smbus.smbr_addr = req->sir_addr;
usr/src/lib/libi2c/common/libi2c_io.c
510
smbus.smbr_cmd = req->sir_cmd;
usr/src/lib/libi2c/common/libi2c_io.c
521
smbus.smbr_wdata[0] = (uint8_t)req->sir_write;
usr/src/lib/libi2c/common/libi2c_io.c
526
(void) memcpy(smbus.smbr_wdata, &u16, sizeof (u16));
usr/src/lib/libi2c/common/libi2c_io.c
531
(void) memcpy(smbus.smbr_wdata, &u32, sizeof (u32));
usr/src/lib/libi2c/common/libi2c_io.c
536
(void) memcpy(smbus.smbr_wdata, &u64, sizeof (u64));
usr/src/lib/libi2c/common/libi2c_io.c
541
smbus.smbr_wlen = req->sir_wlen;
usr/src/lib/libi2c/common/libi2c_io.c
542
(void) memcpy(smbus.smbr_wdata, req->sir_writep, req->sir_wlen);
usr/src/lib/libi2c/common/libi2c_io.c
545
smbus.smbr_rlen = req->sir_rlen;
usr/src/lib/libi2c/common/libi2c_io.c
551
if (ioctl(req->sir_port->port_fd, UI2C_IOCTL_SMBUS_REQ, &smbus) != 0) {
usr/src/lib/libi2c/common/libi2c_io.c
556
if (smbus.smbr_error.i2c_error != I2C_CORE_E_OK) {
usr/src/lib/libi2c/common/libi2c_io.c
557
return (i2c_ioctl_error(hdl, &smbus.smbr_error,
usr/src/lib/libi2c/common/libi2c_io.c
564
*(uint8_t *)req->sir_readp = smbus.smbr_rdata[0];
usr/src/lib/libi2c/common/libi2c_io.c
569
(void) memcpy(&u16, smbus.smbr_rdata, sizeof (uint16_t));
usr/src/lib/libi2c/common/libi2c_io.c
575
(void) memcpy(&u32, smbus.smbr_rdata, sizeof (uint32_t));
usr/src/lib/libi2c/common/libi2c_io.c
581
(void) memcpy(&u64, smbus.smbr_rdata, sizeof (uint64_t));
usr/src/lib/libi2c/common/libi2c_io.c
593
(void) memcpy(req->sir_readp, smbus.smbr_rdata,
usr/src/lib/libi2c/common/libi2c_io.c
594
smbus.smbr_rlen);
usr/src/uts/common/io/i2c/nexus/i2cnex_client.c
544
i2c_client_submit(i2c_client_t *client, bool smbus)
usr/src/uts/common/io/i2c/nexus/i2cnex_client.c
553
if (smbus) {
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
341
bool smbus = ctrl->ic_type == I2C_CTRL_TYPE_SMBUS;
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
388
if (smbus && err.i2c_error == I2C_PROP_E_UNSUP) {
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
411
if (smbus && err.i2c_error == I2C_PROP_E_UNSUP) {
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
631
smbus_req_t *smbus)
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
634
smbus->smbr_op = SMBUS_OP_SEND_BYTE;
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
635
smbus->smbr_wdata[0] = req->ir_wdata[0];
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
640
smbus->smbr_op = SMBUS_OP_WRITE_BYTE;
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
641
smbus->smbr_cmd = req->ir_wdata[0];
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
642
smbus->smbr_wdata[0] = req->ir_wdata[1];
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
647
smbus->smbr_op = SMBUS_OP_WRITE_WORD;
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
648
smbus->smbr_cmd = req->ir_wdata[0];
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
649
smbus->smbr_wdata[0] = req->ir_wdata[1];
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
650
smbus->smbr_wdata[1] = req->ir_wdata[2];
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
662
smbus->smbr_op = SMBUS_OP_I2C_WRITE_BLOCK;
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
663
smbus->smbr_cmd = req->ir_wdata[0];
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
664
bcopy(req->ir_wdata + 1, smbus->smbr_wdata, req->ir_wlen - 1);
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
674
i2c_ctrl_io_i2c_xlate_ro(const i2c_req_t *req, smbus_req_t *smbus)
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
677
smbus->smbr_op = SMBUS_OP_RECV_BYTE;
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
694
smbus_req_t *smbus)
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
697
smbus->smbr_op = SMBUS_OP_PROCESS_CALL;
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
698
smbus->smbr_cmd = req->ir_wdata[0];
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
699
smbus->smbr_wdata[0] = req->ir_wdata[1];
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
700
smbus->smbr_wdata[1] = req->ir_wdata[2];
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
705
smbus->smbr_cmd = req->ir_wdata[0];
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
707
smbus->smbr_op = SMBUS_OP_READ_BYTE;
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
712
smbus->smbr_op = SMBUS_OP_READ_WORD;
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
720
smbus->smbr_op = SMBUS_OP_I2C_READ_BLOCK;
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
721
smbus->smbr_rlen = req->ir_rlen;
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
729
smbus_req_t *smbus = &ctrl->ic_reqs.req_smbus;
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
731
bzero(smbus, sizeof (smbus_req_t));
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
732
smbus->smbr_addr = req->ir_addr;
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
733
smbus->smbr_flags = req->ir_flags;
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
743
if (!i2c_ctrl_io_i2c_xlate_wo(ctrl, req, smbus))
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
746
if (!i2c_ctrl_io_i2c_xlate_ro(req, smbus))
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
749
if (!i2c_ctrl_io_i2c_xlate_rw(ctrl, req, smbus))
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
753
bool ret = i2c_ctrl_io_smbus(txn, ctrl, port, smbus);
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
754
req->ir_error = smbus->smbr_error;
usr/src/uts/common/io/i2c/nexus/i2cnex_ctrl.c
755
bcopy(smbus->smbr_rdata, req->ir_rdata, sizeof (smbus->smbr_rdata));
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1003
if (smbus->smbus_timeout == 0) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1005
mutex_exit(&smbus->smbus_imutex);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1010
result = smbus_intr_cmn(smbus, SMBUS_INTR);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1011
mutex_exit(&smbus->smbus_imutex);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1019
smbus_intr_cmn(smbus_t *smbus, char *src)
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1027
ASSERT(mutex_owned(&smbus->smbus_imutex));
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1030
smbus_interrupts_off(smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1032
tp = smbus->smbus_cur_tran;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1048
status = smbus_get(smbus, SMB_STS);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1049
if (smbus->smbus_polling) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1061
smbus->smbus_poll_retries++ < SMBUS_POLL_MAX_RETRIES) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1076
smbus->smbus_poll_retries = 0;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1110
smbus_put(smbus, SMB_STS, 0xff, SMBUS_FLUSH);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1112
smbus_put(smbus, SMB_TYP, KILL, SMBUS_FLUSH);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1113
if (smbus->smbus_retries++ < SMBUS_MAX_RETRIES) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1127
tp->i2c_w_resid = smbus->smbus_saved_w_resid;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1128
smbus->smbus_bytes_to_read = 0;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1135
smbus->smbus_name, error_str);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1139
smbus_put(smbus, SMB_TYP, KILL, SMBUS_FLUSH);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1140
smbus_put(smbus, SMB_STS, 0xff, SMBUS_FLUSH);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1141
smbus->smbus_cur_tran->i2c_result = I2C_FAILURE;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1146
smbus->smbus_retries = 0;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1155
ret = smbus_switch(smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1158
if (smbus->smbus_polling) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1160
smbus->smbus_poll_complete = 1;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1167
timer_id = smbus->smbus_timeout;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1168
smbus->smbus_timeout = 0;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1169
mutex_exit(&smbus->smbus_imutex);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1171
mutex_enter(&smbus->smbus_imutex);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1173
cv_signal(&smbus->smbus_icv);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1175
smbus_interrupts_on(smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1176
smbus->smbus_timeout = timeout(smbus_intr_timeout,
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1177
smbus, drv_usectohz(intr_timeout));
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1179
"%s", smbus->smbus_timeout, src));
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1199
smbus_wr(smbus_t *smbus)
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1201
i2c_transfer_t *tp = smbus->smbus_cur_tran;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1202
uint8_t addr = smbus_dip_to_addr(smbus->smbus_cur_dip);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1214
smbus_put(smbus, SMB_STS, 0xff, 0);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1220
smbus_put(smbus, DEV_ADDR, addr, 0);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1226
smbus_put(smbus, SMB_CMD, a, 0);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1227
smbus_put(smbus, SMB_TYP, SEND_BYTE, 0);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1233
smbus_put(smbus, SMB_CMD, a, 0);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1236
smbus_put(smbus, DEV_DATA0, b, 0);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1237
smbus_put(smbus, SMB_TYP, WR_BYTE, 0);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1248
smbus_put(smbus, SMB_TYP, WR_BLK, 0);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1251
smbus_put(smbus, SMB_CMD, a, 0);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1258
smbus_put(smbus, BLK_DATA, a, 0);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1272
smbus_put(smbus, DEV_DATA0, bytes_written, 0);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1279
smbus_put(smbus, STR_PORT, 0, SMBUS_FLUSH);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1306
smbus_rd(smbus_t *smbus)
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1308
i2c_transfer_t *tp = smbus->smbus_cur_tran;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1309
uint8_t addr = smbus_dip_to_addr(smbus->smbus_cur_dip);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1311
if (smbus->smbus_bytes_to_read == 1) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1313
smbus_get(smbus, DEV_DATA0);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1317
smbus->smbus_bytes_to_read = 0;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1328
smbus_put(smbus, DEV_ADDR, addr | I2C_READ, 0);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1331
smbus->smbus_bytes_to_read = 0;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1336
smbus->smbus_bytes_to_read = 1;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1337
smbus_put(smbus, SMB_TYP, RCV_BYTE, 0);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1339
smbus_put(smbus, SMB_STS, 0xff, 0);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1343
smbus->smbus_bytes_to_read));
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
1345
smbus_put(smbus, STR_PORT, 0, SMBUS_FLUSH);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
253
smbus_interrupts_on(smbus_t *smbus)
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
257
src_enable = ddi_get32(smbus->smbus_confighandle,
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
258
(uint32_t *)&smbus->smbus_configregaddr[SMBUS_SRC_ENA]);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
260
ddi_put32(smbus->smbus_confighandle,
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
261
(uint32_t *)&smbus->smbus_configregaddr[SMBUS_SRC_ENA],
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
263
(void) ddi_get32(smbus->smbus_confighandle,
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
264
(uint32_t *)&smbus->smbus_configregaddr[SMBUS_SRC_ENA]);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
268
smbus_interrupts_off(smbus_t *smbus)
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
272
src_enable = ddi_get32(smbus->smbus_confighandle,
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
273
(uint32_t *)&smbus->smbus_configregaddr[SMBUS_SRC_ENA]);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
275
ddi_put32(smbus->smbus_confighandle,
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
276
(uint32_t *)&smbus->smbus_configregaddr[SMBUS_SRC_ENA],
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
278
(void) ddi_get32(smbus->smbus_confighandle,
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
279
(uint32_t *)&smbus->smbus_configregaddr[SMBUS_SRC_ENA]);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
285
smbus_t *smbus;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
288
smbus = ddi_get_soft_state(smbus_state, instance);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
290
if (smbus == NULL) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
295
cv_destroy(&smbus->smbus_cv);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
296
mutex_destroy(&smbus->smbus_mutex);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
298
if ((smbus->smbus_attachflags & INTERRUPT_PRI) != 0) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
303
smbus_free_regs(smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
305
if ((smbus->smbus_attachflags & NEXUS_REGISTER) != 0) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
308
if ((smbus->smbus_attachflags & IMUTEX) != 0) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
309
mutex_destroy(&smbus->smbus_imutex);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
310
cv_destroy(&smbus->smbus_icv);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
313
if (smbus->smbus_timeout != 0) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
314
(void) untimeout(smbus->smbus_timeout);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
317
if ((smbus->smbus_attachflags & ADD_INTR) != 0) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
318
ddi_remove_intr(dip, 0, smbus->smbus_icookie);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
327
smbus_t *smbus;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
338
smbus = ddi_get_soft_state(smbus_state, instance);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
340
(void) snprintf(smbus->smbus_name, sizeof (smbus->smbus_name),
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
343
smbus->smbus_dip = dip;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
345
mutex_init(&smbus->smbus_mutex, NULL, MUTEX_DRIVER, NULL);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
346
mutex_init(&smbus->smbus_imutex, NULL, MUTEX_DRIVER, NULL);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
347
cv_init(&smbus->smbus_cv, NULL, CV_DRIVER, NULL);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
348
cv_init(&smbus->smbus_intr_cv, NULL, CV_DRIVER, NULL);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
350
if (smbus_setup_regs(dip, smbus) != DDI_SUCCESS) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
356
smbus->smbus_polling = 0;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
370
smbus->smbus_attachflags |= INTERRUPT_PRI;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
376
smbus_put(smbus, SMB_STS, 0xff, SMBUS_FLUSH);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
378
if (ddi_get_iblock_cookie(dip, 0, &smbus->smbus_icookie) !=
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
384
(caddr_t)smbus) != DDI_SUCCESS) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
386
smbus->smbus_name);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
389
smbus->smbus_attachflags |= ADD_INTR;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
391
smbus->smbus_polling = 1;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
393
smbus_put(smbus, SMB_STS, 0xff, SMBUS_FLUSH);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
399
cv_init(&smbus->smbus_icv, NULL, CV_DRIVER, NULL);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
400
mutex_init(&smbus->smbus_imutex, NULL, MUTEX_DRIVER,
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
401
(void *)smbus->smbus_icookie);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
402
smbus->smbus_attachflags |= IMUTEX;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
408
smbus->smbus_attachflags |= NEXUS_REGISTER;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
53
static uint_t smbus_intr_cmn(smbus_t *smbus, char *src);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
575
smbus_setup_regs(dev_info_t *dip, smbus_t *smbus)
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
584
ret = ddi_regs_map_setup(dip, 1, (caddr_t *)&smbus->smbus_regaddr,
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
585
0, 0, &attr, &smbus->smbus_rhandle);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
588
cmn_err(CE_WARN, "%s unable to map regs", smbus->smbus_name);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
593
smbus->smbus_name);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
602
ret = ddi_regs_map_setup(dip, 0, (caddr_t *)&smbus->smbus_configregaddr,
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
603
0, 0, &attr, &smbus->smbus_confighandle);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
607
smbus->smbus_name);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
612
smbus->smbus_name);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
623
smbus_free_regs(smbus_t *smbus)
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
625
if (smbus->smbus_regaddr != NULL) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
626
ddi_regs_map_free(&smbus->smbus_rhandle);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
629
if (smbus->smbus_configregaddr != NULL) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
630
ddi_regs_map_free(&smbus->smbus_confighandle);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
64
static void smbus_free_regs(smbus_t *smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
65
static int smbus_setup_regs(dev_info_t *dip, smbus_t *smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
655
smbus_t *smbus;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
659
smbus = ddi_get_soft_state(smbus_state, instance);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
661
(void) smbus_acquire(smbus, NULL, NULL);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
672
smbus_t *smbus;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
676
smbus = ddi_get_soft_state(smbus_state, instance);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
678
smbus_release(smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
686
smbus_acquire(smbus_t *smbus, dev_info_t *dip, i2c_transfer_t *tp)
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
688
mutex_enter(&smbus->smbus_mutex);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
689
while (smbus->smbus_busy) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
69
static int smbus_rd(smbus_t *smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
690
cv_wait(&smbus->smbus_cv, &smbus->smbus_mutex);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
692
smbus->smbus_busy = 1;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
693
mutex_exit(&smbus->smbus_mutex);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
70
static int smbus_wr(smbus_t *smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
706
plat_shared_i2c_enter(smbus->smbus_dip);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
709
smbus->smbus_cur_tran = tp;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
71
static void smbus_put(smbus_t *smbus, uint8_t reg, uint8_t data, uint8_t flags);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
710
smbus->smbus_cur_dip = dip;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
719
smbus_release(smbus_t *smbus)
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
72
static uint8_t smbus_get(smbus_t *smbus, uint8_t reg);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
721
mutex_enter(&smbus->smbus_mutex);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
722
smbus->smbus_busy = 0;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
723
cv_signal(&smbus->smbus_cv);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
724
smbus->smbus_cur_tran = NULL;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
725
smbus->smbus_cur_dip = NULL;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
726
mutex_exit(&smbus->smbus_mutex);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
728
if ((&plat_shared_i2c_exit != NULL) && (smbus->smbus_cur_dip != NULL)) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
729
plat_shared_i2c_exit(smbus->smbus_dip);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
734
smbus_put(smbus_t *smbus, uint8_t reg, uint8_t data, uint8_t flags)
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
736
ddi_acc_handle_t hp = smbus->smbus_rhandle;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
737
uint8_t *reg_addr = smbus->smbus_regaddr;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
738
uint8_t *config_addr = smbus->smbus_configregaddr;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
739
ddi_acc_handle_t config_handle = smbus->smbus_confighandle;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
75
static int smbus_switch(smbus_t *smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
756
smbus_get(smbus_t *smbus, uint8_t reg)
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
759
ddi_acc_handle_t hp = smbus->smbus_rhandle;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
760
uint8_t *regaddr = smbus->smbus_regaddr;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
785
smbus_wait_idle(smbus_t *smbus)
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
790
smbus_put(smbus, SMB_STS, 0xff, SMBUS_FLUSH);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
793
status = smbus_get(smbus, SMB_STS);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
804
smbus_t *smbus;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
808
smbus = ddi_get_soft_state(smbus_state,
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
811
if (smbus_acquire(smbus, dip, tp) == SMBUS_FAILURE) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
820
smbus->smbus_retries = 0;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
821
smbus->smbus_bytes_to_read = 0;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
823
mutex_enter(&smbus->smbus_imutex);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
832
status = smbus_wait_idle(smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
839
smbus_put(smbus, SMB_TYP, KILL, SMBUS_FLUSH);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
840
status = smbus_wait_idle(smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
844
smbus_put(smbus, SMB_TYP, T_OUT, SMBUS_FLUSH);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
845
status = smbus_wait_idle(smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
849
smbus->smbus_name, status);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
850
smbus->smbus_cur_tran->i2c_result = I2C_FAILURE;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
851
mutex_exit(&smbus->smbus_imutex);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
852
smbus_release(smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
857
smbus->smbus_name);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
862
if (smbus_switch(smbus) != SMBUS_COMPLETE) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
863
if (smbus->smbus_polling) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
864
smbus->smbus_poll_complete = 0;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
865
smbus->smbus_poll_retries = 0;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
868
(void) smbus_intr_cmn(smbus, SMBUS_POLL);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
869
} while (!smbus->smbus_poll_complete);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
877
smbus->smbus_timeout = timeout(smbus_intr_timeout,
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
878
smbus, drv_usectohz(intr_timeout));
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
881
smbus->smbus_timeout));
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
886
smbus_interrupts_on(smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
889
cv_wait(&smbus->smbus_icv, &smbus->smbus_imutex);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
894
mutex_exit(&smbus->smbus_imutex);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
895
smbus_release(smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
905
smbus_switch(smbus_t *smbus)
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
908
i2c_transfer_t *tp = smbus->smbus_cur_tran;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
913
smbus->smbus_name);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
918
smbus->smbus_saved_w_resid = tp->i2c_w_resid;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
922
ret = smbus_wr(smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
925
ret = smbus_rd(smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
936
ret = smbus_wr(smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
938
ret = smbus_rd(smbus);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
956
smbus_t *smbus = (smbus_t *)arg;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
958
mutex_enter(&smbus->smbus_imutex);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
963
if (smbus->smbus_timeout == 0) {
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
965
mutex_exit(&smbus->smbus_imutex);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
970
(void) smbus_intr_cmn(smbus, SMBUS_TIMEOUT);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
971
mutex_exit(&smbus->smbus_imutex);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
980
smbus_t *smbus = (smbus_t *)arg;
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
987
intr_status = ddi_get32(smbus->smbus_confighandle,
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
988
(uint32_t *)&smbus->smbus_configregaddr[SMBUS_SRC_STATUS]);
usr/src/uts/sun4u/io/i2c/nexus/smbus.c
997
mutex_enter(&smbus->smbus_imutex);