ARM: tegra: set CONFIG_SYS_MMC_MAX_DEVICE
If CONFIG_API is ever to be enabled on Tegra, this define must be set, since api/api_storage.c uses it. A couple of annoyting things about CONFIG_SYS_MMC_MAX_DEVICE 1) It isn't documented in README. The same is true for a lot of similar defines used by api_storage.c. 2) It doesn't represent MAX_DEVICE but rather NUM_DEVICES, since the valid values are 0..n-1 not 0..n. However, I this patch does not address those shortcomings. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Tom Warren <twarren@nvidia.com>
This commit is contained in:
parent
d2a3e91139
commit
f175603f7c
|
@ -14,8 +14,6 @@
|
||||||
/* for mmc_config definition */
|
/* for mmc_config definition */
|
||||||
#include <mmc.h>
|
#include <mmc.h>
|
||||||
|
|
||||||
#define MAX_HOSTS 4 /* Max number of 'hosts'/controllers */
|
|
||||||
|
|
||||||
#ifndef __ASSEMBLY__
|
#ifndef __ASSEMBLY__
|
||||||
struct tegra_mmc {
|
struct tegra_mmc {
|
||||||
unsigned int sysad; /* _SYSTEM_ADDRESS_0 */
|
unsigned int sysad; /* _SYSTEM_ADDRESS_0 */
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
struct mmc_host mmc_host[MAX_HOSTS];
|
struct mmc_host mmc_host[CONFIG_SYS_MMC_MAX_DEVICE];
|
||||||
|
|
||||||
#ifndef CONFIG_OF_CONTROL
|
#ifndef CONFIG_OF_CONTROL
|
||||||
#error "Please enable device tree support to use this driver"
|
#error "Please enable device tree support to use this driver"
|
||||||
|
@ -669,13 +669,14 @@ static int process_nodes(const void *blob, int node_list[], int count)
|
||||||
|
|
||||||
void tegra_mmc_init(void)
|
void tegra_mmc_init(void)
|
||||||
{
|
{
|
||||||
int node_list[MAX_HOSTS], count;
|
int node_list[CONFIG_SYS_MMC_MAX_DEVICE], count;
|
||||||
const void *blob = gd->fdt_blob;
|
const void *blob = gd->fdt_blob;
|
||||||
debug("%s entry\n", __func__);
|
debug("%s entry\n", __func__);
|
||||||
|
|
||||||
/* See if any Tegra124 MMC controllers are present */
|
/* See if any Tegra124 MMC controllers are present */
|
||||||
count = fdtdec_find_aliases_for_id(blob, "sdhci",
|
count = fdtdec_find_aliases_for_id(blob, "sdhci",
|
||||||
COMPAT_NVIDIA_TEGRA124_SDMMC, node_list, MAX_HOSTS);
|
COMPAT_NVIDIA_TEGRA124_SDMMC, node_list,
|
||||||
|
CONFIG_SYS_MMC_MAX_DEVICE);
|
||||||
debug("%s: count of Tegra124 sdhci nodes is %d\n", __func__, count);
|
debug("%s: count of Tegra124 sdhci nodes is %d\n", __func__, count);
|
||||||
if (process_nodes(blob, node_list, count)) {
|
if (process_nodes(blob, node_list, count)) {
|
||||||
printf("%s: Error processing T30 mmc node(s)!\n", __func__);
|
printf("%s: Error processing T30 mmc node(s)!\n", __func__);
|
||||||
|
@ -684,7 +685,8 @@ void tegra_mmc_init(void)
|
||||||
|
|
||||||
/* See if any Tegra30 MMC controllers are present */
|
/* See if any Tegra30 MMC controllers are present */
|
||||||
count = fdtdec_find_aliases_for_id(blob, "sdhci",
|
count = fdtdec_find_aliases_for_id(blob, "sdhci",
|
||||||
COMPAT_NVIDIA_TEGRA30_SDMMC, node_list, MAX_HOSTS);
|
COMPAT_NVIDIA_TEGRA30_SDMMC, node_list,
|
||||||
|
CONFIG_SYS_MMC_MAX_DEVICE);
|
||||||
debug("%s: count of T30 sdhci nodes is %d\n", __func__, count);
|
debug("%s: count of T30 sdhci nodes is %d\n", __func__, count);
|
||||||
if (process_nodes(blob, node_list, count)) {
|
if (process_nodes(blob, node_list, count)) {
|
||||||
printf("%s: Error processing T30 mmc node(s)!\n", __func__);
|
printf("%s: Error processing T30 mmc node(s)!\n", __func__);
|
||||||
|
@ -693,7 +695,8 @@ void tegra_mmc_init(void)
|
||||||
|
|
||||||
/* Now look for any Tegra20 MMC controllers */
|
/* Now look for any Tegra20 MMC controllers */
|
||||||
count = fdtdec_find_aliases_for_id(blob, "sdhci",
|
count = fdtdec_find_aliases_for_id(blob, "sdhci",
|
||||||
COMPAT_NVIDIA_TEGRA20_SDMMC, node_list, MAX_HOSTS);
|
COMPAT_NVIDIA_TEGRA20_SDMMC, node_list,
|
||||||
|
CONFIG_SYS_MMC_MAX_DEVICE);
|
||||||
debug("%s: count of T20 sdhci nodes is %d\n", __func__, count);
|
debug("%s: count of T20 sdhci nodes is %d\n", __func__, count);
|
||||||
if (process_nodes(blob, node_list, count)) {
|
if (process_nodes(blob, node_list, count)) {
|
||||||
printf("%s: Error processing T20 mmc node(s)!\n", __func__);
|
printf("%s: Error processing T20 mmc node(s)!\n", __func__);
|
||||||
|
|
|
@ -47,6 +47,13 @@
|
||||||
#define CONFIG_SYS_NS16550_REG_SIZE (-4)
|
#define CONFIG_SYS_NS16550_REG_SIZE (-4)
|
||||||
#define CONFIG_SYS_NS16550_CLK V_NS16550_CLK
|
#define CONFIG_SYS_NS16550_CLK V_NS16550_CLK
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Common HW configuration.
|
||||||
|
* If this varies between SoCs later, move to tegraNN-common.h
|
||||||
|
* Note: This is number of devices, not max device ID.
|
||||||
|
*/
|
||||||
|
#define CONFIG_SYS_MMC_MAX_DEVICE 4
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* select serial console configuration
|
* select serial console configuration
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue