SyterKit 0.4.0.x
SyterKit is a bare-metal framework
Loading...
Searching...
No Matches
Enumerations | Functions | Variables
board.c File Reference
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <types.h>
#include <log.h>
#include <common.h>
#include <reg-ncat.h>
#include <sys-clk.h>
#include <mmu.h>
#include <mmc/sys-sdhci.h>
#include <sys-dram.h>
#include <sys-gpio.h>
#include <sys-i2c.h>
#include <sys-sid.h>
#include <sys-spi.h>
#include <sys-uart.h>
Include dependency graph for board.c:

Enumerations

enum  dram_training_type { DRAM_TRAINING_OFF = 0x60 , DRAM_TRAINING_HALF = 0x860 , DRAM_TRAINING_FULL = 0xc60 }
 

Functions

void neon_enable (void)
 
void gicr_set_waker (void)
 
void clean_syterkit_data (void)
 
void rtc_set_vccio_det_spare (void)
 
void set_rpio_power_mode (void)
 
int sunxi_nsi_init (void)
 
void enable_sram_a3 ()
 
void show_chip ()
 

Variables

sunxi_serial_t uart_dbg
 
sunxi_serial_t uart_dbg_1m5
 
sunxi_dma_t sunxi_dma
 
sunxi_spi_t sunxi_spi0
 
sunxi_sdhci_t sdhci0
 
sunxi_sdhci_t sdhci2
 
sunxi_i2c_t i2c_pmu
 
const uint32_t dram_para [32]
 
const char * dram_para_name [2]
 

Enumeration Type Documentation

◆ dram_training_type

Enumerator
DRAM_TRAINING_OFF 
DRAM_TRAINING_HALF 
DRAM_TRAINING_FULL 

Function Documentation

◆ clean_syterkit_data()

void clean_syterkit_data ( void  )

◆ enable_sram_a3()

void enable_sram_a3 ( )

◆ gicr_set_waker()

void gicr_set_waker ( void  )

◆ neon_enable()

void neon_enable ( void  )

◆ rtc_set_vccio_det_spare()

void rtc_set_vccio_det_spare ( void  )

◆ set_rpio_power_mode()

void set_rpio_power_mode ( void  )

◆ show_chip()

void show_chip ( )

◆ sunxi_nsi_init()

int sunxi_nsi_init ( void  )

Variable Documentation

◆ dram_para

const uint32_t dram_para[32]

◆ dram_para_name

const char* dram_para_name[2]
Initial value:
= {
"dram_para00",
"dram_para24",
}

◆ i2c_pmu

sunxi_i2c_t i2c_pmu
Initial value:
= {
.base = SUNXI_RTWI_BASE,
.id = SUNXI_R_I2C0,
.gpio =
{
.gpio_scl = {GPIO_PIN(GPIO_PORTL, 0), GPIO_PERIPH_MUX2},
.gpio_sda = {GPIO_PIN(GPIO_PORTL, 1), GPIO_PERIPH_MUX2},
},
.i2c_clk =
{
.gate_reg_base = SUNXI_RTWI_BRG_REG,
.gate_reg_offset = TWI_DEFAULT_CLK_GATE_OFFSET(0),
.rst_reg_base = SUNXI_RTWI_BRG_REG,
.rst_reg_offset = TWI_DEFAULT_CLK_RST_OFFSET(0),
.parent_clk = 24000000,
},
}
#define SUNXI_RTWI_BRG_REG
Definition reg-ncat.h:61
#define SUNXI_RTWI_BASE
Definition reg-ncat.h:58
@ GPIO_PORTL
Definition sys-gpio.h:50
@ GPIO_PERIPH_MUX2
Definition sys-gpio.h:22
#define GPIO_PIN(x, y)
Definition sys-gpio.h:66
@ SUNXI_R_I2C0
Reserved I2C device 0.
Definition sys-i2c.h:71
#define TWI_DEFAULT_CLK_GATE_OFFSET(x)
Definition sys-i2c.h:135
#define TWI_DEFAULT_CLK_RST_OFFSET(x)
Definition sys-i2c.h:134
@ SUNXI_I2C_SPEED_400K
400 kHz I2C speed.
Definition sys-i2c.h:55

◆ sdhci0

sunxi_sdhci_t sdhci0

◆ sdhci2

sunxi_sdhci_t sdhci2

◆ sunxi_dma

sunxi_dma_t sunxi_dma
Initial value:
= {
.dma_reg_base = SUNXI_DMA_BASE,
.bus_clk =
{
.gate_reg_offset = DMA_DEFAULT_CLK_GATE_OFFSET,
},
.dma_clk =
{
.rst_reg_base = CCU_BASE + CCU_DMA_BGR_REG,
.rst_reg_offset = DMA_DEFAULT_CLK_RST_OFFSET,
.gate_reg_base = CCU_BASE + CCU_DMA_BGR_REG,
.gate_reg_offset = DMA_DEFAULT_CLK_GATE_OFFSET,
},
}
#define CCU_DMA_BGR_REG
Definition reg-ccu.h:64
#define CCU_BASE
Definition reg-ccu.h:8
#define CCU_MBUS_MAT_CLK_GATING_REG
Definition reg-ccu.h:66
#define SUNXI_DMA_BASE
Definition reg-ncat.h:15
#define DMA_DEFAULT_CLK_GATE_OFFSET
Definition sys-dma.h:107
#define DMA_DEFAULT_CLK_RST_OFFSET
Definition sys-dma.h:106

