kendryte-freertos-sdk/lib/bsp/device/registry.c

145 lines
5.0 KiB
C

/* Copyright 2018 Canaan Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <driver.h>
/* System Drivers */
extern const uart_driver_t g_uart_driver_uart0;
extern const uart_driver_t g_uart_driver_uart1;
extern const uart_driver_t g_uart_driver_uart2;
extern const gpio_driver_t g_gpio_driver_gpio0;
extern const gpio_driver_t g_gpiohs_driver_gpio0;
extern const i2c_driver_t g_i2c_driver_i2c0;
extern const i2c_driver_t g_i2c_driver_i2c1;
extern const i2c_driver_t g_i2c_driver_i2c2;
extern const i2s_driver_t g_i2s_driver_i2s0;
extern const i2s_driver_t g_i2s_driver_i2s1;
extern const i2s_driver_t g_i2s_driver_i2s2;
extern const spi_driver_t g_spi_driver_spi0;
extern const spi_driver_t g_spi_driver_spi1;
extern const spi_driver_t g_spi_driver_spi3;
extern const sccb_driver_t g_sccb_driver_sccb0;
extern const dvp_driver_t g_dvp_driver_dvp0;
extern const fft_driver_t g_fft_driver_fft0;
extern const aes_driver_t g_aes_driver_aes0;
extern const sha256_driver_t g_sha_driver_sha256;
extern const timer_driver_t g_timer_driver_timer0;
extern const timer_driver_t g_timer_driver_timer1;
extern const timer_driver_t g_timer_driver_timer2;
extern const timer_driver_t g_timer_driver_timer3;
extern const timer_driver_t g_timer_driver_timer4;
extern const timer_driver_t g_timer_driver_timer5;
extern const timer_driver_t g_timer_driver_timer6;
extern const timer_driver_t g_timer_driver_timer7;
extern const timer_driver_t g_timer_driver_timer8;
extern const timer_driver_t g_timer_driver_timer9;
extern const timer_driver_t g_timer_driver_timer10;
extern const timer_driver_t g_timer_driver_timer11;
extern const pwm_driver_t g_pwm_driver_pwm0;
extern const pwm_driver_t g_pwm_driver_pwm1;
extern const pwm_driver_t g_pwm_driver_pwm2;
driver_registry_t g_system_drivers[] =
{
{"/dev/uart1", &g_uart_driver_uart0, DRIVER_UART},
{"/dev/uart2", &g_uart_driver_uart1, DRIVER_UART},
{"/dev/uart3", &g_uart_driver_uart2, DRIVER_UART},
{"/dev/gpio0", &g_gpiohs_driver_gpio0, DRIVER_GPIO},
{"/dev/gpio1", &g_gpio_driver_gpio0, DRIVER_GPIO},
{"/dev/i2c0", &g_i2c_driver_i2c0, DRIVER_I2C},
{"/dev/i2c1", &g_i2c_driver_i2c1, DRIVER_I2C},
{"/dev/i2c2", &g_i2c_driver_i2c2, DRIVER_I2C},
{"/dev/i2s0", &g_i2s_driver_i2s0, DRIVER_I2S},
{"/dev/i2s1", &g_i2s_driver_i2s1, DRIVER_I2S},
{"/dev/i2s2", &g_i2s_driver_i2s2, DRIVER_I2S},
{"/dev/spi0", &g_spi_driver_spi0, DRIVER_SPI},
{"/dev/spi1", &g_spi_driver_spi1, DRIVER_SPI},
{"/dev/spi3", &g_spi_driver_spi3, DRIVER_SPI},
{"/dev/sccb0", &g_sccb_driver_sccb0, DRIVER_SCCB},
{"/dev/dvp0", &g_dvp_driver_dvp0, DRIVER_DVP},
{"/dev/fft0", &g_fft_driver_fft0, DRIVER_FFT},
{"/dev/aes0", &g_aes_driver_aes0, DRIVER_AES},
{"/dev/sha256", &g_sha_driver_sha256, DRIVER_SHA256},
{"/dev/timer0", &g_timer_driver_timer0, DRIVER_TIMER},
{"/dev/timer1", &g_timer_driver_timer1, DRIVER_TIMER},
{"/dev/timer2", &g_timer_driver_timer2, DRIVER_TIMER},
{"/dev/timer3", &g_timer_driver_timer3, DRIVER_TIMER},
{"/dev/timer4", &g_timer_driver_timer4, DRIVER_TIMER},
{"/dev/timer5", &g_timer_driver_timer5, DRIVER_TIMER},
{"/dev/timer6", &g_timer_driver_timer6, DRIVER_TIMER},
{"/dev/timer7", &g_timer_driver_timer7, DRIVER_TIMER},
{"/dev/timer8", &g_timer_driver_timer8, DRIVER_TIMER},
{"/dev/timer9", &g_timer_driver_timer9, DRIVER_TIMER},
{"/dev/timer10", &g_timer_driver_timer10, DRIVER_TIMER},
{"/dev/timer11", &g_timer_driver_timer11, DRIVER_TIMER},
{"/dev/pwm0", &g_pwm_driver_pwm0, DRIVER_PWM},
{"/dev/pwm1", &g_pwm_driver_pwm1, DRIVER_PWM},
{"/dev/pwm2", &g_pwm_driver_pwm2, DRIVER_PWM},
{0}
};
/* HAL Drivers */
extern const pic_driver_t g_pic_driver_plic0;
extern const dmac_driver_t g_dmac_driver_dmac0;
driver_registry_t g_hal_drivers[] =
{
{"/dev/pic0", &g_pic_driver_plic0, DRIVER_PIC},
{"/dev/dmac0", &g_dmac_driver_dmac0, DRIVER_DMAC},
{0}
};
/* DMA Drivers */
extern const dma_driver_t g_dma_driver_dma0;
extern const dma_driver_t g_dma_driver_dma1;
extern const dma_driver_t g_dma_driver_dma2;
extern const dma_driver_t g_dma_driver_dma3;
extern const dma_driver_t g_dma_driver_dma4;
extern const dma_driver_t g_dma_driver_dma5;
driver_registry_t g_dma_drivers[] =
{
{"/dev/dmac0/0", &g_dma_driver_dma0, DRIVER_DMA},
{"/dev/dmac0/1", &g_dma_driver_dma1, DRIVER_DMA},
{"/dev/dmac0/2", &g_dma_driver_dma2, DRIVER_DMA},
{"/dev/dmac0/3", &g_dma_driver_dma3, DRIVER_DMA},
{"/dev/dmac0/4", &g_dma_driver_dma4, DRIVER_DMA},
{"/dev/dmac0/5", &g_dma_driver_dma5, DRIVER_DMA},
{0}
};