Lines Matching defs:controller

26 #include "intel-i2c-controller.h"
40 // Signals used on the controller's event_handle
60 zxlogf(ERROR, "intel-i2c-controller: out of memory\n");
81 zxlogf(ERROR, "intel-i2c-controller: intel_serialio_i2c_slave_transfer: %d\n", status);
171 slave->controller = device;
280 // Apparently the counter starts as soon as the controller releases SCL, so
298 // Apparently the counter starts as soon as the controller pulls SCL low, so
446 intel_serialio_i2c_device_t* controller,
450 zx_status_t status = zx_object_wait_one(controller->event_handle,
463 intel_serialio_i2c_device_t* controller,
467 zx_status_t status = zx_object_wait_one(controller->event_handle,
480 intel_serialio_i2c_device_t* controller,
484 zx_status_t status = zx_object_wait_one(controller->event_handle,
496 zx_status_t intel_serialio_i2c_check_for_error(intel_serialio_i2c_device_t* controller) {
499 zx_status_t status = zx_object_wait_one(controller->event_handle, ERROR_DETECTED_SIGNAL, 0,
510 zx_status_t intel_serialio_i2c_clear_stop_detect(intel_serialio_i2c_device_t* controller) {
511 return zx_object_signal(controller->event_handle, STOP_DETECTED_SIGNAL, 0);
517 intel_serialio_i2c_device_t* controller,
520 writel(data_cmd, &controller->regs->data_cmd);
525 intel_serialio_i2c_device_t* controller,
528 *data = readl(&controller->regs->data_cmd);
531 intel_serialio_i2c_get_rx_fifo_threshold(controller, &rx_tl);
532 const uint32_t rxflr = readl(&controller->regs->rxflr) & 0x1ff;
536 mtx_lock(&controller->irq_mask_mutex);
537 zx_status_t status = zx_object_signal(controller->event_handle, RX_FULL_SIGNAL, 0);
538 RMWREG32(&controller->regs->intr_mask, INTR_RX_FULL, 1, 1);
539 mtx_unlock(&controller->irq_mask_mutex);
546 intel_serialio_i2c_device_t* controller,
549 writel(data_cmd, &controller->regs->data_cmd);
551 intel_serialio_i2c_get_tx_fifo_threshold(controller, &tx_tl);
552 const uint32_t txflr = readl(&controller->regs->txflr) & 0x1ff;
556 mtx_lock(&controller->irq_mask_mutex);
557 zx_status_t status = zx_object_signal(controller->event_handle, TX_EMPTY_SIGNAL, 0);
558 RMWREG32(&controller->regs->intr_mask, INTR_TX_EMPTY, 1, 1);
559 mtx_unlock(&controller->irq_mask_mutex);
566 intel_serialio_i2c_device_t* controller,
569 *threshold = (readl(&controller->regs->rx_tl) & 0xff) + 1;
574 intel_serialio_i2c_device_t* controller,
581 RMWREG32(&controller->regs->rx_tl, 0, 8, threshold - 1);
586 intel_serialio_i2c_device_t* controller,
589 *threshold = (readl(&controller->regs->tx_tl) & 0xff) + 1;
594 intel_serialio_i2c_device_t* controller,
601 RMWREG32(&controller->regs->tx_tl, 0, 8, threshold - 1);
636 // The controller lock should already be held when entering this function.
655 printf("i2c-controller: timed out waiting for device idle\n");
667 // Disable the controller.
738 // Internal controller frequency, in hertz
914 // Configure the I2C controller. We don't need to hold the lock because
915 // nobody else can see this controller yet.
918 zxlogf(ERROR, "i2c: reset controller failed: %d\n", status);