SPI的一些基础服务函数定义。
SPI有不同位宽模式,该参数由上层平台级参数进行配置。
指定SPI设备号,获取上层指定配置的位宽。
static u8 spi_get_info_mode(spi_dev spi)//获取模式
{
u8 mode = (u8) - 1;
u8 id = spi_get_info_id(spi);
switch (id) {
#if SPI0_ENABLE
case SPI0:
mode = spi0_p_data.mode;
break;
#endif
#if SPI1_ENABLE
case SPI1:
mode = spi1_p_data.mode;
break;
#endif
#if SPI2_ENABLE
case SPI2:
mode = spi2_p_data.mode;
break;
#endif
default:
break;
}
return mode;
}
根据位宽进行SPI寄存器配置、GPIO配置。
获取上层配置的主从机选择。
static u8 spi_get_info_role(spi_dev spi)//获取主从
{
u8 role = (u8) - 1;
u8 id = spi_get_info_id(spi);
switch (id) {
#if SPI0_ENABLE
case SPI0:
role = spi0_p_data.role;
break;
#endif
#if SPI1_ENABLE
case SPI1:
role = spi1_p_data.role;
break;
#endif
#if SPI2_ENABLE
case SPI2:
role = spi2_p_data.role;
break;
#endif
default:
break;
}
return role;
}
获取上层配置的时钟:
static u32 spi_get_info_clock(spi_dev spi)//获取时钟
{
u32 clock = (u8) - 1;
u8 id = spi_get_info_id(spi);
switch (id) {
#if SPI0_ENABLE
case SPI0:
cloc