/Linux-v5.10/Documentation/devicetree/bindings/timer/ |
D | ingenic,tcu.yaml | 1 # 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/ |
D | ingenic-timer.c | 1 // 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 …]
|
D | ingenic-ost.c | 1 // 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/ |
D | jz4740.dtsi | 1 // 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 …]
|
D | jz4770.dtsi | 1 // 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 …]
|
D | jz4725b.dtsi | 1 // 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 …]
|
D | jz4780.dtsi | 1 // 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 …]
|
D | x1830.dtsi | 1 // 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 …]
|
D | x1000.dtsi | 1 // 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 …]
|
D | rs90.dts | 1 // 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 …]
|
D | cu1830-neo.dts | 1 // 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 …]
|
D | cu1000-neo.dts | 1 // 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 …]
|
D | ci20.dts | 1 // 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 …]
|
D | qi_lb60.dts | 1 // 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 …]
|
D | gcw0.dts | 1 // 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/ |
D | tcu.c | 1 // 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 …]
|
D | Kconfig | 1 # 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/ |
D | ingenic-tcu.rst | 1 .. 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 …]
|
D | index.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 MIPS-specific Documentation 12 ingenic-tcu
|
/Linux-v5.10/drivers/irqchip/ |
D | irq-ingenic-tcu.c | 1 // 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/ |
D | pwm-jz4740.c | 1 // 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/ |
D | ingenic,sysost.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * This header provides clock numbers for the ingenic,tcu DT binding.
|
D | ingenic,tcu.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * This header provides clock numbers for the ingenic,tcu DT binding.
|
/Linux-v5.10/include/linux/mfd/ |
D | ingenic-tcu.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * Header file for the Ingenic JZ47xx TCU driver
|
/Linux-v5.10/drivers/watchdog/ |
D | jz4740_wdt.c | 1 // 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 …]
|