Lines Matching +full:lsb +full:- +full:release

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
6 * Copyright (c) 2017-2018 Panasas
87 sc->dev = dev; in imcsmb_attach()
88 sc->imcsmb_pci = device_get_parent(dev); in imcsmb_attach()
89 sc->regs = device_get_ivars(dev); in imcsmb_attach()
92 sc->smbus = device_add_child(dev, "smbus", DEVICE_UNIT_ANY); in imcsmb_attach()
93 if (sc->smbus == NULL) { in imcsmb_attach()
126 * smbus_callback() method. Call the parent imcsmb_pci's request or release
157 rc = imcsmb_pci_request_bus(sc->imcsmb_pci); in imcsmb_callback()
161 imcsmb_pci_release_bus(sc->imcsmb_pci); in imcsmb_callback()
319 orig_cntl_val = pci_read_config(sc->imcsmb_pci, in imcsmb_transfer()
320 sc->regs->smb_cntl, 4); in imcsmb_transfer()
363 /* [26:24] The three non-DTI, non-R/W bits of the slave address. */ in imcsmb_transfer()
376 * I2C: [15:8] = MSB; [7:0] = LSB in imcsmb_transfer()
377 * SMB: [15:8] = LSB; [7:0] = MSB in imcsmb_transfer()
382 * the temperature sensors are I2C. Thus, byte-swap the in imcsmb_transfer()
387 /* For byte operations, the data goes in the LSB, and in imcsmb_transfer()
398 pci_write_config(sc->imcsmb_pci, sc->regs->smb_cntl, cntl_val, 4); in imcsmb_transfer()
401 * We just cleared the auto-poll bit, so we need to make sure the device in imcsmb_transfer()
405 for (i = 4; i != 0; i--) { in imcsmb_transfer()
406 stat_val = pci_read_config(sc->imcsmb_pci, sc->regs->smb_stat, in imcsmb_transfer()
415 device_printf(sc->dev, in imcsmb_transfer()
422 pci_write_config(sc->imcsmb_pci, sc->regs->smb_cmd, cmd_val, 4); in imcsmb_transfer()
427 for (i = 35000; i != 0; i -= 10) in imcsmb_transfer()
430 stat_val = pci_read_config(sc->imcsmb_pci, sc->regs->smb_stat, in imcsmb_transfer()
456 /* It is generally the case that this bit indicates non-ACK, but it in imcsmb_transfer()
461 /* While it is not documented, empirically, SPD page-change in imcsmb_transfer()
475 * above, byte-swap. in imcsmb_transfer()
492 pci_write_config(sc->imcsmb_pci, sc->regs->smb_cntl, orig_cntl_val, 4); in imcsmb_transfer()