summaryrefslogtreecommitdiff
authorxiaoliang.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)
commit0379fd16b90108379d7e8e3397fe19419c48fa2a (patch)
tree68657fceae613929dbe5703a735575a8eda025e8
parent61b68bafe414e2a773b6e5f62365c789701c38f1 (diff)
downloaduboot-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>
Diffstat
-rw-r--r--board/amlogic/g12a_deadpool_v1/g12a_deadpool_v1.c41
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;