[U-Boot] [PATCH] davinci: omapl138_lcdk: fix PLL0 frequency
Mike Looijmans
mike.looijmans at topic.nl
Fri Mar 16 06:26:15 UTC 2018
On 15-03-18 02:36, David Lechner wrote:
> commit 1601dd97edc6 ("davinci: omapl138_lcdk: increase PLL0 frequency")
> changed the PLL0 frequency to 456MHz, which is needed for the LCDC IP
> block. However, in doing so, it caused the PLLOUT clock to be outside
> of the allowable specifications given in the OMAP-L138 data sheet. (It
> says PLLOUT must be 600MHz max). It also uses a PLLM value outside of
> the range given in the TRM (it says PLLM must in the range 0 to 0x1f).
>
> So here is what we have currently:
>
> PLLOUT = 24 / (0 + 1) * (37 + 1) = 912MHz (out of spec)
> ^ ^ ^
> CLKIN PREDIV PLLM (out of spec)
>
> input to PLLDIVn = 912 / (1 + 1) = 456MHz (desired result)
> ^ ^
> PLLOUT POSTDIV
>
> This changes the PLLM value to 18 and the POSTDIV value to 0 so that
> PLLOUT is now within specification but we still get the desired
> result.
>
> PLLOUT = 24 / (0 + 1) * (18 + 1) = 456MHz (within spec)
> ^ ^ ^
> CLKIN PREDIV PLLM
>
> input to PLLDIVn = 456 / (0 + 1) = 456MHz (desired result)
> ^ ^
> PLLOUT POSTDIV
>
These are indeed the correct settings for 456MHz operation, I've used them in
an L138 device a few years ago.
Did you also increase the CPU voltage to 1.3V? This can be done writing to the
I2C power management chip, in my stone age setup I had this piece of code to
do that:
#define TPS6507X_I2C_ADDR 0x48
#define TPS6507X_REG_DEFLDO2 0x17
u8 buf = 0x17;
i2c_write(TPS6507X_I2C_ADDR, TPS6507X_REG_DEFLDO2, 1, &buf, 1)
Without the voltage change, some batches of CPUs will fail to boot properly at
456MHz.
> Fixes: 1601dd97edc6 ("davinci: omapl138_lcdk: increase PLL0 frequency")
> Signed-off-by: David Lechner <david at lechnology.com>
> ---
>
> FYI, I haven't been able to test this patch yet. The changes affect the SPL
> image, which has to be flashed to SPI. I am having trouble with the flash
> utility[1] running on Linux. It gets stuck at:
>
> 0% [ ------------------------------------------------------------ ]
> Programming application into flash...
>
> So, if anyone has some advice on how to make it work or can test the patch,
> that would be helpful.
>
> However, the bootloader on my LCDK is using these values already, so I expect
> this to work as advertized.
>
> [1]: http://processors.wiki.ti.com/index.php/Serial_Boot_and_Flash_Loading_Utility_for_OMAP-L138
>
>
> configs/omapl138_lcdk_defconfig | 1 +
> include/configs/omapl138_lcdk.h | 3 ++-
> 2 files changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/configs/omapl138_lcdk_defconfig b/configs/omapl138_lcdk_defconfig
> index ccb308b..0a2af11 100644
> --- a/configs/omapl138_lcdk_defconfig
> +++ b/configs/omapl138_lcdk_defconfig
> @@ -2,6 +2,7 @@ CONFIG_ARM=y
> CONFIG_ARCH_DAVINCI=y
> CONFIG_SYS_TEXT_BASE=0xc1080000
> CONFIG_TARGET_OMAPL138_LCDK=y
> +CONFIG_SYS_DA850_PLL0_POSTDIV=0
> CONFIG_SYS_DA850_PLL1_PLLDIV3=0x8003
> CONFIG_TI_COMMON_CMD_OPTIONS=y
> CONFIG_SPL_LIBCOMMON_SUPPORT=y
> diff --git a/include/configs/omapl138_lcdk.h b/include/configs/omapl138_lcdk.h
> index ea7bdf1..1e1c66b 100644
> --- a/include/configs/omapl138_lcdk.h
> +++ b/include/configs/omapl138_lcdk.h
> @@ -57,7 +57,8 @@
> * PLL configuration
> */
>
> -#define CONFIG_SYS_DA850_PLL0_PLLM 37
> +/* Requires CONFIG_SYS_DA850_PLL0_POSTDIV=0, set in Kconfig */
> +#define CONFIG_SYS_DA850_PLL0_PLLM 18
> #define CONFIG_SYS_DA850_PLL1_PLLM 21
>
> /*
>
Kind regards,
Mike Looijmans
System Expert
TOPIC Products
Materiaalweg 4, NL-5681 RJ Best
Postbus 440, NL-5680 AK Best
Telefoon: +31 (0) 499 33 69 79
E-mail: mike.looijmans at topicproducts.com
Website: www.topicproducts.com
Please consider the environment before printing this e-mail
More information about the U-Boot
mailing list