diff mbox series

[1/1] dt-bindings: clock: Add new OST support for the upcoming new driver.

Message ID 20201007181407.46889-2-zhouyanjie@wanyeetech.com
State Changes Requested
Headers show
Series Add macro definition for the upcoming new OST driver. | expand

Checks

Context Check Description
robh/checkpatch warning total: 0 errors, 2 warnings, 19 lines checked

Commit Message

周琰杰 (Zhou Yanjie) Oct. 7, 2020, 6:14 p.m. UTC
The new OST has one global timer and two or four percpu timers, so there will be three
combinations in the upcoming new OST driver: the original GLOBAL_TIMER + PERCPU_TIMER,
the new GLOBAL_TIMER + PERCPU_TIMER0/1 and GLOBAL_TIMER + PERCPU_TIMER0/1/2/3, For this,
add the macro definition about OST_CLK_PERCPU_TIMER0/1/2/3. And in order to ensure that
all the combinations work normally, the original ABI values of OST_CLK_PERCPU_TIMER and
OST_CLK_GLOBAL_TIMER need to be exchanged to ensure that in any combinations, the clock
can be registered (by calling clk_hw_register()) from index 0.

I'm sure that exchanging the ABI values of OST_CLK_PERCPU_TIMER and OST_CLK_GLOBAL_TIMER
will not affect the existing related drivers and the SoCs whitch using these drivers, so
we should be able to exchange them safely.

Tested-by: 周正 (Zhou Zheng) <sernia.zhou@foxmail.com>
Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>
---
 include/dt-bindings/clock/ingenic,sysost.h | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

Comments

Rob Herring Oct. 13, 2020, 1:29 p.m. UTC | #1
On Thu, Oct 08, 2020 at 02:14:07AM +0800, 周琰杰 (Zhou Yanjie) wrote:
> The new OST has one global timer and two or four percpu timers, so there will be three
> combinations in the upcoming new OST driver: the original GLOBAL_TIMER + PERCPU_TIMER,
> the new GLOBAL_TIMER + PERCPU_TIMER0/1 and GLOBAL_TIMER + PERCPU_TIMER0/1/2/3, For this,
> add the macro definition about OST_CLK_PERCPU_TIMER0/1/2/3. And in order to ensure that
> all the combinations work normally, the original ABI values of OST_CLK_PERCPU_TIMER and
> OST_CLK_GLOBAL_TIMER need to be exchanged to ensure that in any combinations, the clock
> can be registered (by calling clk_hw_register()) from index 0.

Wrap lines at <80 characters.

> 
> I'm sure that exchanging the ABI values of OST_CLK_PERCPU_TIMER and OST_CLK_GLOBAL_TIMER
> will not affect the existing related drivers and the SoCs whitch using these drivers, so
> we should be able to exchange them safely.

Why exactly is this okay?

> 
> Tested-by: 周正 (Zhou Zheng) <sernia.zhou@foxmail.com>
> Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>
> ---
>  include/dt-bindings/clock/ingenic,sysost.h | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/include/dt-bindings/clock/ingenic,sysost.h b/include/dt-bindings/clock/ingenic,sysost.h
> index 9ac88e90babf..063791b01ab3 100644
> --- a/include/dt-bindings/clock/ingenic,sysost.h
> +++ b/include/dt-bindings/clock/ingenic,sysost.h
> @@ -1,12 +1,16 @@
>  /* SPDX-License-Identifier: GPL-2.0 */
>  /*
> - * This header provides clock numbers for the ingenic,tcu DT binding.
> + * This header provides clock numbers for the Ingenic OST DT binding.
>   */
>  
>  #ifndef __DT_BINDINGS_CLOCK_INGENIC_OST_H__
>  #define __DT_BINDINGS_CLOCK_INGENIC_OST_H__
>  
> -#define OST_CLK_PERCPU_TIMER	0
> -#define OST_CLK_GLOBAL_TIMER	1
> +#define OST_CLK_PERCPU_TIMER	1
> +#define OST_CLK_GLOBAL_TIMER	0
> +#define OST_CLK_PERCPU_TIMER0	1
> +#define OST_CLK_PERCPU_TIMER1	2
> +#define OST_CLK_PERCPU_TIMER2	3
> +#define OST_CLK_PERCPU_TIMER3	4
>  
>  #endif /* __DT_BINDINGS_CLOCK_INGENIC_OST_H__ */
> -- 
> 2.11.0
>
周琰杰 (Zhou Yanjie) Oct. 14, 2020, 4:25 p.m. UTC | #2
Hi Rob,

