Home
last modified time | relevance | path

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

12

/Linux-v5.10/Documentation/devicetree/bindings/timer/
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) devicetree bindings
10 For a description of the TCU hardware and drivers, have a look at
11 Documentation/mips/ingenic-tcu.rst.
14 - Paul Cercueil <paul@crapouillou.net>
21 - ingenic,jz4740-tcu
22 - ingenic,jz4725b-tcu
[all …]
/Linux-v5.10/drivers/clocksource/
Dingenic-timer.c1 // SPDX-License-Identifier: GPL-2.0
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()
70 return container_of(timer, struct ingenic_tcu, timers[timer->cpu]); in to_ingenic_tcu()
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
[all …]
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 …]
/Linux-v5.10/arch/mips/boot/dts/ingenic/
Djz4740.dtsi1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/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 …]
Djz4770.dtsi1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/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 …]
Djz4725b.dtsi1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/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 …]
Djz4780.dtsi1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/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 …]
Dx1830.dtsi1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/ingenic,tcu.h>
3 #include <dt-bindings/clock/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 …]
Dx1000.dtsi1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/ingenic,tcu.h>
3 #include <dt-bindings/clock/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 …]
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";
20 compatible = "regulator-fixed";
22 regulator-name = "vcc";
23 regulaor-min-microvolt = <3300000>;
[all …]
Dcu1830-neo.dts1 // SPDX-License-Identifier: GPL-2.0
2 /dts-v1/;
5 #include <dt-bindings/gpio/gpio.h>
6 #include <dt-bindings/clock/ingenic,tcu.h>
7 #include <dt-bindings/interrupt-controller/irq.h>
10 compatible = "yna,cu1830-neo", "ingenic,x1830";
11 model = "YSH & ATIL General Board CU1830-Neo";
18 stdout-path = "serial1:115200n8";
27 compatible = "gpio-leds";
28 led-0 {
[all …]
Dcu1000-neo.dts1 // SPDX-License-Identifier: GPL-2.0
2 /dts-v1/;
5 #include <dt-bindings/gpio/gpio.h>
6 #include <dt-bindings/clock/ingenic,tcu.h>
7 #include <dt-bindings/interrupt-controller/irq.h>
10 compatible = "yna,cu1000-neo", "ingenic,x1000e";
11 model = "YSH & ATIL General Board CU1000-Neo";
18 stdout-path = "serial2:115200n8";
27 compatible = "gpio-leds";
28 led-0 {
[all …]
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 …]
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;
31 compatible = "regulator-fixed";
32 regulator-name = "vcc";
[all …]
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 …]
/Linux-v5.10/drivers/clk/ingenic/
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
45 struct ingenic_tcu *tcu; member
67 const struct ingenic_tcu_clk_info *info = tcu_clk->info; in ingenic_tcu_enable()
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()
[all …]
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 JZ4725B CGU driver"
23 Support the clocks provided by the CGU hardware on Ingenic JZ4725B
29 bool "Ingenic JZ4770 CGU driver"
33 Support the clocks provided by the CGU hardware on Ingenic JZ4770
39 bool "Ingenic JZ4780 CGU driver"
43 Support the clocks provided by the CGU hardware on Ingenic JZ4780
[all …]
/Linux-v5.10/Documentation/mips/
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 …]
Dindex.rst1 .. SPDX-License-Identifier: GPL-2.0
4 MIPS-specific Documentation
12 ingenic-tcu
/Linux-v5.10/drivers/irqchip/
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()
50 struct regmap *map = gc->private; in ingenic_tcu_gc_unmask_enable_reg()
51 u32 mask = d->mask; in ingenic_tcu_gc_unmask_enable_reg()
54 regmap_write(map, ct->regs.ack, mask); in ingenic_tcu_gc_unmask_enable_reg()
55 regmap_write(map, ct->regs.enable, mask); in ingenic_tcu_gc_unmask_enable_reg()
56 *ct->mask_cache |= mask; in ingenic_tcu_gc_unmask_enable_reg()
[all …]
/Linux-v5.10/drivers/pwm/
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 …]
/Linux-v5.10/include/dt-bindings/clock/
Dingenic,sysost.h1 /* SPDX-License-Identifier: GPL-2.0 */
3 * This header provides clock numbers for the ingenic,tcu DT binding.
Dingenic,tcu.h1 /* SPDX-License-Identifier: GPL-2.0 */
3 * This header provides clock numbers for the ingenic,tcu DT binding.
/Linux-v5.10/include/linux/mfd/
Dingenic-tcu.h1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Header file for the Ingenic JZ47xx TCU driver
/Linux-v5.10/drivers/watchdog/
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