Re: [PATCH v3 3/8] clk: samsung: add BPLL rate table for Exynos 5422 SoC

2019-02-11 Thread Chanwoo Choi
Hi Lukasz,

On 19. 2. 11. 오후 7:21, Lukasz Luba wrote:
> Hi Chanwoo,
> 
> On 2/3/19 8:54 AM, Chanwoo Choi wrote:
>> Hi Lukasz,
>>
>> 2019년 2월 1일 (금) 오후 11:22, Lukasz Luba 님이 작성:
>>
>>>
>>> Hi Chanwoo,
>>>
>>> On 2/1/19 9:44 AM, Chanwoo Choi wrote:
 Hi,

 On 19. 1. 31. 오후 5:49, Lukasz Luba wrote:
> Add new table rate for BPLL for Exynos5422 SoC supporting Dynamic Memory
> Controller frequencies for driver's DRAM timings.
>
> CC: Sylwester Nawrocki 
> CC: Chanwoo Choi 
> CC: Michael Turquette 
> CC: Stephen Boyd 
> CC: Kukjin Kim 
> CC: Krzysztof Kozlowski 
> CC: linux-samsung-...@vger.kernel.org
> CC: linux-...@vger.kernel.org
> CC: linux-arm-ker...@lists.infradead.org
> CC: linux-kernel@vger.kernel.org
> Signed-off-by: Lukasz Luba 
> ---
>drivers/clk/samsung/clk-exynos5420.c | 15 ++-
>1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/clk/samsung/clk-exynos5420.c 
> b/drivers/clk/samsung/clk-exynos5420.c
> index 3e87421..8bf9579 100644
> --- a/drivers/clk/samsung/clk-exynos5420.c
> +++ b/drivers/clk/samsung/clk-exynos5420.c
> @@ -1325,6 +1325,19 @@ static const struct samsung_pll_rate_table 
> exynos5420_pll2550x_24mhz_tbl[] __ini
>   PLL_35XX_RATE(24 * MHZ, 2,  200, 3, 3),
>};
>
> +static const struct samsung_pll_rate_table exynos5422_bpll_rate_table[] 
> = {
> +PLL_35XX_RATE(24 * MHZ, 93300, 311, 4, 1),
> +PLL_35XX_RATE(24 * MHZ, 82500, 275, 4, 1),
> +PLL_35XX_RATE(24 * MHZ, 72800, 182, 3, 1),
> +PLL_35XX_RATE(24 * MHZ, 63300, 211, 4, 1),
> +PLL_35XX_RATE(24 * MHZ, 54300, 181, 2, 2),
> +PLL_35XX_RATE(24 * MHZ, 41300, 413, 6, 2),
> +PLL_35XX_RATE(24 * MHZ, 27500, 275, 3, 3),
> +PLL_35XX_RATE(24 * MHZ, 20600, 206, 3, 3),
> +PLL_35XX_RATE(24 * MHZ, 16500, 110, 2, 3),
> +PLL_35XX_RATE(24 * MHZ, 13800, 184, 2, 4),

 Except for 825Mhz, I can't find the target frequency
 on Exynos5422 TRM document. Usually, Exynos TRM specified
 the supported stable clocks. It means that undefined clocks
 are not stable as I knew. Where do you find them?

 When I calculated the PLL frequency with PMS value, it is correct.
 But, just we need to check the reference of undefined clocks on TRM
 in order to guarantee the stable operation.
>>> They values live in vendor code for Android.
>>> I have tested the DMC & DDR with these ratios in stress scenarios
>>> for a few days and it was stable.
>>
>> If possible, please share the url of original vendor code.
> Here is the vendor code for the BPLL values:
> https://github.com/hardkernel/linux/blob/odroidxu3-3.10.y-android/drivers/clk/samsung/clk-exynos5422.c#L2026

Thanks for sharing.

bpll_rate_table has two different supported frequency
according to exynos5422 revision as following:
But, this patch only has only one frequency set
for CONFIG_SOC_EXYNOS5422_REV_0.

Could you guarantee that all Exynos5422-based Odroid-xu3 board
has CONFIG_SOC_EXYNOS5422_REV_0 ersion? If not guaranteed,
some board might be fault because of using the unsupported
frequencies.

It is dangerous and unstable to use the unsupported frequencies to SoC.

struct samsung_pll_rate_table bpll_rate_table[] = {
/* rate p   m   s   k */
#ifdef CONFIG_SOC_EXYNOS5422_REV_0
{ 93300U,   4,  311,1,  0},
{ 92500U,   4,  307,1,  0},
{ 82500U,   4,  275,1,  0},
{ 72800U,   3,  182,1,  0},
{ 63300U,   4,  211,1,  0},
{ 54300U,   2,  181,2,  0},
{ 41300U,   6,  413,2,  0},
{ 27500U,   3,  275,3,  0},
{ 20600U,   3,  206,3,  0},
{ 16500U,   2,  110,3,  0},
{ 13800U,   2,  184,4,  0},
#else
{ 93300U,   4,  311,1,  0},
{ 8U,   3,  200,1,  0},
{ 73300U,   2,  122,1,  0},
{ 66700U,   2,  111,1,  0},
{ 53300U,   3,  266,2,  0},
{ 4U,   3,  200,2,  0},
{ 26600U,   3,  266,3,  0},
{ 2U,   3,  200,3,  0},
{ 16000U,   3,  160,3,  0},
#endif
};


> 
> Regards,
> Lukasz
>>
>>>

 Remove 933/138Mhz because exynos5433-dmc.c doesn't use 933Mhz and 138Mhz
 and also Exynos5422 TRM doesn't define 933/138Mhz on pll table.
>>> OK, I will remove them.

> +};
> +
>static const struct samsung_pll_rate_table exynos5420_epll_24mhz_tbl[] 
> = {
>   PLL_36XX_RATE(24 * MHZ, 6U, 100, 2, 1, 0),
>   PLL_36XX_RATE(24 * MHZ, 4U, 200, 3, 2, 0),
> @@ -1467,7 +1480,7 @@ static void __init exynos5x_clk_init(struct 
> device_node *np,
>   exynos5x_plls[apll].rate_table = 
> 

Re: [PATCH v3 3/8] clk: samsung: add BPLL rate table for Exynos 5422 SoC

2019-02-11 Thread Lukasz Luba
Hi Chanwoo,

On 2/3/19 8:54 AM, Chanwoo Choi wrote:
> Hi Lukasz,
> 
> 2019년 2월 1일 (금) 오후 11:22, Lukasz Luba 님이 작성:
> 
>>
>> Hi Chanwoo,
>>
>> On 2/1/19 9:44 AM, Chanwoo Choi wrote:
>>> Hi,
>>>
>>> On 19. 1. 31. 오후 5:49, Lukasz Luba wrote:
 Add new table rate for BPLL for Exynos5422 SoC supporting Dynamic Memory
 Controller frequencies for driver's DRAM timings.

 CC: Sylwester Nawrocki 
 CC: Chanwoo Choi 
 CC: Michael Turquette 
 CC: Stephen Boyd 
 CC: Kukjin Kim 
 CC: Krzysztof Kozlowski 
 CC: linux-samsung-...@vger.kernel.org
 CC: linux-...@vger.kernel.org
 CC: linux-arm-ker...@lists.infradead.org
 CC: linux-kernel@vger.kernel.org
 Signed-off-by: Lukasz Luba 
 ---
drivers/clk/samsung/clk-exynos5420.c | 15 ++-
1 file changed, 14 insertions(+), 1 deletion(-)

 diff --git a/drivers/clk/samsung/clk-exynos5420.c 
 b/drivers/clk/samsung/clk-exynos5420.c
 index 3e87421..8bf9579 100644
 --- a/drivers/clk/samsung/clk-exynos5420.c
 +++ b/drivers/clk/samsung/clk-exynos5420.c
 @@ -1325,6 +1325,19 @@ static const struct samsung_pll_rate_table 
 exynos5420_pll2550x_24mhz_tbl[] __ini
   PLL_35XX_RATE(24 * MHZ, 2,  200, 3, 3),
};

 +static const struct samsung_pll_rate_table exynos5422_bpll_rate_table[] = 
 {
 +PLL_35XX_RATE(24 * MHZ, 93300, 311, 4, 1),
 +PLL_35XX_RATE(24 * MHZ, 82500, 275, 4, 1),
 +PLL_35XX_RATE(24 * MHZ, 72800, 182, 3, 1),
 +PLL_35XX_RATE(24 * MHZ, 63300, 211, 4, 1),
 +PLL_35XX_RATE(24 * MHZ, 54300, 181, 2, 2),
 +PLL_35XX_RATE(24 * MHZ, 41300, 413, 6, 2),
 +PLL_35XX_RATE(24 * MHZ, 27500, 275, 3, 3),
 +PLL_35XX_RATE(24 * MHZ, 20600, 206, 3, 3),
 +PLL_35XX_RATE(24 * MHZ, 16500, 110, 2, 3),
 +PLL_35XX_RATE(24 * MHZ, 13800, 184, 2, 4),
>>>
>>> Except for 825Mhz, I can't find the target frequency
>>> on Exynos5422 TRM document. Usually, Exynos TRM specified
>>> the supported stable clocks. It means that undefined clocks
>>> are not stable as I knew. Where do you find them?
>>>
>>> When I calculated the PLL frequency with PMS value, it is correct.
>>> But, just we need to check the reference of undefined clocks on TRM
>>> in order to guarantee the stable operation.
>> They values live in vendor code for Android.
>> I have tested the DMC & DDR with these ratios in stress scenarios
>> for a few days and it was stable.
> 
> If possible, please share the url of original vendor code.
Here is the vendor code for the BPLL values:
https://github.com/hardkernel/linux/blob/odroidxu3-3.10.y-android/drivers/clk/samsung/clk-exynos5422.c#L2026

Regards,
Lukasz
> 
>>
>>>
>>> Remove 933/138Mhz because exynos5433-dmc.c doesn't use 933Mhz and 138Mhz
>>> and also Exynos5422 TRM doesn't define 933/138Mhz on pll table.
>> OK, I will remove them.
>>>
 +};
 +
static const struct samsung_pll_rate_table exynos5420_epll_24mhz_tbl[] 
 = {
   PLL_36XX_RATE(24 * MHZ, 6U, 100, 2, 1, 0),
   PLL_36XX_RATE(24 * MHZ, 4U, 200, 3, 2, 0),
 @@ -1467,7 +1480,7 @@ static void __init exynos5x_clk_init(struct 
 device_node *np,
   exynos5x_plls[apll].rate_table = 
 exynos5420_pll2550x_24mhz_tbl;
   exynos5x_plls[epll].rate_table = exynos5420_epll_24mhz_tbl;
   exynos5x_plls[kpll].rate_table = 
 exynos5420_pll2550x_24mhz_tbl;
 -exynos5x_plls[bpll].rate_table = 
 exynos5420_pll2550x_24mhz_tbl;
 +exynos5x_plls[bpll].rate_table = exynos5422_bpll_rate_table;
>>>
>>> Exynos5422 used the same PLL table for apll, kpll, bpll and so on.
>>> You don't need to make the separate pll table. Just add new entries
>>> to exynos5420_pll2550x_24mhz_tbl table.
>> OK, I will extend the exynos5420_pll2550x_24mhz_tbl table.
>>
>> In v4 patch set, it will be fixed.
>>
>> Regards,
>> Lukasz
>>>
   }

   samsung_clk_register_pll(ctx, exynos5x_plls, 
 ARRAY_SIZE(exynos5x_plls),

>>>
> 
> 
> 
> --
> Best Regards,
> Chanwoo Choi
> Samsung Electronics
> 
> 


Re: [PATCH v3 3/8] clk: samsung: add BPLL rate table for Exynos 5422 SoC

2019-02-02 Thread Chanwoo Choi
Hi Lukasz,

2019년 2월 1일 (금) 오후 11:22, Lukasz Luba 님이 작성:

>
> Hi Chanwoo,
>
> On 2/1/19 9:44 AM, Chanwoo Choi wrote:
> > Hi,
> >
> > On 19. 1. 31. 오후 5:49, Lukasz Luba wrote:
> >> Add new table rate for BPLL for Exynos5422 SoC supporting Dynamic Memory
> >> Controller frequencies for driver's DRAM timings.
> >>
> >> CC: Sylwester Nawrocki 
> >> CC: Chanwoo Choi 
> >> CC: Michael Turquette 
> >> CC: Stephen Boyd 
> >> CC: Kukjin Kim 
> >> CC: Krzysztof Kozlowski 
> >> CC: linux-samsung-...@vger.kernel.org
> >> CC: linux-...@vger.kernel.org
> >> CC: linux-arm-ker...@lists.infradead.org
> >> CC: linux-kernel@vger.kernel.org
> >> Signed-off-by: Lukasz Luba 
> >> ---
> >>   drivers/clk/samsung/clk-exynos5420.c | 15 ++-
> >>   1 file changed, 14 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/clk/samsung/clk-exynos5420.c 
> >> b/drivers/clk/samsung/clk-exynos5420.c
> >> index 3e87421..8bf9579 100644
> >> --- a/drivers/clk/samsung/clk-exynos5420.c
> >> +++ b/drivers/clk/samsung/clk-exynos5420.c
> >> @@ -1325,6 +1325,19 @@ static const struct samsung_pll_rate_table 
> >> exynos5420_pll2550x_24mhz_tbl[] __ini
> >>  PLL_35XX_RATE(24 * MHZ, 2,  200, 3, 3),
> >>   };
> >>
> >> +static const struct samsung_pll_rate_table exynos5422_bpll_rate_table[] = 
> >> {
> >> +PLL_35XX_RATE(24 * MHZ, 93300, 311, 4, 1),
> >> +PLL_35XX_RATE(24 * MHZ, 82500, 275, 4, 1),
> >> +PLL_35XX_RATE(24 * MHZ, 72800, 182, 3, 1),
> >> +PLL_35XX_RATE(24 * MHZ, 63300, 211, 4, 1),
> >> +PLL_35XX_RATE(24 * MHZ, 54300, 181, 2, 2),
> >> +PLL_35XX_RATE(24 * MHZ, 41300, 413, 6, 2),
> >> +PLL_35XX_RATE(24 * MHZ, 27500, 275, 3, 3),
> >> +PLL_35XX_RATE(24 * MHZ, 20600, 206, 3, 3),
> >> +PLL_35XX_RATE(24 * MHZ, 16500, 110, 2, 3),
> >> +PLL_35XX_RATE(24 * MHZ, 13800, 184, 2, 4),
> >
> > Except for 825Mhz, I can't find the target frequency
> > on Exynos5422 TRM document. Usually, Exynos TRM specified
> > the supported stable clocks. It means that undefined clocks
> > are not stable as I knew. Where do you find them?
> >
> > When I calculated the PLL frequency with PMS value, it is correct.
> > But, just we need to check the reference of undefined clocks on TRM
> > in order to guarantee the stable operation.
> They values live in vendor code for Android.
> I have tested the DMC & DDR with these ratios in stress scenarios
> for a few days and it was stable.

If possible, please share the url of original vendor code.

>
> >
> > Remove 933/138Mhz because exynos5433-dmc.c doesn't use 933Mhz and 138Mhz
> > and also Exynos5422 TRM doesn't define 933/138Mhz on pll table.
> OK, I will remove them.
> >
> >> +};
> >> +
> >>   static const struct samsung_pll_rate_table exynos5420_epll_24mhz_tbl[] = 
> >> {
> >>  PLL_36XX_RATE(24 * MHZ, 6U, 100, 2, 1, 0),
> >>  PLL_36XX_RATE(24 * MHZ, 4U, 200, 3, 2, 0),
> >> @@ -1467,7 +1480,7 @@ static void __init exynos5x_clk_init(struct 
> >> device_node *np,
> >>  exynos5x_plls[apll].rate_table = 
> >> exynos5420_pll2550x_24mhz_tbl;
> >>  exynos5x_plls[epll].rate_table = exynos5420_epll_24mhz_tbl;
> >>  exynos5x_plls[kpll].rate_table = 
> >> exynos5420_pll2550x_24mhz_tbl;
> >> -exynos5x_plls[bpll].rate_table = 
> >> exynos5420_pll2550x_24mhz_tbl;
> >> +exynos5x_plls[bpll].rate_table = exynos5422_bpll_rate_table;
> >
> > Exynos5422 used the same PLL table for apll, kpll, bpll and so on.
> > You don't need to make the separate pll table. Just add new entries
> > to exynos5420_pll2550x_24mhz_tbl table.
> OK, I will extend the exynos5420_pll2550x_24mhz_tbl table.
>
> In v4 patch set, it will be fixed.
>
> Regards,
> Lukasz
> >
> >>  }
> >>
> >>  samsung_clk_register_pll(ctx, exynos5x_plls, 
> >> ARRAY_SIZE(exynos5x_plls),
> >>
> >



--
Best Regards,
Chanwoo Choi
Samsung Electronics


Re: [PATCH v3 3/8] clk: samsung: add BPLL rate table for Exynos 5422 SoC

2019-02-01 Thread Lukasz Luba
Hi Sylwester,

On 2/1/19 3:19 PM, Sylwester Nawrocki wrote:
> On 2/1/19 14:56, Lukasz Luba wrote:
>>> Exynos5422 used the same PLL table for apll, kpll, bpll and so on.
>>> You don't need to make the separate pll table. Just add new entries
>>> to exynos5420_pll2550x_24mhz_tbl table.
>> OK, I will extend the exynos5420_pll2550x_24mhz_tbl table.
>>
>> In v4 patch set, it will be fixed.
> 
> I would prefer to keep the rate table separate for BPLL, until correctness
> of new rates introduced in the patch and their applicability to the other PLLs
> is confirmed by the hardware team and verified in tests.
Good point, I share the same opinion. So, this new table for BPLL will stay.
Do you agree Chanwoo?
The BPLL is only used only by DMC.

Regards,
Lukasz
> 


Re: [PATCH v3 3/8] clk: samsung: add BPLL rate table for Exynos 5422 SoC

2019-02-01 Thread Sylwester Nawrocki
On 2/1/19 14:56, Lukasz Luba wrote:
>> Exynos5422 used the same PLL table for apll, kpll, bpll and so on.
>> You don't need to make the separate pll table. Just add new entries
>> to exynos5420_pll2550x_24mhz_tbl table.
> OK, I will extend the exynos5420_pll2550x_24mhz_tbl table.
> 
> In v4 patch set, it will be fixed.

I would prefer to keep the rate table separate for BPLL, until correctness
of new rates introduced in the patch and their applicability to the other PLLs
is confirmed by the hardware team and verified in tests.


-- 
Regards,
Sylwester


Re: [PATCH v3 3/8] clk: samsung: add BPLL rate table for Exynos 5422 SoC

2019-02-01 Thread Lukasz Luba
Hi Chanwoo,

On 2/1/19 9:44 AM, Chanwoo Choi wrote:
> Hi,
> 
> On 19. 1. 31. 오후 5:49, Lukasz Luba wrote:
>> Add new table rate for BPLL for Exynos5422 SoC supporting Dynamic Memory
>> Controller frequencies for driver's DRAM timings.
>>
>> CC: Sylwester Nawrocki 
>> CC: Chanwoo Choi 
>> CC: Michael Turquette 
>> CC: Stephen Boyd 
>> CC: Kukjin Kim 
>> CC: Krzysztof Kozlowski 
>> CC: linux-samsung-...@vger.kernel.org
>> CC: linux-...@vger.kernel.org
>> CC: linux-arm-ker...@lists.infradead.org
>> CC: linux-kernel@vger.kernel.org
>> Signed-off-by: Lukasz Luba 
>> ---
>>   drivers/clk/samsung/clk-exynos5420.c | 15 ++-
>>   1 file changed, 14 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/clk/samsung/clk-exynos5420.c 
>> b/drivers/clk/samsung/clk-exynos5420.c
>> index 3e87421..8bf9579 100644
>> --- a/drivers/clk/samsung/clk-exynos5420.c
>> +++ b/drivers/clk/samsung/clk-exynos5420.c
>> @@ -1325,6 +1325,19 @@ static const struct samsung_pll_rate_table 
>> exynos5420_pll2550x_24mhz_tbl[] __ini
>>  PLL_35XX_RATE(24 * MHZ, 2,  200, 3, 3),
>>   };
>>   
>> +static const struct samsung_pll_rate_table exynos5422_bpll_rate_table[] = {
>> +PLL_35XX_RATE(24 * MHZ, 93300, 311, 4, 1),
>> +PLL_35XX_RATE(24 * MHZ, 82500, 275, 4, 1),
>> +PLL_35XX_RATE(24 * MHZ, 72800, 182, 3, 1),
>> +PLL_35XX_RATE(24 * MHZ, 63300, 211, 4, 1),
>> +PLL_35XX_RATE(24 * MHZ, 54300, 181, 2, 2),
>> +PLL_35XX_RATE(24 * MHZ, 41300, 413, 6, 2),
>> +PLL_35XX_RATE(24 * MHZ, 27500, 275, 3, 3),
>> +PLL_35XX_RATE(24 * MHZ, 20600, 206, 3, 3),
>> +PLL_35XX_RATE(24 * MHZ, 16500, 110, 2, 3),
>> +PLL_35XX_RATE(24 * MHZ, 13800, 184, 2, 4),
> 
> Except for 825Mhz, I can't find the target frequency
> on Exynos5422 TRM document. Usually, Exynos TRM specified
> the supported stable clocks. It means that undefined clocks
> are not stable as I knew. Where do you find them?
> 
> When I calculated the PLL frequency with PMS value, it is correct.
> But, just we need to check the reference of undefined clocks on TRM
> in order to guarantee the stable operation.
They values live in vendor code for Android.
I have tested the DMC & DDR with these ratios in stress scenarios
for a few days and it was stable.

> 
> Remove 933/138Mhz because exynos5433-dmc.c doesn't use 933Mhz and 138Mhz
> and also Exynos5422 TRM doesn't define 933/138Mhz on pll table.
OK, I will remove them.
> 
>> +};
>> +
>>   static const struct samsung_pll_rate_table exynos5420_epll_24mhz_tbl[] = {
>>  PLL_36XX_RATE(24 * MHZ, 6U, 100, 2, 1, 0),
>>  PLL_36XX_RATE(24 * MHZ, 4U, 200, 3, 2, 0),
>> @@ -1467,7 +1480,7 @@ static void __init exynos5x_clk_init(struct 
>> device_node *np,
>>  exynos5x_plls[apll].rate_table = exynos5420_pll2550x_24mhz_tbl;
>>  exynos5x_plls[epll].rate_table = exynos5420_epll_24mhz_tbl;
>>  exynos5x_plls[kpll].rate_table = exynos5420_pll2550x_24mhz_tbl;
>> -exynos5x_plls[bpll].rate_table = exynos5420_pll2550x_24mhz_tbl;
>> +exynos5x_plls[bpll].rate_table = exynos5422_bpll_rate_table;
> 
> Exynos5422 used the same PLL table for apll, kpll, bpll and so on.
> You don't need to make the separate pll table. Just add new entries
> to exynos5420_pll2550x_24mhz_tbl table.
OK, I will extend the exynos5420_pll2550x_24mhz_tbl table.

In v4 patch set, it will be fixed.

Regards,
Lukasz
> 
>>  }
>>   
>>  samsung_clk_register_pll(ctx, exynos5x_plls, ARRAY_SIZE(exynos5x_plls),
>>
> 


Re: [PATCH v3 3/8] clk: samsung: add BPLL rate table for Exynos 5422 SoC

2019-02-01 Thread Chanwoo Choi
Hi,

On 19. 1. 31. 오후 5:49, Lukasz Luba wrote:
> Add new table rate for BPLL for Exynos5422 SoC supporting Dynamic Memory
> Controller frequencies for driver's DRAM timings.
> 
> CC: Sylwester Nawrocki 
> CC: Chanwoo Choi 
> CC: Michael Turquette 
> CC: Stephen Boyd 
> CC: Kukjin Kim 
> CC: Krzysztof Kozlowski 
> CC: linux-samsung-...@vger.kernel.org
> CC: linux-...@vger.kernel.org
> CC: linux-arm-ker...@lists.infradead.org
> CC: linux-kernel@vger.kernel.org
> Signed-off-by: Lukasz Luba 
> ---
>  drivers/clk/samsung/clk-exynos5420.c | 15 ++-
>  1 file changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/samsung/clk-exynos5420.c 
> b/drivers/clk/samsung/clk-exynos5420.c
> index 3e87421..8bf9579 100644
> --- a/drivers/clk/samsung/clk-exynos5420.c
> +++ b/drivers/clk/samsung/clk-exynos5420.c
> @@ -1325,6 +1325,19 @@ static const struct samsung_pll_rate_table 
> exynos5420_pll2550x_24mhz_tbl[] __ini
>   PLL_35XX_RATE(24 * MHZ, 2,  200, 3, 3),
>  };
>  
> +static const struct samsung_pll_rate_table exynos5422_bpll_rate_table[] = {
> + PLL_35XX_RATE(24 * MHZ, 93300, 311, 4, 1),
> + PLL_35XX_RATE(24 * MHZ, 82500, 275, 4, 1),
> + PLL_35XX_RATE(24 * MHZ, 72800, 182, 3, 1),
> + PLL_35XX_RATE(24 * MHZ, 63300, 211, 4, 1),
> + PLL_35XX_RATE(24 * MHZ, 54300, 181, 2, 2),
> + PLL_35XX_RATE(24 * MHZ, 41300, 413, 6, 2),
> + PLL_35XX_RATE(24 * MHZ, 27500, 275, 3, 3),
> + PLL_35XX_RATE(24 * MHZ, 20600, 206, 3, 3),
> + PLL_35XX_RATE(24 * MHZ, 16500, 110, 2, 3),
> + PLL_35XX_RATE(24 * MHZ, 13800, 184, 2, 4),

Except for 825Mhz, I can't find the target frequency
on Exynos5422 TRM document. Usually, Exynos TRM specified
the supported stable clocks. It means that undefined clocks
are not stable as I knew. Where do you find them?

When I calculated the PLL frequency with PMS value, it is correct.
But, just we need to check the reference of undefined clocks on TRM
in order to guarantee the stable operation.

Remove 933/138Mhz because exynos5433-dmc.c doesn't use 933Mhz and 138Mhz
and also Exynos5422 TRM doesn't define 933/138Mhz on pll table.

> +};
> +
>  static const struct samsung_pll_rate_table exynos5420_epll_24mhz_tbl[] = {
>   PLL_36XX_RATE(24 * MHZ, 6U, 100, 2, 1, 0),
>   PLL_36XX_RATE(24 * MHZ, 4U, 200, 3, 2, 0),
> @@ -1467,7 +1480,7 @@ static void __init exynos5x_clk_init(struct device_node 
> *np,
>   exynos5x_plls[apll].rate_table = exynos5420_pll2550x_24mhz_tbl;
>   exynos5x_plls[epll].rate_table = exynos5420_epll_24mhz_tbl;
>   exynos5x_plls[kpll].rate_table = exynos5420_pll2550x_24mhz_tbl;
> - exynos5x_plls[bpll].rate_table = exynos5420_pll2550x_24mhz_tbl;
> + exynos5x_plls[bpll].rate_table = exynos5422_bpll_rate_table;

Exynos5422 used the same PLL table for apll, kpll, bpll and so on.
You don't need to make the separate pll table. Just add new entries
to exynos5420_pll2550x_24mhz_tbl table.

>   }
>  
>   samsung_clk_register_pll(ctx, exynos5x_plls, ARRAY_SIZE(exynos5x_plls),
> 

-- 
Best Regards,
Chanwoo Choi
Samsung Electronics