author | xiaoliang.wang <xiaoliang.wang@amlogic.com> | 2019-05-15 14:30:03 (GMT) |
---|---|---|
committer | xiaoliang.wang <xiaoliang.wang@amlogic.com> | 2019-05-15 14:30:03 (GMT) |
commit | 0379fd16b90108379d7e8e3397fe19419c48fa2a (patch) | |
tree | 68657fceae613929dbe5703a735575a8eda025e8 | |
parent | 61b68bafe414e2a773b6e5f62365c789701c38f1 (diff) | |
download | uboot-0379fd16b90108379d7e8e3397fe19419c48fa2a.zip uboot-0379fd16b90108379d7e8e3397fe19419c48fa2a.tar.gz uboot-0379fd16b90108379d7e8e3397fe19419c48fa2a.tar.bz2 |
bootloader:sync code base on openlinux nov[2/2]
BUG=132716846
Problem:
no sound card detected for deadpool
Solution:
sync bootloader code base on openlinux nov
Verify:
local build
Change-Id: Ie451b171ec4aed0dba5e06b8cd618f06415f1888
Signed-off-by: xiaoliang.wang <xiaoliang.wang@amlogic.com>
-rw-r--r-- | board/amlogic/g12a_deadpool_v1/g12a_deadpool_v1.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/board/amlogic/g12a_deadpool_v1/g12a_deadpool_v1.c b/board/amlogic/g12a_deadpool_v1/g12a_deadpool_v1.c index 313e75a..5c7ace7 100644 --- a/board/amlogic/g12a_deadpool_v1/g12a_deadpool_v1.c +++ b/board/amlogic/g12a_deadpool_v1/g12a_deadpool_v1.c @@ -33,6 +33,10 @@ #ifdef CONFIG_SYS_I2C_MESON #include <amlogic/i2c.h> #endif +#ifdef CONFIG_PWM_MESON +#include <pwm.h> +#include <amlogic/pwm.h> +#endif #ifdef CONFIG_AML_VPU #include <vpu.h> #endif @@ -57,10 +61,18 @@ #endif DECLARE_GLOBAL_DATA_PTR; +#define P_EE_PCIE_A_CTRL (volatile uint32_t *)(0xff646000 + (0x000 << 2)) //new static eth setup struct eth_board_socket* eth_board_skt; +static void pcie_phy_shutdown(void) +{ + /*power down pcieA*/ + writel(0x20000060, P_HHI_PCIE_PLL_CNTL5); + writel(0x20090496, P_HHI_PCIE_PLL_CNTL0); + writel(0x1d, P_EE_PCIE_A_CTRL); +} int serial_set_pin_port(unsigned long port_base) { @@ -571,6 +583,26 @@ void set_i2c_ao_pinmux(void) } #endif /*end CONFIG_SYS_I2C_MESON*/ +#ifdef CONFIG_PWM_MESON +static const struct meson_pwm_platdata pwm_data[] = { + { PWM_AB, 0xffd1b000, IS_DOUBLE_CHANNEL, IS_BLINK }, + { PWM_CD, 0xffd1a000, IS_DOUBLE_CHANNEL, IS_BLINK }, + { PWM_EF, 0xffd19000, IS_DOUBLE_CHANNEL, IS_BLINK }, + { PWMAO_AB, 0xff807000, IS_DOUBLE_CHANNEL, IS_BLINK }, + { PWMAO_CD, 0xff802000, IS_DOUBLE_CHANNEL, IS_BLINK }, +}; + +U_BOOT_DEVICES(meson_pwm) = { + { "amlogic,general-pwm", &pwm_data[0] }, + { "amlogic,general-pwm", &pwm_data[1] }, + { "amlogic,general-pwm", &pwm_data[2] }, + { "amlogic,general-pwm", &pwm_data[3] }, + { "amlogic,general-pwm", &pwm_data[4] }, +}; +#endif /*end CONFIG_PWM_MESON*/ + +extern void aml_pwm_cal_init(int mode); + int board_init(void) { //Please keep CONFIG_AML_V2_FACTORY_BURN at first place of board_init @@ -592,6 +624,7 @@ int board_init(void) extern int amlnf_init(unsigned char flag); amlnf_init(0); #endif + #ifdef CONFIG_SYS_I2C_MESON set_i2c_ao_pinmux(); #endif @@ -603,6 +636,8 @@ int board_init(void) void aml_config_dtb(void) { cpu_id_t cpuid = get_cpu_id(); + if (MESON_CPU_MAJOR_ID_G12A != cpuid.family_id) + return; run_command("fdt address $dtb_mem_addr", 0); printf("%s %d\n", __func__, __LINE__); @@ -714,6 +749,12 @@ int board_late_init(void) aml_try_factory_sdcard_burning(0, gd->bd); #endif// #ifdef CONFIG_AML_V2_FACTORY_BURN + /* close pcie phy */ + pcie_phy_shutdown(); + + if (MESON_CPU_MAJOR_ID_SM1 == get_cpu_id().family_id) { + setenv("board_defined_bootup", "bootup_Y3"); + } /**/ aml_config_dtb(); return 0; |