Home
last modified time | relevance | path

Searched +full:ingenic +full:- +full:tcu (Results 1 – 25 of 38) sorted by relevance

12

/openbmc/linux/Documentation/devicetree/bindings/timer/
H A Dingenic,tcu.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/timer/ingenic,tcu.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.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.
14 - Paul Cercueil <paul@crapouillou.net>
21 - ingenic,jz4740-tcu
22 - ingenic,jz4725b-tcu
[all …]
/openbmc/linux/drivers/clocksource/
H A Dingenic-timer.c1 // SPDX-License-Identifier: GPL-2.0
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()
69 return container_of(timer, struct ingenic_tcu, timers[timer->cpu]); in to_ingenic_tcu()
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
[all …]
H A Dingenic-ost.c1 // SPDX-License-Identifier: GPL-2.0
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
47 return readl(ingenic_ost->regs + OST_REG_CNTL); in ingenic_ost_read_cntl()
53 return readl(ingenic_ost->regs + OST_REG_CNTH); in ingenic_ost_read_cnth()
69 struct device *dev = &pdev->dev; in ingenic_ost_probe()
78 return -EINVAL; in ingenic_ost_probe()
82 return -ENOMEM; in ingenic_ost_probe()
86 ost->regs = devm_platform_ioremap_resource(pdev, 0); in ingenic_ost_probe()
[all …]
/openbmc/linux/drivers/clk/ingenic/
H A Dtcu.c1 // SPDX-License-Identifier: GPL-2.0
3 * JZ47xx SoCs TCU clocks driver
8 #include <linux/clk-provider.h>
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
68 const struct ingenic_tcu_clk_info *info = tcu_clk->info; in ingenic_tcu_enable()
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()
[all …]
H A DKconfig1 # SPDX-License-Identifier: GPL-2.0-only
2 menu "Ingenic SoCs drivers"
9 bool "Ingenic JZ4740 CGU driver"
13 Support the clocks provided by the CGU hardware on Ingenic JZ4740
19 bool "Ingenic JZ4755 CGU driver"
23 Support the clocks provided by the CGU hardware on Ingenic JZ4755
29 bool "Ingenic JZ4725B CGU driver"
33 Support the clocks provided by the CGU hardware on Ingenic JZ4725B
39 bool "Ingenic JZ4760 CGU driver"
43 Support the clocks provided by the CGU hardware on Ingenic JZ4760
[all …]
/openbmc/linux/arch/mips/boot/dts/ingenic/
H A Dx1830.dtsi1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/ingenic,tcu.h>
3 #include <dt-bindings/clock/ingenic,x1830-cgu.h>
4 #include <dt-bindings/dma/x1830-dma.h>
7 #address-cells = <1>;
8 #size-cells = <1>;
9 compatible = "ingenic,x1830";
12 #address-cells = <1>;
13 #size-cells = <0>;
17 compatible = "ingenic,xburst-fpu2.0-mxu2.0";
[all …]
H A Djz4740.dtsi1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/ingenic,jz4740-cgu.h>
3 #include <dt-bindings/clock/ingenic,tcu.h>
6 #address-cells = <1>;
7 #size-cells = <1>;
8 compatible = "ingenic,jz4740";
11 #address-cells = <1>;
12 #size-cells = <0>;
16 compatible = "ingenic,xburst-mxu1.0";
20 clock-names = "cpu";
[all …]
H A Djz4770.dtsi1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/ingenic,jz4770-cgu.h>
3 #include <dt-bindings/clock/ingenic,tcu.h>
6 #address-cells = <1>;
7 #size-cells = <1>;
8 compatible = "ingenic,jz4770";
11 #address-cells = <1>;
12 #size-cells = <0>;
16 compatible = "ingenic,xburst-fpu1.0-mxu1.1";
20 clock-names = "cpu";
[all …]
H A Djz4725b.dtsi1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/ingenic,jz4725b-cgu.h>
3 #include <dt-bindings/clock/ingenic,tcu.h>
6 #address-cells = <1>;
7 #size-cells = <1>;
8 compatible = "ingenic,jz4725b";
11 #address-cells = <1>;
12 #size-cells = <0>;
16 compatible = "ingenic,xburst-mxu1.0";
20 clock-names = "cpu";
[all …]
H A Djz4780.dtsi1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/ingenic,jz4780-cgu.h>
3 #include <dt-bindings/clock/ingenic,tcu.h>
4 #include <dt-bindings/dma/jz4780-dma.h>
7 #address-cells = <1>;
8 #size-cells = <1>;
9 compatible = "ingenic,jz4780";
12 #address-cells = <1>;
13 #size-cells = <0>;
17 compatible = "ingenic,xburst-fpu1.0-mxu1.1";
[all …]
H A Dx1000.dtsi1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/ingenic,tcu.h>
3 #include <dt-bindings/clock/ingenic,x1000-cgu.h>
4 #include <dt-bindings/dma/x1000-dma.h>
7 #address-cells = <1>;
8 #size-cells = <1>;
9 compatible = "ingenic,x1000", "ingenic,x1000e";
12 #address-cells = <1>;
13 #size-cells = <0>;
17 compatible = "ingenic,xburst-fpu1.0-mxu1.1";
[all …]
H A Drs90.dts1 // SPDX-License-Identifier: GPL-2.0
2 /dts-v1/;
6 #include <dt-bindings/gpio/gpio.h>
7 #include <dt-bindings/iio/adc/ingenic,adc.h>
8 #include <dt-bindings/input/linux-event-codes.h>
11 compatible = "ylm,rs90", "ingenic,jz4725b";
12 model = "RS-90";
19 reserved-memory {
20 #address-cells = <1>;
21 #size-cells = <1>;
[all …]
H A Dci20.dts1 // SPDX-License-Identifier: GPL-2.0
2 /dts-v1/;
5 #include <dt-bindings/clock/ingenic,tcu.h>
6 #include <dt-bindings/gpio/gpio.h>
7 #include <dt-bindings/input/input.h>
8 #include <dt-bindings/interrupt-controller/irq.h>
9 #include <dt-bindings/regulator/active-semi,8865-regulator.h>
12 compatible = "img,ci20", "ingenic,jz4780";
22 stdout-path = &uart4;
31 gpio-keys {
[all …]
H A Dqi_lb60.dts1 // SPDX-License-Identifier: GPL-2.0
2 /dts-v1/;
6 #include <dt-bindings/gpio/gpio.h>
7 #include <dt-bindings/iio/adc/ingenic,adc.h>
8 #include <dt-bindings/clock/ingenic,tcu.h>
9 #include <dt-bindings/input/input.h>
18 compatible = "qi,lb60", "ingenic,jz4740";
27 stdout-path = &uart0;
30 vcc: regulator-0 {
31 compatible = "regulator-fixed";
[all …]
H A Dgcw0.dts1 // SPDX-License-Identifier: GPL-2.0
2 /dts-v1/;
5 #include <dt-bindings/clock/ingenic,tcu.h>
7 #include <dt-bindings/gpio/gpio.h>
8 #include <dt-bindings/iio/adc/ingenic,adc.h>
9 #include <dt-bindings/input/input.h>
12 compatible = "gcw,zero", "ingenic,jz4770";
29 stdout-path = "serial2:57600n8";
33 compatible = "regulator-fixed";
34 regulator-name = "vcc";
[all …]
/openbmc/linux/Documentation/arch/mips/
H A Dingenic-tcu.rst1 .. SPDX-License-Identifier: GPL-2.0
4 Ingenic JZ47xx SoCs Timer/Counter Unit hardware
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
14 - JZ4725B introduced a separate channel, called Operating System Timer
15 (OST). It is a 32-bit programmable timer. On JZ4760B and above, it is
16 64-bit.
18 - Each one of the TCU channels has its own clock, which can be reparented to three
21 - The watchdog and OST hardware blocks also feature a TCSR register with the same
23 - The TCU registers used to gate/ungate can also gate/ungate the watchdog and
[all …]
H A Dindex.rst1 .. SPDX-License-Identifier: GPL-2.0
4 MIPS-specific Documentation
12 ingenic-tcu
/openbmc/linux/drivers/irqchip/
H A Dirq-ingenic-tcu.c1 // SPDX-License-Identifier: GPL-2.0
3 * JZ47xx SoCs TCU IRQ driver
11 #include <linux/mfd/ingenic-tcu.h>
26 struct irq_chip *irq_chip = irq_data_get_irq_chip(&desc->irq_data); in ingenic_tcu_intc_cascade()
29 struct regmap *map = gc->private; in ingenic_tcu_intc_cascade()
52 struct regmap *map = gc->private; in ingenic_tcu_gc_unmask_enable_reg()
53 u32 mask = d->mask; in ingenic_tcu_gc_unmask_enable_reg()
56 regmap_write(map, ct->regs.ack, mask); in ingenic_tcu_gc_unmask_enable_reg()
57 regmap_write(map, ct->regs.enable, mask); in ingenic_tcu_gc_unmask_enable_reg()
58 *ct->mask_cache |= mask; in ingenic_tcu_gc_unmask_enable_reg()
[all …]
H A DKconfig1 # SPDX-License-Identifier: GPL-2.0-only
121 tristate "Broadcom STB 7038-style L1/L2 interrupt controller driver"
129 tristate "Broadcom STB 7120-style L2 interrupt controller driver"
211 bool "J-Core integrated AIC" if COMPILE_TEST
215 Support for the J-Core integrated AIC.
226 interrupt pins, as found on SH/R-Mobile and R-Car Gen1 SoCs.
229 bool "Renesas R-Mobile APE6, R-Car Gen{2,3} and RZ/G{1,2} IRQC support" if COMPILE_TEST
234 devices, as found on R-Mobile APE6, R-Car Gen{2,3} and RZ/G{1,2} SoCs.
284 tristate "TS-4800 IRQ controller"
289 Support for the TS-4800 FPGA IRQ controller
[all …]
/openbmc/linux/Documentation/translations/zh_CN/arch/mips/
H A Dingenic-tcu.rst1 .. SPDX-License-Identifier: GPL-2.0
3 .. include:: ../../disclaimer-zh_CN.rst
5 :Original: Documentation/arch/mips/ingenic-tcu.rst
11 .. _cn_ingenic-tcu:
17 君正 JZ47xx SoC中的定时器/计数器单元(TCU)是一个多功能硬件块。它有多达
20 - JZ4725B, JZ4750, JZ4755 只有6个TCU通道。其它SoC都有8个通道。
22 - JZ4725B引入了一个独立的通道,称为操作系统计时器(OST)。这是一个32位可
25 - 每个TCU通道都有自己的时钟源,可以通过 TCSR 寄存器设置通道的父级时钟
28 - 看门狗和OST硬件模块在它们的寄存器空间中也有相同形式的TCSR寄存器。
29 - 用于关闭/开启的 TCU 寄存器也可以关闭/开启看门狗和 OST 时钟。
[all …]
H A Dindex.rst1 .. SPDX-License-Identifier: GPL-2.0
3 .. include:: ../../disclaimer-zh_CN.rst
20 ingenic-tcu
/openbmc/linux/drivers/pwm/
H A Dpwm-jz4740.c1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Copyright (C) 2010, Lars-Peter Clausen <lars@metafoo.de>
7 * - The .apply callback doesn't complete the currently running period before
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()
41 u32 pwm_channels_mask = GENMASK(jz->chip.npwm - 1, 2); in jz4740_pwm_can_use_chn()
43 device_property_read_u32(jz->chip.dev->parent, in jz4740_pwm_can_use_chn()
44 "ingenic,pwm-channels-mask", in jz4740_pwm_can_use_chn()
57 if (!jz4740_pwm_can_use_chn(jz, pwm->hwpwm)) in jz4740_pwm_request()
58 return -EBUSY; in jz4740_pwm_request()
[all …]
/openbmc/linux/include/dt-bindings/clock/
H A Dingenic,tcu.h1 /* SPDX-License-Identifier: GPL-2.0 */
3 * This header provides clock numbers for the ingenic,tcu DT binding.
/openbmc/linux/include/linux/mfd/
H A Dingenic-tcu.h1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Header file for the Ingenic JZ47xx TCU driver
/openbmc/linux/drivers/watchdog/
H A Djz4740_wdt.c1 // SPDX-License-Identifier: GPL-2.0-or-later
7 #include <linux/mfd/ingenic-tcu.h>
50 regmap_write(drvdata->map, TCU_REG_WDT_TCNT, 0); in jz4740_wdt_ping()
59 u16 timeout_value = (u16)(drvdata->clk_rate * new_timeout); in jz4740_wdt_set_timeout()
62 regmap_read(drvdata->map, TCU_REG_WDT_TCER, &tcer); in jz4740_wdt_set_timeout()
63 regmap_write(drvdata->map, TCU_REG_WDT_TCER, 0); in jz4740_wdt_set_timeout()
65 regmap_write(drvdata->map, TCU_REG_WDT_TDR, timeout_value); in jz4740_wdt_set_timeout()
66 regmap_write(drvdata->map, TCU_REG_WDT_TCNT, 0); in jz4740_wdt_set_timeout()
69 regmap_write(drvdata->map, TCU_REG_WDT_TCER, TCU_WDT_TCER_TCEN); in jz4740_wdt_set_timeout()
71 wdt_dev->timeout = new_timeout; in jz4740_wdt_set_timeout()
[all …]

12