Skip to content

Commit 03612d3

Browse files
uditkumartir-vignesh
authored andcommitted
arm64: dts: ti: k3-j7200: Configure pinctrl for timer IO pads
There are timer IO pads in the MCU domain, and in the MAIN domain. These pads can be muxed for the related timers. There are timer IO control registers for input and output. The registers for CTRLMMR_TIMER*_CTRL and CTRLMMR_MCU_TIMER*_CTRL are used to control the input. The registers for CTCTRLMMR_TIMERIO*_CTRL and CTRLMMR_MCU_TIMERIO*_CTRL the output. The multiplexing is documented in TRM "5.1.2.3.1.4 Timer IO Muxing Control Registers" and "5.1.3.3.1.5 Timer IO Muxing Control Registers", and the CASCADE_EN bit is documented in TRM "12.6.3.1 Timers Overview". For chaining timers, the timer IO control registers also have a CASCADE_EN input bit in the CTRLMMR_TIMER*_CTRL in the registers. The CASCADE_EN bit muxes the previous timer output, or possibly and external TIMER_IO pad source, to the input clock of the selected timer instance for odd numered timers. For the even numbered timers, the CASCADE_EN bit does not do anything. The timer cascade input routing options are shown in TRM "Figure 12-3224. Timers Overview". For handling beyond multiplexing, the driver support for timer cascading should be likely be handled via the clock framework. The MCU timer controls are also marked as reserved for usage by the MCU firmware. Cc: Nishanth Menon <[email protected]> Cc: Vignesh Raghavendra <[email protected]> Cc: Tony Lindgren <[email protected]> Reviewed-by: Tony Lindgren <[email protected]> Signed-off-by: Udit Kumar <[email protected]> Reviewed-by: Nishanth Menon <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Vignesh Raghavendra <[email protected]>
1 parent c8a28ed commit 03612d3

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

arch/arm64/boot/dts/ti/k3-j7200-main.dtsi

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,24 @@
392392
};
393393
};
394394

395+
/* TIMERIO pad input CTRLMMR_TIMER*_CTRL registers */
396+
main_timerio_input: pinctrl@104200 {
397+
compatible = "pinctrl-single";
398+
reg = <0x0 0x104200 0x0 0x50>;
399+
#pinctrl-cells = <1>;
400+
pinctrl-single,register-width = <32>;
401+
pinctrl-single,function-mask = <0x000001ff>;
402+
};
403+
404+
/* TIMERIO pad output CTCTRLMMR_TIMERIO*_CTRL registers */
405+
main_timerio_output: pinctrl@104280 {
406+
compatible = "pinctrl-single";
407+
reg = <0x0 0x104280 0x0 0x20>;
408+
#pinctrl-cells = <1>;
409+
pinctrl-single,register-width = <32>;
410+
pinctrl-single,function-mask = <0x0000001f>;
411+
};
412+
395413
main_pmx0: pinctrl@11c000 {
396414
compatible = "pinctrl-single";
397415
/* Proxy 0 addressing */

arch/arm64/boot/dts/ti/k3-j7200-mcu-wakeup.dtsi

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,26 @@
183183
reg = <0x00 0x43000014 0x00 0x4>;
184184
};
185185

186+
/* MCU_TIMERIO pad input CTRLMMR_MCU_TIMER*_CTRL registers */
187+
mcu_timerio_input: pinctrl@40f04200 {
188+
compatible = "pinctrl-single";
189+
reg = <0x0 0x40f04200 0x0 0x28>;
190+
#pinctrl-cells = <1>;
191+
pinctrl-single,register-width = <32>;
192+
pinctrl-single,function-mask = <0x0000000F>;
193+
status = "reserved";
194+
};
195+
196+
/* MCU_TIMERIO pad output CTRLMMR_MCU_TIMERIO*_CTRL registers */
197+
mcu_timerio_output: pinctrl@40f04280 {
198+
compatible = "pinctrl-single";
199+
reg = <0x0 0x40f04280 0x0 0x28>;
200+
#pinctrl-cells = <1>;
201+
pinctrl-single,register-width = <32>;
202+
pinctrl-single,function-mask = <0x0000000F>;
203+
status = "reserved";
204+
};
205+
186206
wkup_pmx0: pinctrl@4301c000 {
187207
compatible = "pinctrl-single";
188208
/* Proxy 0 addressing */

0 commit comments

Comments
 (0)