Home
last modified time | relevance | path

Searched full:tcu (Results 1 – 25 of 52) 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/tty/serial/
H A 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
104 tegra_tcu_write(tcu, tail, count); in tegra_tcu_uart_start_tx()
151 struct tegra_tcu *tcu = container_of(cons, struct tegra_tcu, console); in tegra_tcu_console_write() local
153 tegra_tcu_write(tcu, s, count); in tegra_tcu_console_write()
[all …]
/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>
90 struct ingenic_tcu *tcu; in ingenic_tcu_irq_init() local
99 tcu = kzalloc_obj(*tcu); in ingenic_tcu_irq_init()
100 if (!tcu) in ingenic_tcu_irq_init()
103 tcu->map = map; in ingenic_tcu_irq_init()
106 if (irqs < 0 || irqs > ARRAY_SIZE(tcu->parent_irqs)) { in ingenic_tcu_irq_init()
112 tcu->nb_parent_irqs = irqs; in ingenic_tcu_irq_init()
114 tcu->domain = irq_domain_create_linear(of_fwnode_handle(np), 32, &irq_generic_chip_ops, in ingenic_tcu_irq_init()
116 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 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/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/gpu/drm/imagination/
H A Dpvr_rogue_defs.h152 * If the size of the SLC is bigger than this value then the TCU must not be
154 * In XE_MEMORY_HIERARCHY cores, the TCU is bypassed by default.
/linux/include/dt-bindings/clock/
H A Dingenic,tcu.h3 * This header provides clock numbers for the ingenic,tcu DT binding.
/linux/Documentation/ABI/obsolete/
H A Dsysfs-driver-hid-roccat-konepure88 …ig num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/tcu
102 calibration process initiated with tcu.

123