forked from CTCaer/hekate
bdk: sdmmc: increase bw priority to SDMMC1 for L4T
This commit is contained in:
parent
bb10b8aea3
commit
795b4ad26e
@ -27,6 +27,11 @@
|
||||
#include <soc/t210.h>
|
||||
#include <utils/util.h>
|
||||
|
||||
#define LA_REGS_OFFSET_T210 0x1284
|
||||
#define LA_REGS_OFFSET_T210B01 0xFA4
|
||||
#define LA_SDMMC1_INDEX 6
|
||||
#define LA_SDMMC4_INDEX 9
|
||||
|
||||
extern volatile nyx_storage_t *nyx_str;
|
||||
|
||||
void (*minerva_cfg)(mtc_config_t *mtc_cfg, void *);
|
||||
@ -140,6 +145,15 @@ void minerva_change_freq(minerva_freq_t freq)
|
||||
}
|
||||
}
|
||||
|
||||
void minerva_sdmmc_la_program(void *table, bool t210b01)
|
||||
{
|
||||
|
||||
u32 *la_scale_regs = (u32 *)(table + (t210b01 ? LA_REGS_OFFSET_T210B01 : LA_REGS_OFFSET_T210));
|
||||
|
||||
// Promote SDMMC1 latency allowance to SDMMC4 (SD to eMMC).
|
||||
la_scale_regs[LA_SDMMC1_INDEX] = la_scale_regs[LA_SDMMC4_INDEX];
|
||||
}
|
||||
|
||||
void minerva_prep_boot_freq()
|
||||
{
|
||||
if (!minerva_cfg)
|
||||
@ -164,6 +178,10 @@ void minerva_prep_boot_l4t(int oc_freq)
|
||||
|
||||
mtc_config_t *mtc_cfg = (mtc_config_t *)&nyx_str->mtc_cfg;
|
||||
|
||||
// Program SDMMC LA regs.
|
||||
for (u32 i = 0; i < mtc_cfg->table_entries; i++)
|
||||
minerva_sdmmc_la_program(&mtc_cfg->mtc_table[i], false);
|
||||
|
||||
// Add OC frequency.
|
||||
if (oc_freq && mtc_cfg->mtc_table[mtc_cfg->table_entries - 1].rate_khz == FREQ_1600)
|
||||
{
|
||||
|
@ -61,6 +61,7 @@ typedef enum
|
||||
extern void (*minerva_cfg)(mtc_config_t *mtc_cfg, void *);
|
||||
u32 minerva_init();
|
||||
void minerva_change_freq(minerva_freq_t freq);
|
||||
void minerva_sdmmc_la_program(void *table, bool t210b01);
|
||||
void minerva_prep_boot_freq();
|
||||
void minerva_prep_boot_l4t(int oc_freq);
|
||||
void minerva_periodic_training();
|
||||
|
Loading…
Reference in New Issue
Block a user