mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-25 12:00:22 +09:00
UPSTREAM: usb: dwc3: core: add support for realtek SoCs custom's global register start address
The Realtek RTD SoCs were designed with the global register address
offset at 0x8100. The default address offset is constant at
DWC3_GLOBALS_REGS_START (0xc100). Therefore, add a check if the
compatible name of the parent is realtek,rtd-dwc3, then global
register start address will remap to 0x8100.
Signed-off-by: Stanley Chang <stanley_chang@realtek.com>
Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Link: https://lore.kernel.org/r/20230505025104.18321-1-stanley_chang@realtek.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bug: 286930198
(cherry picked from commit ec5eb43813
git: //git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-next)
Change-Id: I436a3a3bd79696764ccd2fad104182ae8a1c9006
Signed-off-by: Stanley Chang <stanley_chang@realtek.com>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
2c2c2503ed
commit
7b23f0d62a
@@ -1639,6 +1639,17 @@ static int dwc3_probe(struct platform_device *pdev)
|
||||
dwc_res = *res;
|
||||
dwc_res.start += DWC3_GLOBALS_REGS_START;
|
||||
|
||||
if (dev->of_node) {
|
||||
struct device_node *parent = of_get_parent(dev->of_node);
|
||||
|
||||
if (of_device_is_compatible(parent, "realtek,rtd-dwc3")) {
|
||||
dwc_res.start -= DWC3_GLOBALS_REGS_START;
|
||||
dwc_res.start += DWC3_RTK_RTD_GLOBALS_REGS_START;
|
||||
}
|
||||
|
||||
of_node_put(parent);
|
||||
}
|
||||
|
||||
regs = devm_ioremap_resource(dev, &dwc_res);
|
||||
if (IS_ERR(regs))
|
||||
return PTR_ERR(regs);
|
||||
|
||||
@@ -85,6 +85,8 @@
|
||||
#define DWC3_OTG_REGS_START 0xcc00
|
||||
#define DWC3_OTG_REGS_END 0xccff
|
||||
|
||||
#define DWC3_RTK_RTD_GLOBALS_REGS_START 0x8100
|
||||
|
||||
/* Global Registers */
|
||||
#define DWC3_GSBUSCFG0 0xc100
|
||||
#define DWC3_GSBUSCFG1 0xc104
|
||||
|
||||
Reference in New Issue
Block a user