Hi, On 09/28/2014 05:37 PM, Ian Campbell wrote: > On Sun, 2014-09-28 at 17:23 +0200, Hans de Goede wrote: >> If you take a closer look at the code you will see not all 3 writes are the >> same: >> >> /* Set PLL ldo voltage without this PLL6 does not work properly */ >> writel(PRCM_PLL_CTRL_LDO_DIGITAL_EN | PRCM_PLL_CTRL_LDO_ANALOG_EN | >> PRCM_PLL_CTRL_EXT_OSC_EN | PRCM_PLL_CTRL_LDO_OUT_L(1140) | >> PRCM_PLL_CTRL_LDO_KEY, &prcm->pll_ctrl1); >> writel(PRCM_PLL_CTRL_LDO_DIGITAL_EN | PRCM_PLL_CTRL_LDO_ANALOG_EN | >> PRCM_PLL_CTRL_EXT_OSC_EN | PRCM_PLL_CTRL_LDO_OUT_L(1140) | >> PRCM_PLL_CTRL_LDO_KEY, &prcm->pll_ctrl1); >> writel(PRCM_PLL_CTRL_LDO_DIGITAL_EN | PRCM_PLL_CTRL_LDO_ANALOG_EN | >> PRCM_PLL_CTRL_EXT_OSC_EN | PRCM_PLL_CTRL_LDO_OUT_L(1140), >> &prcm->pll_ctrl1); >> >> This register is locked with a so called "key", the first write is to set >> the key (and has everything else the same in case the key is already >> written). The second write actually makes the changes, and the third write >> clears the key bits. > > Even after staring really hard I still don't see what differs in the > first and second ones ;-)
Right, that is because there is no change between the first 2, I guess using setclr_bits to first only set the key, then only the bits, then only clear the key would be a good idea here :) Regards, Hans _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot