On 10/1/14, 10:04 AM, Pavel Machek wrote: > Hi! > >>>> + __raw_writel(RSTMGR_MPUMODRST_CPU1, >>>> + rst_manager_base_addr + 0x10); >>> >>> Would it be possible to copy reset manager description struct from >>> u-boot and use it here, instead of raw offset? >> >> I will replace this 0x10 with a macro that reflects how the register is >> named in the register map. > > That would be better than 0x10, but even better would be just copying > > struct socfpga_reset_manager { > u32 status; > u32 ctrl; > u32 counts; > u32 padding1; > u32 mpu_mod_reset; > u32 per_mod_reset; > u32 per2_mod_reset; > u32 brg_mod_reset; > }; > > from u-boot. Unlike macros, structs have advantages that typos lead to > easier-to-see failure modes... (And they are easier to read/parse, > too). >
Copying from uboot sounds good, but I already know that the CPU reset offset is different for our next SOC, Arria 10. The Arria 10 SOC should still be able to use the same MSL as Cyclone5 and Arria5, but with a few differences. One of them being, the CPU1 reset offset is at 0x20 instead of 0x10. So I think having a macro for this one register is a bit cleaner than having to define a whole new struct for Arria10. if (of_machine_is_compatible("altr,socfpga-arria10")) __raw_writel(0, rst_manager_base_addr + 0x20); else __raw_writel(0, rst_manager_base_addr + 0x10); Dinh -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/