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

From: Zhou Yanjie
Date: Wed Oct 14 2020 - 12:26:05 EST


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@xxxxxxxxxxx>
Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@xxxxxxxxxxxxxx>
---
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