Added netbird specific settings
This commit is contained in:
parent
ce337590fc
commit
da86d5f219
|
|
@ -381,7 +381,6 @@ config TARGET_AM335X_NETBIRD
|
||||||
select DM
|
select DM
|
||||||
select DM_SERIAL
|
select DM_SERIAL
|
||||||
select DM_GPIO
|
select DM_GPIO
|
||||||
select TI_I2C_BOARD_DETECT
|
|
||||||
|
|
||||||
config TARGET_AM335X_SL50
|
config TARGET_AM335X_SL50
|
||||||
bool "Support am335x_sl50"
|
bool "Support am335x_sl50"
|
||||||
|
|
|
||||||
|
|
@ -338,6 +338,12 @@ void am33xx_spl_board_init(void)
|
||||||
TPS65217_LDO_VOLTAGE_OUT_3_3,
|
TPS65217_LDO_VOLTAGE_OUT_3_3,
|
||||||
TPS65217_LDO_MASK))
|
TPS65217_LDO_MASK))
|
||||||
puts("tps65217_reg_write failure\n");
|
puts("tps65217_reg_write failure\n");
|
||||||
|
} else if (board_is_nbhw16()) {
|
||||||
|
/* Set CPU speed to 600 MHZ */
|
||||||
|
dpll_mpu_opp100.m = MPUPLL_M_600;
|
||||||
|
|
||||||
|
/* Set CORE Frequencies to OPP100 */
|
||||||
|
do_setup_dpll(&dpll_core_regs, &dpll_core_opp100);
|
||||||
} else {
|
} else {
|
||||||
int sil_rev;
|
int sil_rev;
|
||||||
|
|
||||||
|
|
@ -386,7 +392,7 @@ const struct dpll_params *get_dpll_ddr_params(void)
|
||||||
|
|
||||||
if (board_is_evm_sk())
|
if (board_is_evm_sk())
|
||||||
return &dpll_ddr_evm_sk;
|
return &dpll_ddr_evm_sk;
|
||||||
else if (board_is_bone_lt() || board_is_icev2())
|
else if (board_is_bone_lt() || board_is_icev2() || board_is_nbhw16())
|
||||||
return &dpll_ddr_bone_black;
|
return &dpll_ddr_bone_black;
|
||||||
else if (board_is_evm_15_or_later())
|
else if (board_is_evm_15_or_later())
|
||||||
return &dpll_ddr_evm_sk;
|
return &dpll_ddr_evm_sk;
|
||||||
|
|
@ -473,7 +479,7 @@ void sdram_init(void)
|
||||||
if (board_is_evm_sk())
|
if (board_is_evm_sk())
|
||||||
config_ddr(303, &ioregs_evmsk, &ddr3_data,
|
config_ddr(303, &ioregs_evmsk, &ddr3_data,
|
||||||
&ddr3_cmd_ctrl_data, &ddr3_emif_reg_data, 0);
|
&ddr3_cmd_ctrl_data, &ddr3_emif_reg_data, 0);
|
||||||
else if (board_is_bone_lt())
|
else if (board_is_bone_lt() || board_is_nbhw16())
|
||||||
config_ddr(400, &ioregs_bonelt,
|
config_ddr(400, &ioregs_bonelt,
|
||||||
&ddr3_beagleblack_data,
|
&ddr3_beagleblack_data,
|
||||||
&ddr3_beagleblack_cmd_ctrl_data,
|
&ddr3_beagleblack_cmd_ctrl_data,
|
||||||
|
|
@ -698,6 +704,12 @@ int board_eth_init(bd_t *bis)
|
||||||
writel(MII_MODE_ENABLE, &cdev->miisel);
|
writel(MII_MODE_ENABLE, &cdev->miisel);
|
||||||
cpsw_slaves[0].phy_if = cpsw_slaves[1].phy_if =
|
cpsw_slaves[0].phy_if = cpsw_slaves[1].phy_if =
|
||||||
PHY_INTERFACE_MODE_MII;
|
PHY_INTERFACE_MODE_MII;
|
||||||
|
} else if (board_is_nbhw16()) {
|
||||||
|
writel(RMII_MODE_ENABLE | RMII_CHIPCKL_ENABLE, &cdev->miisel);
|
||||||
|
cpsw_slaves[0].phy_if = PHY_INTERFACE_MODE_RMII;
|
||||||
|
cpsw_slaves[1].phy_if = PHY_INTERFACE_MODE_RMII;
|
||||||
|
cpsw_slaves[0].phy_addr = 0;
|
||||||
|
cpsw_slaves[1].phy_addr = 1;
|
||||||
} else if (board_is_icev2()) {
|
} else if (board_is_icev2()) {
|
||||||
writel(RMII_MODE_ENABLE | RMII_CHIPCKL_ENABLE, &cdev->miisel);
|
writel(RMII_MODE_ENABLE | RMII_CHIPCKL_ENABLE, &cdev->miisel);
|
||||||
cpsw_slaves[0].phy_if = PHY_INTERFACE_MODE_RMII;
|
cpsw_slaves[0].phy_if = PHY_INTERFACE_MODE_RMII;
|
||||||
|
|
@ -765,6 +777,8 @@ int board_fit_config_name_match(const char *name)
|
||||||
return 0;
|
return 0;
|
||||||
else if (board_is_bone_lt() && !strcmp(name, "am335x-boneblack"))
|
else if (board_is_bone_lt() && !strcmp(name, "am335x-boneblack"))
|
||||||
return 0;
|
return 0;
|
||||||
|
else if (board_is_nbhw16() && !strcmp(name, "am335x-nbhw16"))
|
||||||
|
return 0;
|
||||||
else if (board_is_evm_sk() && !strcmp(name, "am335x-evmsk"))
|
else if (board_is_evm_sk() && !strcmp(name, "am335x-evmsk"))
|
||||||
return 0;
|
return 0;
|
||||||
else if (board_is_bbg1() && !strcmp(name, "am335x-bonegreen"))
|
else if (board_is_bbg1() && !strcmp(name, "am335x-bonegreen"))
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,11 @@ static inline int board_is_bone_lt(void)
|
||||||
return board_ti_is("A335BNLT");
|
return board_ti_is("A335BNLT");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int board_is_nbhw16(void)
|
||||||
|
{
|
||||||
|
return board_ti_is("NBHW16");
|
||||||
|
}
|
||||||
|
|
||||||
static inline int board_is_bbg1(void)
|
static inline int board_is_bbg1(void)
|
||||||
{
|
{
|
||||||
return board_is_bone_lt() && !strncmp(board_ti_get_rev(), "BBG1", 4);
|
return board_is_bone_lt() && !strncmp(board_ti_get_rev(), "BBG1", 4);
|
||||||
|
|
|
||||||
|
|
@ -262,6 +262,52 @@ static struct module_pin_mux uart3_icev2_pin_mux[] = {
|
||||||
{-1},
|
{-1},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct module_pin_mux rmii0_pin_mux_netbird[] = {
|
||||||
|
{OFFSET(mdio_clk), MODE(0) | PULLUDEN}, /* MDIO_CLK */
|
||||||
|
{OFFSET(mdio_data), MODE(0) | PULLUP_EN | RXACTIVE }, /* MDIO_DATA */
|
||||||
|
{OFFSET(mii1_crs), MODE(1) | PULLUDEN | RXACTIVE}, /* MII1_CRS */
|
||||||
|
{OFFSET(mii1_rxerr), MODE(1) | PULLUDEN | RXACTIVE}, /* MII1_RXERR */
|
||||||
|
{OFFSET(mii1_txen), MODE(1) | PULLUDEN}, /* MII1_TXEN */
|
||||||
|
{OFFSET(mii1_txd0), MODE(1) | PULLUDEN}, /* MII1_TXD0 */
|
||||||
|
{OFFSET(mii1_txd1), MODE(1) | PULLUDEN}, /* MII1_TXD1 */
|
||||||
|
{OFFSET(mii1_rxd0), MODE(1) | PULLUDEN | RXACTIVE}, /* MII1_RXD0 */
|
||||||
|
{OFFSET(mii1_rxd1), MODE(1) | PULLUDEN | RXACTIVE}, /* MII1_RXD1 */
|
||||||
|
{OFFSET(rmii1_refclk), MODE(0) | PULLUDEN | RXACTIVE}, /* RMII1_REFCLK */
|
||||||
|
{-1},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct module_pin_mux rmii1_pin_mux_netbird[] = {
|
||||||
|
{OFFSET(gpmc_a9), MODE(3) | PULLUDEN | RXACTIVE}, /* MII2_CRS */
|
||||||
|
{OFFSET(gpmc_wpn), MODE(3) | PULLUDEN | RXACTIVE}, /* MII2_RXERR */
|
||||||
|
{OFFSET(gpmc_a0), MODE(3) | PULLUDEN}, /* MII2_TXEN */
|
||||||
|
{OFFSET(gpmc_a5), MODE(3) | PULLUDEN}, /* MII2_TXD0 */
|
||||||
|
{OFFSET(gpmc_a4), MODE(3) | PULLUDEN}, /* MII2_TXD1 */
|
||||||
|
{OFFSET(gpmc_a11), MODE(3) | PULLUDEN | RXACTIVE}, /* MII1_RXD0 */
|
||||||
|
{OFFSET(gpmc_a10), MODE(3) | PULLUDEN | RXACTIVE}, /* MII1_RXD1 */
|
||||||
|
{OFFSET(mii1_col), MODE(1) | PULLUDEN | RXACTIVE}, /* RMII1_REFCLK */
|
||||||
|
{-1},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct module_pin_mux mmc0_sdio_pin_mux_netbird[] = {
|
||||||
|
{OFFSET(mmc0_clk), (MODE(0) | PULLUP_EN | RXACTIVE)}, /* MMC0_CLK */
|
||||||
|
{OFFSET(mmc0_cmd), (MODE(0) | PULLUP_EN | RXACTIVE)}, /* MMC0_CMD */
|
||||||
|
{OFFSET(mmc0_dat0), (MODE(0) | PULLUP_EN | RXACTIVE )}, /* MMC0_DAT0 */
|
||||||
|
{OFFSET(mmc0_dat1), (MODE(0) | PULLUP_EN | RXACTIVE )}, /* MMC0_DAT1 */
|
||||||
|
{OFFSET(mmc0_dat2), (MODE(0) | PULLUP_EN | RXACTIVE )}, /* MMC0_DAT2 */
|
||||||
|
{OFFSET(mmc0_dat3), (MODE(0) | PULLUP_EN | RXACTIVE )}, /* MMC0_DAT3 */
|
||||||
|
{-1},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct module_pin_mux mmc1_emmc_pin_mux_netbird[] = {
|
||||||
|
{OFFSET(gpmc_csn1), (MODE(2) | PULLUP_EN | RXACTIVE)}, /* MMC1_CLK */
|
||||||
|
{OFFSET(gpmc_csn2), (MODE(2) | PULLUP_EN | RXACTIVE)}, /* MMC1_CMD */
|
||||||
|
{OFFSET(gpmc_ad0), (MODE(1) | PULLUP_EN | RXACTIVE )}, /* MMC1_DAT0 */
|
||||||
|
{OFFSET(gpmc_ad1), (MODE(1) | PULLUP_EN | RXACTIVE )}, /* MMC1_DAT1 */
|
||||||
|
{OFFSET(gpmc_ad2), (MODE(1) | PULLUP_EN | RXACTIVE )}, /* MMC1_DAT2 */
|
||||||
|
{OFFSET(gpmc_ad3), (MODE(1) | PULLUP_EN | RXACTIVE )}, /* MMC1_DAT3 */
|
||||||
|
{-1},
|
||||||
|
};
|
||||||
|
|
||||||
#if defined(CONFIG_NOR_BOOT)
|
#if defined(CONFIG_NOR_BOOT)
|
||||||
void enable_norboot_pin_mux(void)
|
void enable_norboot_pin_mux(void)
|
||||||
{
|
{
|
||||||
|
|
@ -390,6 +436,12 @@ void enable_board_pin_mux(void)
|
||||||
#else
|
#else
|
||||||
configure_module_pin_mux(mmc1_pin_mux);
|
configure_module_pin_mux(mmc1_pin_mux);
|
||||||
#endif
|
#endif
|
||||||
|
} else if (board_is_nbhw16()) {
|
||||||
|
/* Netbird board */
|
||||||
|
configure_module_pin_mux(rmii0_pin_mux_netbird);
|
||||||
|
configure_module_pin_mux(rmii1_pin_mux_netbird);
|
||||||
|
configure_module_pin_mux(mmc0_sdio_pin_mux_netbird);
|
||||||
|
configure_module_pin_mux(mmc1_emmc_pin_mux_netbird);
|
||||||
} else if (board_is_icev2()) {
|
} else if (board_is_icev2()) {
|
||||||
configure_module_pin_mux(mmc0_pin_mux);
|
configure_module_pin_mux(mmc0_pin_mux);
|
||||||
configure_module_pin_mux(gpio0_18_pin_mux);
|
configure_module_pin_mux(gpio0_18_pin_mux);
|
||||||
|
|
|
||||||
|
|
@ -4,3 +4,4 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
obj-${CONFIG_TI_I2C_BOARD_DETECT} += board_detect.o
|
obj-${CONFIG_TI_I2C_BOARD_DETECT} += board_detect.o
|
||||||
|
obj-${CONFIG_TARGET_AM335X_NETBIRD} += board_detect_netbird.o
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,80 @@
|
||||||
|
/*
|
||||||
|
* Library to support early TI EVM EEPROM handling
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015-2016 Texas Instruments Incorporated - http://www.ti.com/
|
||||||
|
* Lokesh Vutla
|
||||||
|
* Steve Kipisz
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0+
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <common.h>
|
||||||
|
#include <asm/omap_common.h>
|
||||||
|
#include <i2c.h>
|
||||||
|
|
||||||
|
#include "board_detect.h"
|
||||||
|
|
||||||
|
int __maybe_unused ti_i2c_eeprom_am_get(int bus_addr, int dev_addr)
|
||||||
|
{
|
||||||
|
struct ti_common_eeprom *ep;
|
||||||
|
|
||||||
|
ep = TI_EEPROM_DATA;
|
||||||
|
if (ep->header == TI_EEPROM_HEADER_MAGIC)
|
||||||
|
goto already_read;
|
||||||
|
|
||||||
|
/* Initialize with a known bad marker for i2c fails.. */
|
||||||
|
ep->header = TI_EEPROM_HEADER_MAGIC;
|
||||||
|
strlcpy(ep->name, "NBHW16", TI_EEPROM_HDR_NAME_LEN + 1);
|
||||||
|
strlcpy(ep->version, "0.0", TI_EEPROM_HDR_REV_LEN + 1);
|
||||||
|
strlcpy(ep->serial, "1234", TI_EEPROM_HDR_SERIAL_LEN + 1);
|
||||||
|
strlcpy(ep->config, "", TI_EEPROM_HDR_CONFIG_LEN + 1);
|
||||||
|
|
||||||
|
memset(ep->mac_addr, 0x00, TI_EEPROM_HDR_NO_OF_MAC_ADDR * TI_EEPROM_HDR_ETH_ALEN);
|
||||||
|
|
||||||
|
already_read:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool __maybe_unused board_ti_is(char *name_tag)
|
||||||
|
{
|
||||||
|
struct ti_common_eeprom *ep = TI_EEPROM_DATA;
|
||||||
|
|
||||||
|
if (ep->header == TI_DEAD_EEPROM_MAGIC)
|
||||||
|
return false;
|
||||||
|
return !strncmp(ep->name, name_tag, TI_EEPROM_HDR_NAME_LEN);
|
||||||
|
}
|
||||||
|
|
||||||
|
char * __maybe_unused board_ti_get_rev(void)
|
||||||
|
{
|
||||||
|
struct ti_common_eeprom *ep = TI_EEPROM_DATA;
|
||||||
|
|
||||||
|
if (ep->header == TI_DEAD_EEPROM_MAGIC)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return ep->version;
|
||||||
|
}
|
||||||
|
|
||||||
|
char * __maybe_unused board_ti_get_config(void)
|
||||||
|
{
|
||||||
|
struct ti_common_eeprom *ep = TI_EEPROM_DATA;
|
||||||
|
|
||||||
|
if (ep->header == TI_DEAD_EEPROM_MAGIC)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return ep->config;
|
||||||
|
}
|
||||||
|
|
||||||
|
char * __maybe_unused board_ti_get_name(void)
|
||||||
|
{
|
||||||
|
struct ti_common_eeprom *ep = TI_EEPROM_DATA;
|
||||||
|
|
||||||
|
if (ep->header == TI_DEAD_EEPROM_MAGIC)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return ep->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
void __maybe_unused set_board_info_env(char *name)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue