Home
last modified time | relevance | path

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

123

/linux/drivers/clk/ingenic/
H A 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 …]
H A DKconfig89 bool "Ingenic JZ47xx TCU clocks driver"
93 Support the clocks of the Timer/Counter Unit (TCU) of the Ingenic
/linux/drivers/clocksource/
H A 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 …]
H A Dtimer-ep93xx.c77 struct ep93xx_tcu *tcu = ep93xx_tcu; in ep93xx_clocksource_read() local
79 return lo_hi_readq(tcu->base + EP93XX_TIMER4_VALUE_LOW) & GENMASK_ULL(39, 0); in ep93xx_clocksource_read()
90 struct ep93xx_tcu *tcu = ep93xx_tcu; in ep93xx_clkevt_set_next_event() local
96 writel(tmode, tcu->base + EP93XX_TIMER3_CONTROL); in ep93xx_clkevt_set_next_event()
99 writel(next, tcu->base + EP93XX_TIMER3_LOAD); in ep93xx_clkevt_set_next_event()
101 tcu->base + EP93XX_TIMER3_CONTROL); in ep93xx_clkevt_set_next_event()
107 struct ep93xx_tcu *tcu = ep93xx_tcu; in ep93xx_clkevt_shutdown() local
109 writel(0, tcu->base + EP93XX_TIMER3_CONTROL); in ep93xx_clkevt_shutdown()
126 struct ep93xx_tcu *tcu = ep93xx_tcu; in ep93xx_timer_interrupt() local
130 writel(1, tcu->base + EP93XX_TIMER3_CLEAR); in ep93xx_timer_interrupt()
[all …]
H A Dingenic-ost.c3 * JZ47xx SoCs TCU Operating System Timer driver
11 #include <linux/mfd/ingenic-tcu.h>
25 * The TCU_REG_OST_CNT{L,R} from <linux/mfd/ingenic-tcu.h> are only for the
111 /* Enable OST TCU channel */ in ingenic_ost_probe()
/linux/Documentation/devicetree/bindings/timer/
H A 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 …]
/linux/drivers/irqchip/
H A 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 …]
/linux/Documentation/arch/mips/
H A 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 …]
/linux/Documentation/devicetree/bindings/serial/
H A 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";
/linux/Documentation/translations/zh_CN/arch/mips/
H A 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.
/linux/Documentation/translations/zh_TW/arch/mips/
H A Dingenic-tcu.rst5 :Original: Documentation/arch/mips/ingenic-tcu.rst
11 .. _tw_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.
/linux/arch/mips/boot/dts/ingenic/
H A 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>;
H A 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>;
H A 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>;
H A 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>;
H A 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>;
H A 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>;
H A Drs90.dts302 &tcu {
307 assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>, <&tcu TCU_CLK_WDT>;
H A Dgcw0.dts5 #include <dt-bindings/clock/ingenic,tcu.h>
476 &tcu {
481 assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER2>,
482 <&tcu TCU_CLK_OST>, <&tcu TCU_CLK_WDT>;
H A Dci20.dts5 #include <dt-bindings/clock/ingenic,tcu.h>
179 &tcu {
188 assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
189 <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_OST>;
H A Dqi_lb60.dts8 #include <dt-bindings/clock/ingenic,tcu.h>
359 &tcu {
361 assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>;
/linux/Documentation/ABI/testing/
H A Dsysfs-driver-hid-roccat-kone69 startup_profile, tcu state and calibration_data.
88 …m>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/kone/roccatkone<minor>/tcu
93 When read, this file returns the current state of the TCU,
96 Writing 0 in this file will switch the TCU off.
99 around 6 seconds to complete and activates the TCU.
/linux/Documentation/devicetree/bindings/iommu/
H A Darm,smmu.yaml305 through the TCU's programming interface.
317 through the TCU's programming interface.
319 through the TCU's programming interface.
347 through the TCU's programming interface.
360 through the TCU's programming interface.
362 through the TCU's programming interface.
386 through the TCU's programming interface.
442 through the TCU's programming interface.
/linux/drivers/hid/
H A Dhid-roccat-kone.c454 return sysfs_emit(buf, "%d\n", kone->settings.tcu); in kone_sysfs_show_tcu()
466 * Calibrating the tcu is the only action that changes settings data inside the
497 ssleep(5); /* tcu needs this time for calibration */ in kone_sysfs_set_tcu()
522 if (kone->settings.tcu != state) { in kone_sysfs_set_tcu()
523 kone->settings.tcu = state; in kone_sysfs_set_tcu()
528 dev_err(&usb_dev->dev, "couldn't set tcu state\n"); in kone_sysfs_set_tcu()
549 static DEVICE_ATTR(tcu, 0660, kone_sysfs_show_tcu, kone_sysfs_set_tcu);
627 * 1 = on. Writing 0 deactivates tcu and writing 1 calibrates and
628 * activates the tcu
/linux/drivers/pwm/
H A Dpwm-jz4740.c15 #include <linux/mfd/ingenic-tcu.h>
39 /* Enable all TCU channels for PWM use by default except channels 0/1 */ in jz4740_pwm_can_use_chn()
106 * Set duty > period. This trick allows the TCU channels in TCU2 mode to in jz4740_pwm_disable()

123