| /* 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; |
| } |