Home
last modified time | relevance | path

Searched full:tcu (Results 1 – 25 of 113) sorted by relevance

12345

/kernel/linux/linux-6.6/drivers/tty/serial/
Dtegra-tcu.c51 static void tegra_tcu_write_one(struct tegra_tcu *tcu, u32 value, in tegra_tcu_write_one() argument
58 mbox_send_message(tcu->tx, msg); in tegra_tcu_write_one()
59 mbox_flush(tcu->tx, 1000); in tegra_tcu_write_one()
62 static void tegra_tcu_write(struct tegra_tcu *tcu, const char *s, in tegra_tcu_write() argument
82 tegra_tcu_write_one(tcu, value, 3); in tegra_tcu_write()
88 tegra_tcu_write_one(tcu, value, written); in tegra_tcu_write()
93 struct tegra_tcu *tcu = port->private_data; in tegra_tcu_uart_start_tx() local
102 tegra_tcu_write(tcu, &xmit->buf[xmit->tail], count); in tegra_tcu_uart_start_tx()
149 struct tegra_tcu *tcu = container_of(cons, struct tegra_tcu, console); in tegra_tcu_console_write() local
151 tegra_tcu_write(tcu, s, count); in tegra_tcu_console_write()
[all …]
/kernel/linux/linux-5.10/drivers/clk/ingenic/
Dtcu.c3 * JZ47xx SoCs TCU clocks driver
10 #include <linux/mfd/ingenic-tcu.h>
16 #include <dt-bindings/clock/ingenic,tcu.h>
22 #define pr_fmt(fmt) "ingenic-tcu-clk: " fmt
45 struct ingenic_tcu *tcu; member
68 struct ingenic_tcu *tcu = tcu_clk->tcu; in ingenic_tcu_enable() local
70 regmap_write(tcu->map, TCU_REG_TSCR, BIT(info->gate_bit)); in ingenic_tcu_enable()
79 struct ingenic_tcu *tcu = tcu_clk->tcu; in ingenic_tcu_disable() local
81 regmap_write(tcu->map, TCU_REG_TSSR, BIT(info->gate_bit)); in ingenic_tcu_disable()
90 regmap_read(tcu_clk->tcu->map, TCU_REG_TSR, &value); in ingenic_tcu_is_enabled()
[all …]
/kernel/linux/linux-6.6/drivers/clk/ingenic/
Dtcu.c3 * JZ47xx SoCs TCU clocks driver
10 #include <linux/mfd/ingenic-tcu.h>
16 #include <dt-bindings/clock/ingenic,tcu.h>
22 #define pr_fmt(fmt) "ingenic-tcu-clk: " fmt
46 struct ingenic_tcu *tcu; member
69 struct ingenic_tcu *tcu = tcu_clk->tcu; in ingenic_tcu_enable() local
71 regmap_write(tcu->map, TCU_REG_TSCR, BIT(info->gate_bit)); in ingenic_tcu_enable()
80 struct ingenic_tcu *tcu = tcu_clk->tcu; in ingenic_tcu_disable() local
82 regmap_write(tcu->map, TCU_REG_TSSR, BIT(info->gate_bit)); in ingenic_tcu_disable()
91 regmap_read(tcu_clk->tcu->map, TCU_REG_TSR, &value); in ingenic_tcu_is_enabled()
[all …]
/kernel/linux/linux-5.10/drivers/tty/serial/
Dtegra-tcu.c52 static void tegra_tcu_write_one(struct tegra_tcu *tcu, u32 value, in tegra_tcu_write_one() argument
59 mbox_send_message(tcu->tx, msg); in tegra_tcu_write_one()
60 mbox_flush(tcu->tx, 1000); in tegra_tcu_write_one()
63 static void tegra_tcu_write(struct tegra_tcu *tcu, const char *s, in tegra_tcu_write() argument
83 tegra_tcu_write_one(tcu, value, 3); in tegra_tcu_write()
89 tegra_tcu_write_one(tcu, value, written); in tegra_tcu_write()
94 struct tegra_tcu *tcu = port->private_data; in tegra_tcu_uart_start_tx() local
103 tegra_tcu_write(tcu, &xmit->buf[xmit->tail], count); in tegra_tcu_uart_start_tx()
150 struct tegra_tcu *tcu = container_of(cons, struct tegra_tcu, console); in tegra_tcu_console_write() local
152 tegra_tcu_write(tcu, s, count); in tegra_tcu_console_write()
[all …]
/kernel/linux/linux-6.6/drivers/clocksource/
Dingenic-timer.c3 * Ingenic SoCs TCU IRQ driver
14 #include <linux/mfd/ingenic-tcu.h>
23 #include <dt-bindings/clock/ingenic,tcu.h>
53 struct ingenic_tcu *tcu = ingenic_tcu; in ingenic_tcu_timer_read() local
56 regmap_read(tcu->map, TCU_REG_TCNTc(tcu->cs_channel), &count); in ingenic_tcu_timer_read()
81 struct ingenic_tcu *tcu = to_ingenic_tcu(timer); in ingenic_tcu_cevt_set_state_shutdown() local
83 regmap_write(tcu->map, TCU_REG_TECR, BIT(timer->channel)); in ingenic_tcu_cevt_set_state_shutdown()
92 struct ingenic_tcu *tcu = to_ingenic_tcu(timer); in ingenic_tcu_cevt_set_next() local
97 regmap_write(tcu->map, TCU_REG_TDFRc(timer->channel), next); in ingenic_tcu_cevt_set_next()
98 regmap_write(tcu->map, TCU_REG_TCNTc(timer->channel), 0); in ingenic_tcu_cevt_set_next()
[all …]
/kernel/linux/linux-5.10/drivers/clocksource/
Dingenic-timer.c3 * Ingenic SoCs TCU IRQ driver
13 #include <linux/mfd/ingenic-tcu.h>
24 #include <dt-bindings/clock/ingenic,tcu.h>
54 struct ingenic_tcu *tcu = ingenic_tcu; in ingenic_tcu_timer_read() local
57 regmap_read(tcu->map, TCU_REG_TCNTc(tcu->cs_channel), &count); in ingenic_tcu_timer_read()
82 struct ingenic_tcu *tcu = to_ingenic_tcu(timer); in ingenic_tcu_cevt_set_state_shutdown() local
84 regmap_write(tcu->map, TCU_REG_TECR, BIT(timer->channel)); in ingenic_tcu_cevt_set_state_shutdown()
93 struct ingenic_tcu *tcu = to_ingenic_tcu(timer); in ingenic_tcu_cevt_set_next() local
98 regmap_write(tcu->map, TCU_REG_TDFRc(timer->channel), next); in ingenic_tcu_cevt_set_next()
99 regmap_write(tcu->map, TCU_REG_TCNTc(timer->channel), 0); in ingenic_tcu_cevt_set_next()
[all …]
/kernel/linux/linux-6.6/Documentation/devicetree/bindings/timer/
Dingenic,tcu.yaml4 $id: http://devicetree.org/schemas/timer/ingenic,tcu.yaml#
7 title: Ingenic SoCs Timer/Counter Unit (TCU)
10 For a description of the TCU hardware and drivers, have a look at
11 Documentation/arch/mips/ingenic-tcu.rst.
21 - ingenic,jz4740-tcu
22 - ingenic,jz4725b-tcu
23 - ingenic,jz4760-tcu
24 - ingenic,jz4760b-tcu
25 - ingenic,jz4770-tcu
26 - ingenic,jz4780-tcu
[all …]
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/timer/
Dingenic,tcu.yaml4 $id: http://devicetree.org/schemas/timer/ingenic,tcu.yaml#
7 title: Ingenic SoCs Timer/Counter Unit (TCU) devicetree bindings
10 For a description of the TCU hardware and drivers, have a look at
11 Documentation/mips/ingenic-tcu.rst.
21 - ingenic,jz4740-tcu
22 - ingenic,jz4725b-tcu
23 - ingenic,jz4770-tcu
24 - ingenic,jz4780-tcu
25 - ingenic,x1000-tcu
53 - ingenic,jz4740-tcu
[all …]
/kernel/linux/linux-5.10/drivers/irqchip/
Dirq-ingenic-tcu.c3 * JZ47xx SoCs TCU IRQ driver
11 #include <linux/mfd/ingenic-tcu.h>
91 struct ingenic_tcu *tcu; in ingenic_tcu_irq_init() local
100 tcu = kzalloc(sizeof(*tcu), GFP_KERNEL); in ingenic_tcu_irq_init()
101 if (!tcu) in ingenic_tcu_irq_init()
104 tcu->map = map; in ingenic_tcu_irq_init()
107 if (irqs < 0 || irqs > ARRAY_SIZE(tcu->parent_irqs)) { in ingenic_tcu_irq_init()
113 tcu->nb_parent_irqs = irqs; in ingenic_tcu_irq_init()
115 tcu->domain = irq_domain_add_linear(np, 32, &irq_generic_chip_ops, in ingenic_tcu_irq_init()
117 if (!tcu->domain) { in ingenic_tcu_irq_init()
[all …]
/kernel/linux/linux-6.6/drivers/irqchip/
Dirq-ingenic-tcu.c3 * JZ47xx SoCs TCU IRQ driver
11 #include <linux/mfd/ingenic-tcu.h>
93 struct ingenic_tcu *tcu; in ingenic_tcu_irq_init() local
102 tcu = kzalloc(sizeof(*tcu), GFP_KERNEL); in ingenic_tcu_irq_init()
103 if (!tcu) in ingenic_tcu_irq_init()
106 tcu->map = map; in ingenic_tcu_irq_init()
109 if (irqs < 0 || irqs > ARRAY_SIZE(tcu->parent_irqs)) { in ingenic_tcu_irq_init()
115 tcu->nb_parent_irqs = irqs; in ingenic_tcu_irq_init()
117 tcu->domain = irq_domain_add_linear(np, 32, &irq_generic_chip_ops, in ingenic_tcu_irq_init()
119 if (!tcu->domain) { in ingenic_tcu_irq_init()
[all …]
/kernel/linux/linux-6.6/Documentation/arch/mips/
Dingenic-tcu.rst7 The Timer/Counter Unit (TCU) in Ingenic JZ47xx SoCs is a multi-function
11 - JZ4725B, JZ4750, JZ4755 only have six TCU channels. The other SoCs all
18 - Each one of the TCU channels has its own clock, which can be reparented to three
23 - The TCU registers used to gate/ungate can also gate/ungate the watchdog and
26 - Each TCU channel works in one of two modes:
33 - The mode of each TCU channel depends on the SoC used:
55 The functionalities of the TCU hardware are spread across multiple drivers:
58 clocks drivers/clk/ingenic/tcu.c
59 interrupts drivers/irqchip/irq-ingenic-tcu.c
66 Because various functionalities of the TCU that belong to different drivers
[all …]
/kernel/linux/linux-5.10/Documentation/mips/
Dingenic-tcu.rst7 The Timer/Counter Unit (TCU) in Ingenic JZ47xx SoCs is a multi-function
11 - JZ4725B, JZ4750, JZ4755 only have six TCU channels. The other SoCs all
18 - Each one of the TCU channels has its own clock, which can be reparented to three
23 - The TCU registers used to gate/ungate can also gate/ungate the watchdog and
26 - Each TCU channel works in one of two modes:
33 - The mode of each TCU channel depends on the SoC used:
55 The functionalities of the TCU hardware are spread across multiple drivers:
58 clocks drivers/clk/ingenic/tcu.c
59 interrupts drivers/irqchip/irq-ingenic-tcu.c
66 Because various functionalities of the TCU that belong to different drivers
[all …]
/kernel/linux/linux-6.6/Documentation/devicetree/bindings/serial/
Dnvidia,tegra194-tcu.yaml4 $id: http://devicetree.org/schemas/serial/nvidia,tegra194-tcu.yaml#
7 title: NVIDIA Tegra Combined UART (TCU)
14 The TCU is a system for sharing a hardware UART instance among multiple
18 with the hardware implementing the TCU.
26 - const: nvidia,tegra194-tcu
29 - nvidia,tegra234-tcu
30 - const: nvidia,tegra194-tcu
56 tcu: serial {
57 compatible = "nvidia,tegra194-tcu";
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/serial/
Dnvidia,tegra194-tcu.txt1 NVIDIA Tegra Combined UART (TCU)
3 The TCU is a system for sharing a hardware UART instance among multiple
7 with the hardware implementing the TCU.
10 - name : Should be tcu
14 - "nvidia,tegra194-tcu"
30 tcu: tcu {
31 compatible = "nvidia,tegra194-tcu";
/kernel/linux/linux-6.6/Documentation/translations/zh_CN/arch/mips/
Dingenic-tcu.rst5 :Original: Documentation/arch/mips/ingenic-tcu.rst
11 .. _cn_ingenic-tcu:
17 君正 JZ47xx SoC中的定时器/计数器单元(TCU)是一个多功能硬件块。它有多达
29 - 用于关闭/开启的 TCU 寄存器也可以关闭/开启看门狗和 OST 时钟。
36 - 每个 TCU 通道的模式取决于使用的SoC:
60 时钟 drivers/clk/ingenic/tcu.c
61 中断 drivers/irqchip/irq-ingenic-tcu.c
72 Documentation/devicetree/bindings/timer/ingenic,tcu.yaml.
/kernel/linux/linux-5.10/arch/mips/boot/dts/ingenic/
Djz4740.dtsi3 #include <dt-bindings/clock/ingenic,tcu.h>
63 tcu: timer@10002000 { label
64 compatible = "ingenic,jz4740-tcu", "simple-mfd";
76 clock-names = "rtc", "ext", "pclk", "tcu";
88 clocks = <&tcu TCU_CLK_WDT>;
98 clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
99 <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>,
100 <&tcu TCU_CLK_TIMER4>, <&tcu TCU_CLK_TIMER5>,
101 <&tcu TCU_CLK_TIMER6>, <&tcu TCU_CLK_TIMER7>;
Djz4725b.dtsi3 #include <dt-bindings/clock/ingenic,tcu.h>
63 tcu: timer@10002000 { label
64 compatible = "ingenic,jz4725b-tcu", "simple-mfd";
76 clock-names = "rtc", "ext", "pclk", "tcu";
88 clocks = <&tcu TCU_CLK_WDT>;
98 clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
99 <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>,
100 <&tcu TCU_CLK_TIMER4>, <&tcu TCU_CLK_TIMER5>;
109 clocks = <&tcu TCU_CLK_OST>;
Djz4770.dtsi3 #include <dt-bindings/clock/ingenic,tcu.h>
75 tcu: timer@10002000 { label
76 compatible = "ingenic,jz4770-tcu", "simple-mfd";
100 clocks = <&tcu TCU_CLK_WDT>;
110 clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
111 <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>,
112 <&tcu TCU_CLK_TIMER4>, <&tcu TCU_CLK_TIMER5>,
113 <&tcu TCU_CLK_TIMER6>, <&tcu TCU_CLK_TIMER7>;
122 clocks = <&tcu TCU_CLK_OST>;
Djz4780.dtsi3 #include <dt-bindings/clock/ingenic,tcu.h>
73 tcu: timer@10002000 { label
74 compatible = "ingenic,jz4780-tcu",
75 "ingenic,jz4770-tcu",
99 clocks = <&tcu TCU_CLK_WDT>;
109 clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
110 <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>,
111 <&tcu TCU_CLK_TIMER4>, <&tcu TCU_CLK_TIMER5>,
112 <&tcu TCU_CLK_TIMER6>, <&tcu TCU_CLK_TIMER7>;
121 clocks = <&tcu TCU_CLK_OST>;
/kernel/linux/linux-6.6/arch/mips/boot/dts/ingenic/
Djz4740.dtsi3 #include <dt-bindings/clock/ingenic,tcu.h>
63 tcu: timer@10002000 { label
64 compatible = "ingenic,jz4740-tcu", "simple-mfd";
76 clock-names = "rtc", "ext", "pclk", "tcu";
88 clocks = <&tcu TCU_CLK_WDT>;
98 clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
99 <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>,
100 <&tcu TCU_CLK_TIMER4>, <&tcu TCU_CLK_TIMER5>,
101 <&tcu TCU_CLK_TIMER6>, <&tcu TCU_CLK_TIMER7>;
Dx1830.dtsi2 #include <dt-bindings/clock/ingenic,tcu.h>
96 tcu: timer@10002000 { label
97 compatible = "ingenic,x1830-tcu", "ingenic,x1000-tcu", "simple-mfd";
109 clock-names = "rtc", "ext", "pclk", "tcu";
121 clocks = <&tcu TCU_CLK_WDT>;
131 clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
132 <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>,
133 <&tcu TCU_CLK_TIMER4>, <&tcu TCU_CLK_TIMER5>,
134 <&tcu TCU_CLK_TIMER6>, <&tcu TCU_CLK_TIMER7>;
Djz4725b.dtsi3 #include <dt-bindings/clock/ingenic,tcu.h>
63 tcu: timer@10002000 { label
64 compatible = "ingenic,jz4725b-tcu", "simple-mfd";
76 clock-names = "rtc", "ext", "pclk", "tcu";
88 clocks = <&tcu TCU_CLK_WDT>;
98 clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
99 <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>,
100 <&tcu TCU_CLK_TIMER4>, <&tcu TCU_CLK_TIMER5>;
109 clocks = <&tcu TCU_CLK_OST>;
Djz4770.dtsi3 #include <dt-bindings/clock/ingenic,tcu.h>
75 tcu: timer@10002000 { label
76 compatible = "ingenic,jz4770-tcu", "simple-mfd";
100 clocks = <&tcu TCU_CLK_WDT>;
110 clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
111 <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>,
112 <&tcu TCU_CLK_TIMER4>, <&tcu TCU_CLK_TIMER5>,
113 <&tcu TCU_CLK_TIMER6>, <&tcu TCU_CLK_TIMER7>;
122 clocks = <&tcu TCU_CLK_OST>;
Djz4780.dtsi3 #include <dt-bindings/clock/ingenic,tcu.h>
94 tcu: timer@10002000 { label
95 compatible = "ingenic,jz4780-tcu",
96 "ingenic,jz4770-tcu",
120 clocks = <&tcu TCU_CLK_WDT>;
130 clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
131 <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>,
132 <&tcu TCU_CLK_TIMER4>, <&tcu TCU_CLK_TIMER5>,
133 <&tcu TCU_CLK_TIMER6>, <&tcu TCU_CLK_TIMER7>;
142 clocks = <&tcu TCU_CLK_OST>;
Dx1000.dtsi2 #include <dt-bindings/clock/ingenic,tcu.h>
103 tcu: timer@10002000 { label
104 compatible = "ingenic,x1000-tcu", "simple-mfd";
116 clock-names = "rtc", "ext", "pclk", "tcu";
128 clocks = <&tcu TCU_CLK_WDT>;
138 clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
139 <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>,
140 <&tcu TCU_CLK_TIMER4>;

12345