@@ -2373,6 +2373,9 @@ static int of_dev_hwmod_lookup(struct device_node *np,
2373
2373
* registers. This address is needed early so the OCP registers that
2374
2374
* are part of the device's address space can be ioremapped properly.
2375
2375
*
2376
+ * If SYSC access is not needed, the registers will not be remapped
2377
+ * and non-availability of MPU access is not treated as an error.
2378
+ *
2376
2379
* Returns 0 on success, -EINVAL if an invalid hwmod is passed, and
2377
2380
* -ENXIO on absent or invalid register target address space.
2378
2381
*/
@@ -2387,6 +2390,11 @@ static int __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data,
2387
2390
2388
2391
_save_mpu_port_index (oh );
2389
2392
2393
+ /* if we don't need sysc access we don't need to ioremap */
2394
+ if (!oh -> class -> sysc )
2395
+ return 0 ;
2396
+
2397
+ /* we can't continue without MPU PORT if we need sysc access */
2390
2398
if (oh -> _int_flags & _HWMOD_NO_MPU_PORT )
2391
2399
return - ENXIO ;
2392
2400
@@ -2396,8 +2404,10 @@ static int __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data,
2396
2404
oh -> name );
2397
2405
2398
2406
/* Extract the IO space from device tree blob */
2399
- if (!np )
2407
+ if (!np ) {
2408
+ pr_err ("omap_hwmod: %s: no dt node\n" , oh -> name );
2400
2409
return - ENXIO ;
2410
+ }
2401
2411
2402
2412
va_start = of_iomap (np , index + oh -> mpu_rt_idx );
2403
2413
} else {
@@ -2456,13 +2466,11 @@ static int __init _init(struct omap_hwmod *oh, void *data)
2456
2466
oh -> name , np -> name );
2457
2467
}
2458
2468
2459
- if (oh -> class -> sysc ) {
2460
- r = _init_mpu_rt_base (oh , NULL , index , np );
2461
- if (r < 0 ) {
2462
- WARN (1 , "omap_hwmod: %s: doesn't have mpu register target base\n" ,
2463
- oh -> name );
2464
- return 0 ;
2465
- }
2469
+ r = _init_mpu_rt_base (oh , NULL , index , np );
2470
+ if (r < 0 ) {
2471
+ WARN (1 , "omap_hwmod: %s: doesn't have mpu register target base\n" ,
2472
+ oh -> name );
2473
+ return 0 ;
2466
2474
}
2467
2475
2468
2476
r = _init_clocks (oh , NULL );
0 commit comments