/Linux-v5.10/drivers/clk/ingenic/ |
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 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 …]
|
D | Kconfig | 69 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/ |
D | tegra-tcu.c | 52 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/ |
D | ingenic-timer.c | 3 * 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 …]
|
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 115 /* Enable OST TCU channel */ in ingenic_ost_probe()
|
/Linux-v5.10/Documentation/devicetree/bindings/timer/ |
D | ingenic,tcu.yaml | 4 $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/ |
D | irq-ingenic-tcu.c | 3 * 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/ |
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-v5.10/Documentation/devicetree/bindings/serial/ |
D | nvidia,tegra194-tcu.txt | 1 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/ |
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>;
|
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>;
|
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>;
|
D | jz4780.dtsi | 3 #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>;
|
D | cu1830-neo.dts | 6 #include <dt-bindings/clock/ingenic,tcu.h> 46 &tcu { 48 assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER2>;
|
D | cu1000-neo.dts | 6 #include <dt-bindings/clock/ingenic,tcu.h> 46 &tcu { 48 assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER2>;
|
D | x1830.dtsi | 2 #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>;
|
D | rs90.dts | 292 &tcu { 297 assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>, <&tcu TCU_CLK_WDT>;
|
D | gcw0.dts | 5 #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>;
|
D | x1000.dtsi | 2 #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>;
|
D | ci20.dts | 5 #include <dt-bindings/clock/ingenic,tcu.h> 491 &tcu { 493 assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>;
|
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-v5.10/Documentation/ABI/testing/ |
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-v5.10/drivers/hid/ |
D | hid-roccat-kone.c | 457 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/ |
D | pwm-jz4740.c | 15 #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/ |
D | ingenic,sysost.h | 3 * This header provides clock numbers for the ingenic,tcu DT binding.
|