diff mbox series

bus: ti-sysc: Fix missing AM35xx SoC matching

Message ID 20230906093244.99292-1-aford173@gmail.com (mailing list archive)
State New, archived
Headers show
Series bus: ti-sysc: Fix missing AM35xx SoC matching | expand

Commit Message

Adam Ford Sept. 6, 2023, 9:32 a.m. UTC
Commit feaa8baee82a ("bus: ti-sysc: Implement SoC revision handling")
created a list of SoC types searching for strings based on names
and wildcards which associates the SoC to different families.

The OMAP34xx and OMAP35xx are treated as SOC_3430 while
OMAP36xx and OMAP37xx are treated as SOC_3630, but the AM35xx
isn't listed.

The AM35xx is mostly an OMAP3430, and a later commit a12315d6d270
("bus: ti-sysc: Make omap3 gpt12 quirk handling SoC specific") looks
for the SOC type and behaves in a certain way if it's SOC_3430.

This caused a regression on the AM3517 causing it to return two
errors:

 ti-sysc: probe of 48318000.target-module failed with error -16
 ti-sysc: probe of 49032000.target-module failed with error -16

Fix this by treating the AM35xx as a SOC_3430, and the error
conditions will disappear.

Fixes: a12315d6d270 ("bus: ti-sysc: Make omap3 gpt12 quirk handling SoC specific")
Fixes: feaa8baee82a ("bus: ti-sysc: Implement SoC revision handling")

Signed-off-by: Adam Ford <aford173@gmail.com>

Comments

Tony Lindgren Sept. 6, 2023, 11:03 a.m. UTC | #1
* Adam Ford <aford173@gmail.com> [230906 12:33]:
> Fix this by treating the AM35xx as a SOC_3430, and the error
> conditions will disappear.

Looks good to me except let's just add SOC_AM35 to enum sysc_soc rather
than tag am3517 with SOC_3430. We already have checks for SOC_3430 for
several devices and the quirks may not be compatible across AM35 and 3430.

Regards,

Tony
diff mbox series

Patch

diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
index eb4e7bee1e20..5d7779747941 100644
--- a/drivers/bus/ti-sysc.c
+++ b/drivers/bus/ti-sysc.c
@@ -3025,6 +3025,7 @@  static void ti_sysc_idle(struct work_struct *work)
 static const struct soc_device_attribute sysc_soc_match[] = {
 	SOC_FLAG("OMAP242*", SOC_2420),
 	SOC_FLAG("OMAP243*", SOC_2430),
+	SOC_FLAG("AM35*", SOC_3430),
 	SOC_FLAG("OMAP3[45]*", SOC_3430),
 	SOC_FLAG("OMAP3[67]*", SOC_3630),
 	SOC_FLAG("OMAP443*", SOC_4430),