board: qca: make usb mode fixup generic framework

The configuration from SoC (ipq6018, ipq5018, & ipq9574)
specific files is moved to fdt_fixup.c as a result of
this change.

Change-Id: I4f20e1a58ce88aea415debe305e69fb21cb6e162
Signed-off-by: Vandhiadevan Karunamoorthy <quic_vkarunam@quicinc.com>
This commit is contained in:
Vandhiadevan Karunamoorthy 2022-06-23 14:46:34 +05:30 committed by Gerrit - the friendly Code Review server
parent fe643c818e
commit 121a50914d
5 changed files with 32 additions and 94 deletions

View file

@ -896,6 +896,38 @@ __weak void fdt_fixup_runtime_failsafe(void *blob)
return;
}
__weak void ipq_fdt_fixup_usb_device_mode(void *blob)
{
const char *usb_cfg;
usb_cfg = getenv("usb_mode");
if (!usb_cfg)
return;
if (!strncmp(usb_cfg, "peripheral", sizeof("peripheral"))) {
goto peripheral;
} else if (!strncmp(usb_cfg, "diag_gadget", sizeof("diag_gadget"))) {
if (fdt_path_offset(blob, "/soc/qcom,gadget_diag@0") < 0){
parse_fdt_fixup(
"/qti,gadget_diag@0%status%?ok", blob);
} else {
parse_fdt_fixup(
"/soc/qcom,gadget_diag@0%status%?ok", blob);
}
} else {
printf("%s: invalid param for usb_mode\n", __func__);
return;
}
peripheral:
parse_fdt_fixup(
"/soc/usb3@8A00000/dwc3@8A00000%dr_mode%?peripheral",
blob);
parse_fdt_fixup(
"/soc/usb3@8A00000/dwc3@8A00000%maximum-speed%?high-speed",
blob);
}
__weak void ipq_fdt_fixup_socinfo(void *blob)
{
uint32_t cpu_type;

View file

@ -622,11 +622,6 @@ void set_flash_secondary_type(qca_smem_flash_info_t *smem)
return;
};
void ipq_fdt_fixup_usb_device_mode(void *blob)
{
return;
}
#ifdef CONFIG_DEVSOC_EDMA
void devsoc_eth_initialize(void)
{

View file

@ -440,34 +440,6 @@ int apps_iscrashed(void)
return 0;
}
static void __fixup_usb_device_mode(void *blob)
{
parse_fdt_fixup("/soc/usb3@8A00000/dwc3@8A00000%dr_mode%?peripheral", blob);
parse_fdt_fixup("/soc/usb3@8A00000/dwc3@8A00000%maximum-speed%?high-speed", blob);
}
static void fdt_fixup_diag_gadget(void *blob)
{
__fixup_usb_device_mode(blob);
parse_fdt_fixup("/soc/qcom,gadget_diag@0%status%?ok", blob);
}
void ipq_fdt_fixup_usb_device_mode(void *blob)
{
const char *usb_cfg;
usb_cfg = getenv("usb_mode");
if (!usb_cfg)
return;
if (!strncmp(usb_cfg, "peripheral", sizeof("peripheral")))
__fixup_usb_device_mode(blob);
else if (!strncmp(usb_cfg, "diag_gadget", sizeof("diag_gadget")))
fdt_fixup_diag_gadget(blob);
else
printf("%s: invalid param for usb_mode\n", __func__);
}
void fdt_fixup_auto_restart(void *blob)
{
const char *paniconwcssfatal;

View file

@ -790,39 +790,6 @@ int ipq_board_usb_init(void)
}
#endif
static void __fixup_usb_device_mode(void *blob)
{
parse_fdt_fixup("/soc/usb3@8A00000/dwc3@8A00000%dr_mode%?peripheral", blob);
parse_fdt_fixup("/soc/usb3@8A00000/dwc3@8A00000%maximum-speed%?high-speed", blob);
}
static void fdt_fixup_diag_gadget(void *blob)
{
__fixup_usb_device_mode(blob);
if (fdt_path_offset(blob, "/soc/qcom,gadget_diag@0") < 0){
parse_fdt_fixup("/qti,gadget_diag@0%status%?ok", blob);
} else {
parse_fdt_fixup("/soc/qcom,gadget_diag@0%status%?ok", blob);
}
}
void ipq_fdt_fixup_usb_device_mode(void *blob)
{
const char *usb_cfg;
usb_cfg = getenv("usb_mode");
if (!usb_cfg)
return;
if (!strncmp(usb_cfg, "peripheral", sizeof("peripheral")))
__fixup_usb_device_mode(blob);
else if (!strncmp(usb_cfg, "diag_gadget", sizeof("diag_gadget")))
fdt_fixup_diag_gadget(blob);
else
printf("%s: invalid param for usb_mode\n", __func__);
}
void enable_caches(void)
{
qca_smem_flash_info_t *sfi = &qca_smem_flash_info;

View file

@ -420,34 +420,6 @@ int ipq_board_usb_init(void)
}
#endif
static void __fixup_usb_device_mode(void *blob)
{
parse_fdt_fixup("/soc/usb3@8A00000/dwc3@8A00000%dr_mode%?peripheral", blob);
parse_fdt_fixup("/soc/usb3@8A00000/dwc3@8A00000%maximum-speed%?high-speed", blob);
}
static void fdt_fixup_diag_gadget(void *blob)
{
__fixup_usb_device_mode(blob);
parse_fdt_fixup("/qti,gadget_diag@0%status%?ok", blob);
}
void ipq_fdt_fixup_usb_device_mode(void *blob)
{
const char *usb_cfg;
usb_cfg = getenv("usb_mode");
if (!usb_cfg)
return;
if (!strncmp(usb_cfg, "peripheral", sizeof("peripheral")))
__fixup_usb_device_mode(blob);
else if (!strncmp(usb_cfg, "diag_gadget", sizeof("diag_gadget")))
fdt_fixup_diag_gadget(blob);
else
printf("%s: invalid param for usb_mode\n", __func__);
}
int ipq_validate_qfrom_fuse(unsigned int reg_add, int pos)
{
return (readl(reg_add) & (1 << pos));