Home
last modified time | relevance | path

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

123

/Linux-v5.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 …]
DKconfig69 bool "Ingenic JZ47xx TCU clocks driver"
73 Support the clocks of the Timer/Counter Unit (TCU) of the Ingenic
/Linux-v5.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 …]
/Linux-v5.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 …]
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
115 /* Enable OST TCU channel */ in ingenic_ost_probe()
/Linux-v5.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 …]
/Linux-v5.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 …]
/Linux-v5.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 …]
/Linux-v5.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";
/Linux-v5.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>;
Dcu1830-neo.dts6 #include <dt-bindings/clock/ingenic,tcu.h>
46 &tcu {
48 assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER2>;
Dcu1000-neo.dts6 #include <dt-bindings/clock/ingenic,tcu.h>
46 &tcu {
48 assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER2>;
Dx1830.dtsi2 #include <dt-bindings/clock/ingenic,tcu.h>
64 tcu: timer@10002000 { label
65 compatible = "ingenic,x1830-tcu", "ingenic,x1000-tcu", "simple-mfd";
88 clocks = <&tcu TCU_CLK_WDT>;
Drs90.dts292 &tcu {
297 assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>, <&tcu TCU_CLK_WDT>;
Dgcw0.dts5 #include <dt-bindings/clock/ingenic,tcu.h>
481 &tcu {
486 assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER2>,
487 <&tcu TCU_CLK_OST>, <&tcu TCU_CLK_WDT>;
Dx1000.dtsi2 #include <dt-bindings/clock/ingenic,tcu.h>
64 tcu: timer@10002000 { label
65 compatible = "ingenic,x1000-tcu", "simple-mfd";
88 clocks = <&tcu TCU_CLK_WDT>;
Dci20.dts5 #include <dt-bindings/clock/ingenic,tcu.h>
491 &tcu {
493 assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>;
Dqi_lb60.dts8 #include <dt-bindings/clock/ingenic,tcu.h>
359 &tcu {
361 assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>;
/Linux-v5.10/Documentation/ABI/testing/
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-v5.10/drivers/hid/
Dhid-roccat-kone.c457 return snprintf(buf, PAGE_SIZE, "%d\n", kone->settings.tcu); in kone_sysfs_show_tcu()
469 * Calibrating the tcu is the only action that changes settings data inside the
500 ssleep(5); /* tcu needs this time for calibration */ in kone_sysfs_set_tcu()
525 if (kone->settings.tcu != state) { in kone_sysfs_set_tcu()
526 kone->settings.tcu = state; in kone_sysfs_set_tcu()
531 dev_err(&usb_dev->dev, "couldn't set tcu state\n"); in kone_sysfs_set_tcu()
552 static DEVICE_ATTR(tcu, 0660, kone_sysfs_show_tcu, kone_sysfs_set_tcu);
630 * 1 = on. Writing 0 deactivates tcu and writing 1 calibrates and
631 * activates the tcu
/Linux-v5.10/drivers/pwm/
Dpwm-jz4740.c15 #include <linux/mfd/ingenic-tcu.h>
40 /* Enable all TCU channels for PWM use by default except channels 0/1 */ in jz4740_pwm_can_use_chn()
105 * Set duty > period. This trick allows the TCU channels in TCU2 mode to in jz4740_pwm_disable()
/Linux-v5.10/include/dt-bindings/clock/
Dingenic,sysost.h3 * This header provides clock numbers for the ingenic,tcu DT binding.

123