SyterKit 0.4.0.x
SyterKit is a bare-metal framework
Loading...
Searching...
No Matches
Classes | Macros | Functions | Variables
main.c File Reference
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <types.h>
#include <log.h>
#include <common.h>
#include <mmc/sys-sdhci.h>
#include <sys-dram.h>
#include <sys-sdcard.h>
#include <sys-i2c.h>
#include <cli.h>
#include <cli_shell.h>
#include <cli_termesc.h>
Include dependency graph for main.c:

Classes

struct  voltage_config_t
 Voltage configuration structure. More...
 

Macros

#define RES_CTRL_BASE_VAL   0x19190000 /* Base value for resource control registers */
 
#define RES_VAL_MASK   0xF /* Resource configuration value mask */
 
#define DEFAULT_SYS_VOLTAGE   900 /* Default system voltage 0.9V */
 
#define DEFAULT_GPU_VOLTAGE   940 /* Default GPU voltage 0.94V */
 
#define VDD_DCDC1_VOLTAGE   1050 /* DCDC1 voltage 1.05V */
 
#define VDD_3V3_VOLTAGE   3300 /* 3.3V voltage */
 
#define VDD_1V8_VOLTAGE   1800 /* 1.8V voltage */
 
#define EFUSE_ADDR_OFFSET   0x214 /* EFUSE register offset */
 
#define EFUSE_MASK   0xFF0000 /* EFUSE mask */
 
#define EFUSE_EXT_MASK   0xFF000000 /* Extended EFUSE mask */
 
#define EFUSE_SHIFT   16 /* EFUSE shift */
 
#define EFUSE_EXT_SHIFT   24 /* Extended EFUSE shift */
 

Functions

 msh_declare_command (bt)
 
 msh_define_help (bt, "backtrace test", "Usage: bt\n")
 
int cmd_bt (int argc, const char **argv)
 
 msh_declare_command (ddr_test)
 
 msh_define_help (ddr_test, "ddr w/r test", "Usage: ddr_test\n")
 
int cmd_ddr_test (int argc, const char **argv)
 
static void sunxi_res_ctrl_init (void)
 Initialize resource controller.
 
static voltage_config_t get_voltage_config (uint8_t efuse_value)
 Get voltage configuration based on EFUSE value.
 
static void sunxi_board_power_init (void)
 Initialize board power system.
 
int main (void)
 

Variables

sunxi_serial_t uart_dbg
 
sunxi_i2c_t i2c_pmu
 
sunxi_sdhci_t sdhci0
 
uint32_t dram_para [128]
 
const msh_command_entry commands []
 

Macro Definition Documentation

◆ DEFAULT_GPU_VOLTAGE

#define DEFAULT_GPU_VOLTAGE   940 /* Default GPU voltage 0.94V */

◆ DEFAULT_SYS_VOLTAGE

#define DEFAULT_SYS_VOLTAGE   900 /* Default system voltage 0.9V */

◆ EFUSE_ADDR_OFFSET

#define EFUSE_ADDR_OFFSET   0x214 /* EFUSE register offset */

◆ EFUSE_EXT_MASK

#define EFUSE_EXT_MASK   0xFF000000 /* Extended EFUSE mask */

◆ EFUSE_EXT_SHIFT

#define EFUSE_EXT_SHIFT   24 /* Extended EFUSE shift */

◆ EFUSE_MASK

#define EFUSE_MASK   0xFF0000 /* EFUSE mask */

◆ EFUSE_SHIFT

#define EFUSE_SHIFT   16 /* EFUSE shift */

◆ RES_CTRL_BASE_VAL

#define RES_CTRL_BASE_VAL   0x19190000 /* Base value for resource control registers */

◆ RES_VAL_MASK

#define RES_VAL_MASK   0xF /* Resource configuration value mask */

◆ VDD_1V8_VOLTAGE

#define VDD_1V8_VOLTAGE   1800 /* 1.8V voltage */

◆ VDD_3V3_VOLTAGE

#define VDD_3V3_VOLTAGE   3300 /* 3.3V voltage */

◆ VDD_DCDC1_VOLTAGE

#define VDD_DCDC1_VOLTAGE   1050 /* DCDC1 voltage 1.05V */

Function Documentation

◆ cmd_bt()

int cmd_bt ( int  argc,
const char **  argv 
)

◆ cmd_ddr_test()

int cmd_ddr_test ( int  argc,
const char **  argv 
)

◆ get_voltage_config()

static voltage_config_t get_voltage_config ( uint8_t  efuse_value)
static

Get voltage configuration based on EFUSE value.

Parameters
efuse_valueValue read from EFUSE register
Returns
voltage_config_t Voltage configuration structure

◆ main()

int main ( void  )

◆ msh_declare_command() [1/2]

msh_declare_command ( bt  )

◆ msh_declare_command() [2/2]

msh_declare_command ( ddr_test  )

◆ msh_define_help() [1/2]

msh_define_help ( bt  ,
"backtrace test"  ,
"Usage: bt\n"   
)

◆ msh_define_help() [2/2]

msh_define_help ( ddr_test  ,
"ddr w/r test"  ,
"Usage: ddr_test\n"   
)

◆ sunxi_board_power_init()

static void sunxi_board_power_init ( void  )
static

Initialize board power system.

  1. Read EFUSE value to determine voltage configuration
  2. Initialize I2C and PMU chips
  3. Configure each power rail voltage based on SOC version and EFUSE value

◆ sunxi_res_ctrl_init()

static void sunxi_res_ctrl_init ( void  )
static

Initialize resource controller.

Read resource configuration values from SID registers and set corresponding resource control registers including DSI, CSI, USB, EDP, HS_COMBO, and DDR

Variable Documentation

◆ commands

const msh_command_entry commands[]
Initial value:
= {
msh_define_command(ddr_test),
}
#define msh_command_end
Definition cli.h:21
#define msh_define_command(name)
Definition cli.h:33

◆ dram_para

uint32_t dram_para[128]
extern

◆ i2c_pmu

sunxi_i2c_t i2c_pmu
extern

◆ sdhci0

sunxi_sdhci_t sdhci0
extern

◆ uart_dbg

sunxi_serial_t uart_dbg
extern