SyterKit 0.4.0.x
SyterKit is a bare-metal framework
Loading...
Searching...
No Matches
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 <sys-dram.h>
#include <sys-gpio.h>
#include <sys-i2c.h>
#include <sys-sdcard.h>
#include <sys-sid.h>
#include <sys-spi.h>
#include <sys-uart.h>
Include dependency graph for board.c:

Functions

void neon_enable (void)
 
void set_cpu_down (unsigned int cpu)
 
void set_cpu_poweroff (void)
 
void clean_syterkit_data (void)
 

Variables

sunxi_serial_t uart_dbg
 
sunxi_dma_t sunxi_dma
 
sunxi_spi_t sunxi_spi0
 
sdhci_t sdhci0
 
sunxi_i2c_t i2c_pmu
 
const uint32_t dram_para_ddr3 [32]
 
const uint32_t dram_para_lpddr4 [32]
 
uint32_tdram_para = dram_para_lpddr4
 

Function Documentation

◆ clean_syterkit_data()

void clean_syterkit_data ( void  )

◆ neon_enable()

void neon_enable ( void  )

◆ set_cpu_down()

void set_cpu_down ( unsigned int  cpu)

◆ set_cpu_poweroff()

void set_cpu_poweroff ( void  )

Variable Documentation

◆ dram_para

uint32_t* dram_para = dram_para_lpddr4

◆ dram_para_ddr3

const uint32_t dram_para_ddr3[32]

◆ dram_para_lpddr4

const uint32_t dram_para_lpddr4[32]

◆ 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_MUX3},
.gpio_sda = {GPIO_PIN(GPIO_PORTL, 1), GPIO_PERIPH_MUX3},
},
.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_MUX3
Definition sys-gpio.h:23
#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

sdhci_t sdhci0
Initial value:
= {
.name = "sdhci0",
.id = 0,
.voltage = MMC_VDD_27_36,
.width = MMC_BUS_WIDTH_4,
.clock = MMC_CLK_50M,
.removable = 0,
.isspi = FALSE,
.skew_auto_mode = FALSE,
.gpio_clk = {GPIO_PIN(GPIO_PORTF, 2), GPIO_PERIPH_MUX2},
.gpio_cmd = {GPIO_PIN(GPIO_PORTF, 3), GPIO_PERIPH_MUX2},
}
#define CCU_MMC_CTRL_PLL_PERIPH1X
Definition reg-ccu.h:83
#define SUNXI_SMHC0_BASE
Definition reg-ncat.h:27
#define FALSE
Definition common.h:24
@ MMC_BUS_WIDTH_4
Definition sys-sdcard.h:141
@ MMC_VDD_27_36
Definition sys-sdcard.h:135
Definition reg-smhc.h:186
@ GPIO_PORTF
Definition sys-gpio.h:44
@ GPIO_PERIPH_MUX2
Definition sys-gpio.h:22
@ MMC_CLK_50M
Definition sys-mmc.h:289

◆ 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 =
{
},
.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_PORTH
Definition sys-gpio.h:46