/* * 初始化SPI寄存器 * */ static void spi_init(void) { #ifdef _DEBUG_GM814X printk(KERN_INFO "2-----spi_init------\n"); #endif gpio_select(); clock_enable(); spi_reset(); // 1. SET CH_CFG CH_CFG = HIGH_SPEED_EN | SW_RST | MASTER | CPOL | CPHA; // 2. SET CLK_CFG CLK_CFG &= ~ ( 0x7ff ); CLK_CFG = SPI_CLKSEL | ENCLK | SPI_SCALER; // 3. SET MODE_CFG MODE_CFG &= ( u32 ) ( 1 << 31 ); MODE_CFG = CH_WIDTH | TRAILING_CNT | BUS_WIDTH | RX_RDY_LVL | TX_RDY_LVL | RX_DMA_SW | TX_DMA_SW | DMA_TYPE; // 4. SET SLAVE_SEL SLAVE_SEL = SLAVE_CS_HIGH |SLAVE_AUTO_OFF; // 5. SET SPI_INT_EN SPI_INT_EN = SPI_INT_ENABLE; // 6. SET SWAP_CONFIG SWAP_CONFIG = RX_SWAP_EN | RX_SWAP_MODE | TX_SWAP_EN | TX_SWAP_MODE; #ifdef _DEBUG_GM814X printk(KERN_INFO "2------spi_init end---------\n"); #endif }
void gpio_actled_select() { gpio_select(GPIO_PIN_ACTLED); }
void gpio_pwrled_select() { gpio_select(GPIO_PIN_PWRLED); }