blob: 7fb495477b61aae3ae0f4f2fe55df21475714047 [file] [log] [blame]
/* SPDX-License-Identifier: BSD-3-Clause */
#include <device/mmio.h>
#include <soc/blsp.h>
#include <soc/gpio.h>
#include <soc/iomap.h>
#include <soc/clock.h>
blsp_return_t blsp_i2c_init(blsp_qup_id_t id)
{
void *base;
switch (id) {
case BLSP_QUP_ID_1:
gpio_configure
(GPIO(24), 2, GPIO_PULL_UP, GPIO_2MA, GPIO_OUTPUT);
gpio_configure
(GPIO(25), 2, GPIO_PULL_UP, GPIO_2MA, GPIO_OUTPUT);
break;
default:
return BLSP_ID_ERROR;
}
clock_configure_i2c(19200000);
clock_enable_i2c();
base = blsp_qup_base(id);
if (!base)
return BLSP_ID_ERROR;
/* Configure Mini core to I2C core */
clrsetbits32(base, BLSP_MINI_CORE_MASK, BLSP_MINI_CORE_I2C);
return BLSP_SUCCESS;
}