在 2020/10/13 下午9:29, Rob Herring 写道:
> On Thu, Oct 08, 2020 at 02:14:07AM +0800, 周琰杰 (Zhou Yanjie) wrote:
>> The new OST has one global timer and two or four percpu timers, so there will be three
>> combinations in the upcoming new OST driver: the original GLOBAL_TIMER + PERCPU_TIMER,
>> the new GLOBAL_TIMER + PERCPU_TIMER0/1 and GLOBAL_TIMER + PERCPU_TIMER0/1/2/3, For this,
>> add the macro definition about OST_CLK_PERCPU_TIMER0/1/2/3. And in order to ensure that
>> all the combinations work normally, the original ABI values of OST_CLK_PERCPU_TIMER and
>> OST_CLK_GLOBAL_TIMER need to be exchanged to ensure that in any combinations, the clock
>> can be registered (by calling clk_hw_register()) from index 0.
> Wrap lines at <80 characters.


Sorry, I will fix it in the next version.


>
>> I'm sure that exchanging the ABI values of OST_CLK_PERCPU_TIMER and OST_CLK_GLOBAL_TIMER
>> will not affect the existing related drivers and the SoCs whitch using these drivers, so
>> we should be able to exchange them safely.
> Why exactly is this okay?


These definitions are currently only used in two places, one is when 
using "assigned-clocks" to configure the clock in the DTS file; the 
other is when registering the clock in the sysost driver. When 
exchanging the values of "OST_CLK_PERCPU_TIMER" and 
"OST_CLK_GLOBAL_TIMER", the corresponding values will be changed 
synchronously when the clock is driven to register and when the clock is 
configured through "assigned-clocks". Therefore, there is no situation 
that causes the wrong clock to the configured. And it has been tested on 
X1000 and X1000 and X1830 SoCs, all working fine.

I'm sorry because I didn't think carefully when writing this header 
file, and caused the current trouble.


Thanks and best regards!


>> Tested-by: 周正 (Zhou Zheng) <sernia.zhou@foxmail.com>
>> Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>
>> ---
>>   include/dt-bindings/clock/ingenic,sysost.h | 10 +++++++---
>>   1 file changed, 7 insertions(+), 3 deletions(-)
>>
>> diff --git a/include/dt-bindings/clock/ingenic,sysost.h b/include/dt-bindings/clock/ingenic,sysost.h
>> index 9ac88e90babf..063791b01ab3 100644
>> --- a/include/dt-bindings/clock/ingenic,sysost.h
>> +++ b/include/dt-bindings/clock/ingenic,sysost.h
>> @@ -1,12 +1,16 @@
>>   /* SPDX-License-Identifier: GPL-2.0 */
>>   /*
>> - * This header provides clock numbers for the ingenic,tcu DT binding.
>> + * This header provides clock numbers for the Ingenic OST DT binding.
>>    */
>>   
>>   #ifndef __DT_BINDINGS_CLOCK_INGENIC_OST_H__
>>   #define __DT_BINDINGS_CLOCK_INGENIC_OST_H__
>>   
>> -#define OST_CLK_PERCPU_TIMER	0
>> -#define OST_CLK_GLOBAL_TIMER	1
>> +#define OST_CLK_PERCPU_TIMER	1
>> +#define OST_CLK_GLOBAL_TIMER	0
>> +#define OST_CLK_PERCPU_TIMER0	1
>> +#define OST_CLK_PERCPU_TIMER1	2
>> +#define OST_CLK_PERCPU_TIMER2	3
>> +#define OST_CLK_PERCPU_TIMER3	4
>>   
>>   #endif /* __DT_BINDINGS_CLOCK_INGENIC_OST_H__ */
>> -- 
>> 2.11.0
>>
diff mbox series

Patch

diff --git a/include/dt-bindings/clock/ingenic,sysost.h b/include/dt-bindings/clock/ingenic,sysost.h
index 9ac88e90babf..063791b01ab3 100644
--- a/include/dt-bindings/clock/ingenic,sysost.h
+++ b/include/dt-bindings/clock/ingenic,sysost.h
@@ -1,12 +1,16 @@ 
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * This header provides clock numbers for the ingenic,tcu DT binding.
+ * This header provides clock numbers for the Ingenic OST DT binding.
  */
 
 #ifndef __DT_BINDINGS_CLOCK_INGENIC_OST_H__
 #define __DT_BINDINGS_CLOCK_INGENIC_OST_H__
 
-#define OST_CLK_PERCPU_TIMER	0
-#define OST_CLK_GLOBAL_TIMER	1
+#define OST_CLK_PERCPU_TIMER	1
+#define OST_CLK_GLOBAL_TIMER	0
+#define OST_CLK_PERCPU_TIMER0	1
+#define OST_CLK_PERCPU_TIMER1	2
+#define OST_CLK_PERCPU_TIMER2	3
+#define OST_CLK_PERCPU_TIMER3	4
 
 #endif /* __DT_BINDINGS_CLOCK_INGENIC_OST_H__ */