/openbmc/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 102 tegra_tcu_write(tcu, &xmit->buf[xmit->tail], count); in tegra_tcu_uart_start_tx() 149 struct tegra_tcu *tcu = container_of(cons, struct tegra_tcu, console); in tegra_tcu_console_write() local 151 tegra_tcu_write(tcu, s, count); in tegra_tcu_console_write() [all …]
|
/openbmc/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
|
/openbmc/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 | 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()
|
/openbmc/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 …]
|
/openbmc/linux/drivers/irqchip/ |
H A D | irq-ingenic-tcu.c | 3 * 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 …]
|
/openbmc/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 …]
|
/openbmc/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";
|
/openbmc/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.
|
/openbmc/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 | rs90.dts | 302 &tcu { 307 assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>, <&tcu TCU_CLK_WDT>;
|
H A D | gcw0.dts | 5 #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 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>;
|
/openbmc/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.
|
/openbmc/linux/Documentation/devicetree/bindings/iommu/ |
H A D | arm,smmu.yaml | 293 through the TCU's programming interface. 305 through the TCU's programming interface. 307 through the TCU's programming interface. 335 through the TCU's programming interface. 348 through the TCU's programming interface. 350 through the TCU's programming interface. 374 through the TCU's programming interface. 428 through the TCU's programming interface.
|
/openbmc/linux/drivers/hid/ |
H A D | hid-roccat-kone.c | 454 return snprintf(buf, PAGE_SIZE, "%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
|
/openbmc/linux/drivers/pwm/ |
H A 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()
|
/openbmc/linux/include/dt-bindings/clock/ |
H A D | ingenic,tcu.h | 3 * This header provides clock numbers for the ingenic,tcu DT binding.
|