mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-19 19:34:35 +00:00
mach-snapdragon: implement ft_board_setup() for USB role selection
Some Qualcomm boards have only one USB controller which is muxed between the type-c port and an internal USB hub for type-A and ethernet. We modify the DT for these to force them to host mode in U-Boot. However in Linux DRD role switching is supported (required, even). Use ft_board_setup() to adjust the dr_mode property for these boards. While we're here, define pr_fmt for this file so we can more easily identify log messages. Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
This commit is contained in:
parent
956f6e4de4
commit
e64503f1fc
1 changed files with 20 additions and 0 deletions
|
@ -17,6 +17,8 @@
|
|||
* Author: Caleb Connolly <caleb.connolly@linaro.org>
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) "of_fixup: " fmt
|
||||
|
||||
#include <dt-bindings/input/linux-event-codes.h>
|
||||
#include <dm/of_access.h>
|
||||
#include <dm/of.h>
|
||||
|
@ -153,3 +155,21 @@ void qcom_of_fixup_nodes(void)
|
|||
time_call(fixup_usb_nodes);
|
||||
time_call(fixup_power_domains);
|
||||
}
|
||||
|
||||
int ft_board_setup(void *blob, struct bd_info __maybe_unused *bd)
|
||||
{
|
||||
struct fdt_header *fdt = blob;
|
||||
int node;
|
||||
|
||||
/* We only want to do this fix-up for the RB1 board, quick return for all others */
|
||||
if (!fdt_node_check_compatible(fdt, 0, "qcom,qrb4210-rb2"))
|
||||
return 0;
|
||||
|
||||
fdt_for_each_node_by_compatible(node, blob, 0, "snps,dwc3") {
|
||||
log_debug("%s: Setting 'dr_mode' to OTG\n", fdt_get_name(blob, node, NULL));
|
||||
fdt_setprop_string(fdt, node, "dr_mode", "otg");
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue