| /linux/drivers/clk/ingenic/ |
| H A D | tcu.c | 3 * 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 D | Kconfig | 89 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 D | tegra-tcu.c | 51 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 D | ingenic-timer.c | 3 * 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 D | timer-ep93xx.c | 77 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 D | ingenic-ost.c | 3 * 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 D | ingenic,tcu.yaml | 4 $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 D | irq-ingenic-tcu.c | 3 * 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 D | ingenic-tcu.rst | 7 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 D | nvidia,tegra194-tcu.yaml | 4 $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 D | ingenic-tcu.rst | 5 :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 D | ingenic-tcu.rst | 5 :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 D | jz4740.dtsi | 3 #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 D | x1830.dtsi | 2 #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 D | jz4725b.dtsi | 3 #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 D | jz4770.dtsi | 3 #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 D | jz4780.dtsi | 3 #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 D | x1000.dtsi | 2 #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 D | ci20.dts | 5 #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 D | qi_lb60.dts | 8 #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 D | sysfs-driver-hid-roccat-kone | 69 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 D | hid-roccat-kone.c | 454 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 D | pvr_rogue_defs.h | 152 * 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 D | ingenic,tcu.h | 3 * This header provides clock numbers for the ingenic,tcu DT binding.
|
| /linux/Documentation/ABI/obsolete/ |
| H A D | sysfs-driver-hid-roccat-konepure | 88 …ig num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/konepure/roccatkonepure<minor>/tcu 102 calibration process initiated with tcu.
|