◆ sunxi_spi0

sunxi_spi_t sunxi_spi0
Initial value:
= {
.base = SUNXI_SPI0_BASE,
.id = 0,
.clk_rate = 75 * 1000 * 1000,
.gpio =
{
.gpio_sck = {GPIO_PIN(GPIO_PORTC, 0), GPIO_PERIPH_MUX4},
.gpio_mosi = {GPIO_PIN(GPIO_PORTC, 2), GPIO_PERIPH_MUX4},
.gpio_miso = {GPIO_PIN(GPIO_PORTC, 3), GPIO_PERIPH_MUX4},
.gpio_hold = {GPIO_PIN(GPIO_PORTC, 5), GPIO_PERIPH_MUX4},
},
.spi_clk =
{
.spi_clock_cfg_base = CCU_BASE + CCU_SPI0_CLK_REG,
.spi_clock_factor_n_offset = SPI_CLK_SEL_FACTOR_N_OFF,
.spi_clock_source = SPI_CLK_SEL_PERIPH_300M,
},
.parent_clk_reg =
{
.rst_reg_base = CCU_BASE + CCU_SPI_BGR_REG,
.rst_reg_offset = SPI_DEFAULT_CLK_RST_OFFSET(0),
.gate_reg_base = CCU_BASE + CCU_SPI_BGR_REG,
.gate_reg_offset = SPI_DEFAULT_CLK_GATE_OFFSET(0),
.parent_clk = 300000000,
},
.dma_handle = &sunxi_dma,
}
sunxi_dma_t sunxi_dma
Definition board.c:45
#define CCU_SPI_BGR_REG
Definition reg-ccu.h:74
#define CCU_SPI0_CLK_REG
Definition reg-ccu.h:73
#define SUNXI_SPI0_BASE
Definition reg-ncat.h:40
@ GPIO_PORTC
Definition sys-gpio.h:41
@ GPIO_PERIPH_MUX4
Definition sys-gpio.h:24
#define SPI_CLK_SEL_PERIPH_300M
Selects the SPI peripheral clock to 300 MHz.
Definition sys-spi.h:103
#define SPI_CLK_SEL_FACTOR_N_OFF
Offset for the SPI clock select factor is 8.
Definition sys-spi.h:105
#define SPI_DEFAULT_CLK_GATE_OFFSET(x)
Returns the default clock gate offset, based on the SPI module number (x).
Definition sys-spi.h:107
#define SPI_DEFAULT_CLK_RST_OFFSET(x)
Returns the default clock reset offset, based on the SPI module number (x).
Definition sys-spi.h:106

◆ uart_dbg

sunxi_serial_t uart_dbg
Initial value:
= {
.id = 0,
.baud_rate = UART_BAUDRATE_115200,
.dlen = UART_DLEN_8,
.stop = UART_STOP_BIT_0,
.parity = UART_PARITY_NO,
.gpio_pin =
{
.gpio_rx = {GPIO_PIN(GPIO_PORTB, 10), GPIO_PERIPH_MUX2},
},
.uart_clk =
{
.gate_reg_base = CCU_BASE + CCU_UART_BGR_REG,
.gate_reg_offset = SERIAL_DEFAULT_CLK_GATE_OFFSET(0),
.rst_reg_base = CCU_BASE + CCU_UART_BGR_REG,
.rst_reg_offset = SERIAL_DEFAULT_CLK_RST_OFFSET(0),
},
}
#define CCU_UART_BGR_REG
Definition reg-ccu.h:70
#define SUNXI_UART0_BASE
Definition reg-ncat.h:32
@ UART_STOP_BIT_0
Definition sys-uart.h:41
@ UART_BAUDRATE_115200
Definition sys-uart.h:24
#define SERIAL_DEFAULT_PARENT_CLK
Definition sys-uart.h:99
#define SERIAL_DEFAULT_CLK_RST_OFFSET(x)
Definition sys-uart.h:96
@ UART_PARITY_NO
Definition sys-uart.h:34
@ UART_DLEN_8
Definition sys-uart.h:50
#define SERIAL_DEFAULT_CLK_GATE_OFFSET(x)
Definition sys-uart.h:97
@ GPIO_PORTB
Definition sys-gpio.h:40

◆ uart_dbg_1m5

sunxi_serial_t uart_dbg_1m5
Initial value:
= {
.id = 0,
.baud_rate = UART_BAUDRATE_1500000,
.dlen = UART_DLEN_8,
.stop = UART_STOP_BIT_0,
.parity = UART_PARITY_NO,
.gpio_pin =
{
.gpio_rx = {GPIO_PIN(GPIO_PORTB, 10), GPIO_PERIPH_MUX2},
},
.uart_clk =
{
.gate_reg_base = CCU_BASE + CCU_UART_BGR_REG,
.gate_reg_offset = SERIAL_DEFAULT_CLK_GATE_OFFSET(0),
.rst_reg_base = CCU_BASE + CCU_UART_BGR_REG,
.rst_reg_offset = SERIAL_DEFAULT_CLK_RST_OFFSET(0),
},
}
@ UART_BAUDRATE_1500000
Definition sys-uart.h:28