* [PATCH v6] usb: dwc3: core: add support for realtek SoCs custom's global register start address
@ 2023-05-05 2:50 Stanley Chang
2023-05-06 1:38 ` Thinh Nguyen
2023-05-11 0:35 ` Thinh Nguyen
0 siblings, 2 replies; 4+ messages in thread
From: Stanley Chang @ 2023-05-05 2:50 UTC (permalink / raw)
To: Thinh Nguyen; +Cc: Stanley Chang, Greg Kroah-Hartman, linux-usb, linux-kernel
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>
---
v5 to v6 change:
Change the compatible name to avoid using the wildcard.
v4 to v5 change:
Use the compatible name of the parent to match this special offset.
v3 to v4 change:
Use the compatible name to specify the global register address offset.
If the compatible name is "snps,dwc3-rtk-soc", then the offset use 0x8100.
Otherwise, the offset is default value 0xc100.
v2 to v3 change:
1. Fix the dtschema validation error.
v1 to v2 change:
1. Change the name of the property "snps,global-regs-starting-offset".
2. Adjust the format of comment.
3. Add initial value of the global_regs_starting_offset
4. Remove the log of dev_info.
---
drivers/usb/dwc3/core.c | 11 +++++++++++
drivers/usb/dwc3/core.h | 2 ++
2 files changed, 13 insertions(+)
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index 0beaab932e7d..278cd1c33841 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -1800,6 +1800,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);
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index d56457c02996..1968638f29ed 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -84,6 +84,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
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v6] usb: dwc3: core: add support for realtek SoCs custom's global register start address
2023-05-05 2:50 [PATCH v6] usb: dwc3: core: add support for realtek SoCs custom's global register start address Stanley Chang
@ 2023-05-06 1:38 ` Thinh Nguyen
2023-05-06 4:14 ` Stanley Chang[昌育德]
2023-05-11 0:35 ` Thinh Nguyen
1 sibling, 1 reply; 4+ messages in thread
From: Thinh Nguyen @ 2023-05-06 1:38 UTC (permalink / raw)
To: Stanley Chang
Cc: Thinh Nguyen, Greg Kroah-Hartman, linux-usb@vger.kernel.org,
linux-kernel@vger.kernel.org
On Fri, May 05, 2023, Stanley Chang wrote:
> 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>
> ---
> v5 to v6 change:
> Change the compatible name to avoid using the wildcard.
>
> v4 to v5 change:
> Use the compatible name of the parent to match this special offset.
>
> v3 to v4 change:
> Use the compatible name to specify the global register address offset.
> If the compatible name is "snps,dwc3-rtk-soc", then the offset use 0x8100.
> Otherwise, the offset is default value 0xc100.
>
> v2 to v3 change:
> 1. Fix the dtschema validation error.
>
> v1 to v2 change:
> 1. Change the name of the property "snps,global-regs-starting-offset".
> 2. Adjust the format of comment.
> 3. Add initial value of the global_regs_starting_offset
> 4. Remove the log of dev_info.
> ---
> drivers/usb/dwc3/core.c | 11 +++++++++++
> drivers/usb/dwc3/core.h | 2 ++
> 2 files changed, 13 insertions(+)
>
> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
> index 0beaab932e7d..278cd1c33841 100644
> --- a/drivers/usb/dwc3/core.c
> +++ b/drivers/usb/dwc3/core.c
> @@ -1800,6 +1800,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")) {
Is your platform already released or is it still under development? Just
curious since the compatible string isn't fixed. Is it going to be
changed in the future?
> + 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);
> diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
> index d56457c02996..1968638f29ed 100644
> --- a/drivers/usb/dwc3/core.h
> +++ b/drivers/usb/dwc3/core.h
> @@ -84,6 +84,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
> --
> 2.34.1
>
Thanks,
Thinh
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [PATCH v6] usb: dwc3: core: add support for realtek SoCs custom's global register start address
2023-05-06 1:38 ` Thinh Nguyen
@ 2023-05-06 4:14 ` Stanley Chang[昌育德]
0 siblings, 0 replies; 4+ messages in thread
From: Stanley Chang[昌育德] @ 2023-05-06 4:14 UTC (permalink / raw)
To: Thinh Nguyen
Cc: Greg Kroah-Hartman, linux-usb@vger.kernel.org,
linux-kernel@vger.kernel.org
Hi Thinh,
> > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index
> > 0beaab932e7d..278cd1c33841 100644
> > --- a/drivers/usb/dwc3/core.c
> > +++ b/drivers/usb/dwc3/core.c
> > @@ -1800,6 +1800,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"))
> > + {
>
> Is your platform already released or is it still under development? Just curious
> since the compatible string isn't fixed. Is it going to be changed in the future?
Yes, our platform is released.
In our driver (the parent of the dwc3 driver), we used the compatible name "Realtek,dwc3".
To support this patch, I will add an alternative name "Realtek,rtd-dwc3" to our driver.
Thanks,
Stanley
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v6] usb: dwc3: core: add support for realtek SoCs custom's global register start address
2023-05-05 2:50 [PATCH v6] usb: dwc3: core: add support for realtek SoCs custom's global register start address Stanley Chang
2023-05-06 1:38 ` Thinh Nguyen
@ 2023-05-11 0:35 ` Thinh Nguyen
1 sibling, 0 replies; 4+ messages in thread
From: Thinh Nguyen @ 2023-05-11 0:35 UTC (permalink / raw)
To: Stanley Chang
Cc: Thinh Nguyen, Greg Kroah-Hartman, linux-usb@vger.kernel.org,
linux-kernel@vger.kernel.org
On Fri, May 05, 2023, Stanley Chang wrote:
> 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>
> ---
> v5 to v6 change:
> Change the compatible name to avoid using the wildcard.
>
> v4 to v5 change:
> Use the compatible name of the parent to match this special offset.
>
> v3 to v4 change:
> Use the compatible name to specify the global register address offset.
> If the compatible name is "snps,dwc3-rtk-soc", then the offset use 0x8100.
> Otherwise, the offset is default value 0xc100.
>
> v2 to v3 change:
> 1. Fix the dtschema validation error.
>
> v1 to v2 change:
> 1. Change the name of the property "snps,global-regs-starting-offset".
> 2. Adjust the format of comment.
> 3. Add initial value of the global_regs_starting_offset
> 4. Remove the log of dev_info.
> ---
> drivers/usb/dwc3/core.c | 11 +++++++++++
> drivers/usb/dwc3/core.h | 2 ++
> 2 files changed, 13 insertions(+)
>
> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
> index 0beaab932e7d..278cd1c33841 100644
> --- a/drivers/usb/dwc3/core.c
> +++ b/drivers/usb/dwc3/core.c
> @@ -1800,6 +1800,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);
> diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
> index d56457c02996..1968638f29ed 100644
> --- a/drivers/usb/dwc3/core.h
> +++ b/drivers/usb/dwc3/core.h
> @@ -84,6 +84,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
> --
> 2.34.1
>
Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Thanks,
Thinh
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-05-11 0:35 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-05 2:50 [PATCH v6] usb: dwc3: core: add support for realtek SoCs custom's global register start address Stanley Chang
2023-05-06 1:38 ` Thinh Nguyen
2023-05-06 4:14 ` Stanley Chang[昌育德]
2023-05-11 0:35 ` Thinh Nguyen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox