Skip to content

Commit 11729ca

Browse files
aford173tmlind
authored andcommitted
bus: ti-sysc: Fix missing AM35xx SoC matching
Commit feaa8ba ("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 a12315d ("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 creating SOC_AM35 and inserting it between the SOC_3430 and SOC_3630. If it is treaed the same way as the SOC_3430 when checking the status of sysc_check_active_timer, the error conditions will disappear. Fixes: a12315d ("bus: ti-sysc: Make omap3 gpt12 quirk handling SoC specific") Fixes: feaa8ba ("bus: ti-sysc: Implement SoC revision handling") Signed-off-by: Adam Ford <aford173@gmail.com> Message-ID: <20230906233442.270835-1-aford173@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
1 parent d929b2b commit 11729ca

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

drivers/bus/ti-sysc.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ enum sysc_soc {
3838
SOC_2420,
3939
SOC_2430,
4040
SOC_3430,
41+
SOC_AM35,
4142
SOC_3630,
4243
SOC_4430,
4344
SOC_4460,
@@ -1862,7 +1863,7 @@ static void sysc_pre_reset_quirk_dss(struct sysc *ddata)
18621863
dev_warn(ddata->dev, "%s: timed out %08x !+ %08x\n",
18631864
__func__, val, irq_mask);
18641865

1865-
if (sysc_soc->soc == SOC_3430) {
1866+
if (sysc_soc->soc == SOC_3430 || sysc_soc->soc == SOC_AM35) {
18661867
/* Clear DSS_SDI_CONTROL */
18671868
sysc_write(ddata, 0x44, 0);
18681869

@@ -3024,6 +3025,7 @@ static void ti_sysc_idle(struct work_struct *work)
30243025
static const struct soc_device_attribute sysc_soc_match[] = {
30253026
SOC_FLAG("OMAP242*", SOC_2420),
30263027
SOC_FLAG("OMAP243*", SOC_2430),
3028+
SOC_FLAG("AM35*", SOC_AM35),
30273029
SOC_FLAG("OMAP3[45]*", SOC_3430),
30283030
SOC_FLAG("OMAP3[67]*", SOC_3630),
30293031
SOC_FLAG("OMAP443*", SOC_4430),
@@ -3228,7 +3230,7 @@ static int sysc_check_active_timer(struct sysc *ddata)
32283230
* can be dropped if we stop supporting old beagleboard revisions
32293231
* A to B4 at some point.
32303232
*/
3231-
if (sysc_soc->soc == SOC_3430)
3233+
if (sysc_soc->soc == SOC_3430 || sysc_soc->soc == SOC_AM35)
32323234
error = -ENXIO;
32333235
else
32343236
error = -EBUSY;

0 commit comments

Comments
 (0)