1bf26a472SChunyan Zhang# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2bf26a472SChunyan Zhang# Copyright 2022 Unisoc Inc. 3bf26a472SChunyan Zhang%YAML 1.2 4bf26a472SChunyan Zhang--- 5bf26a472SChunyan Zhang$id: http://devicetree.org/schemas/gpio/sprd,gpio-eic.yaml# 6bf26a472SChunyan Zhang$schema: http://devicetree.org/meta-schemas/core.yaml# 7bf26a472SChunyan Zhang 8bf26a472SChunyan Zhangtitle: Unisoc EIC controller 9bf26a472SChunyan Zhang 10bf26a472SChunyan Zhangmaintainers: 11bf26a472SChunyan Zhang - Orson Zhai <orsonzhai@gmail.com> 12bf26a472SChunyan Zhang - Baolin Wang <baolin.wang7@gmail.com> 13bf26a472SChunyan Zhang - Chunyan Zhang <zhang.lyra@gmail.com> 14bf26a472SChunyan Zhang 15bf26a472SChunyan Zhangdescription: | 16bf26a472SChunyan Zhang The EIC is the abbreviation of external interrupt controller, which can 17bf26a472SChunyan Zhang be used only in input mode. The Spreadtrum platform has 2 EIC controllers, 18bf26a472SChunyan Zhang one is in digital chip, and another one is in PMIC. The digital chip EIC 19bf26a472SChunyan Zhang controller contains 4 sub-modules, i.e. EIC-debounce, EIC-latch, EIC-async and 20bf26a472SChunyan Zhang EIC-sync. But the PMIC EIC controller contains only one EIC-debounce sub- 21bf26a472SChunyan Zhang module. 22bf26a472SChunyan Zhang 23bf26a472SChunyan Zhang The EIC-debounce sub-module provides up to 8 source input signal 24bf26a472SChunyan Zhang connections. A debounce mechanism is used to capture the input signals' 25bf26a472SChunyan Zhang stable status (millisecond resolution) and a single-trigger mechanism 26bf26a472SChunyan Zhang is introduced into this sub-module to enhance the input event detection 27bf26a472SChunyan Zhang reliability. In addition, this sub-module's clock can be shut off 28bf26a472SChunyan Zhang automatically to reduce power dissipation. Moreover the debounce range 29bf26a472SChunyan Zhang is from 1ms to 4s with a step size of 1ms. The input signal will be 30bf26a472SChunyan Zhang ignored if it is asserted for less than 1 ms. 31bf26a472SChunyan Zhang 32bf26a472SChunyan Zhang The EIC-latch sub-module is used to latch some special power down signals 33bf26a472SChunyan Zhang and generate interrupts, since the EIC-latch does not depend on the APB 34bf26a472SChunyan Zhang clock to capture signals. 35bf26a472SChunyan Zhang 36bf26a472SChunyan Zhang The EIC-async sub-module uses a 32kHz clock to capture the short signals 37bf26a472SChunyan Zhang (microsecond resolution) to generate interrupts by level or edge trigger. 38bf26a472SChunyan Zhang 39bf26a472SChunyan Zhang The EIC-sync is similar with GPIO's input function, which is a synchronized 40bf26a472SChunyan Zhang signal input register. It can generate interrupts by level or edge trigger 41bf26a472SChunyan Zhang when detecting input signals. 42bf26a472SChunyan Zhang 43bf26a472SChunyan Zhangproperties: 44bf26a472SChunyan Zhang compatible: 45*3c0c7b1dSChunyan Zhang oneOf: 46*3c0c7b1dSChunyan Zhang - enum: 47bf26a472SChunyan Zhang - sprd,sc9860-eic-debounce 48bf26a472SChunyan Zhang - sprd,sc9860-eic-latch 49bf26a472SChunyan Zhang - sprd,sc9860-eic-async 50bf26a472SChunyan Zhang - sprd,sc9860-eic-sync 51bf26a472SChunyan Zhang - sprd,sc2731-eic 52*3c0c7b1dSChunyan Zhang - items: 53*3c0c7b1dSChunyan Zhang - enum: 54*3c0c7b1dSChunyan Zhang - sprd,ums512-eic-debounce 55*3c0c7b1dSChunyan Zhang - const: sprd,sc9860-eic-debounce 56*3c0c7b1dSChunyan Zhang - items: 57*3c0c7b1dSChunyan Zhang - enum: 58*3c0c7b1dSChunyan Zhang - sprd,ums512-eic-latch 59*3c0c7b1dSChunyan Zhang - const: sprd,sc9860-eic-latch 60*3c0c7b1dSChunyan Zhang - items: 61*3c0c7b1dSChunyan Zhang - enum: 62*3c0c7b1dSChunyan Zhang - sprd,ums512-eic-async 63*3c0c7b1dSChunyan Zhang - const: sprd,sc9860-eic-async 64*3c0c7b1dSChunyan Zhang - items: 65*3c0c7b1dSChunyan Zhang - enum: 66*3c0c7b1dSChunyan Zhang - sprd,ums512-eic-sync 67*3c0c7b1dSChunyan Zhang - const: sprd,sc9860-eic-sync 68*3c0c7b1dSChunyan Zhang - items: 69*3c0c7b1dSChunyan Zhang - enum: 70*3c0c7b1dSChunyan Zhang - sprd,sc2730-eic 71*3c0c7b1dSChunyan Zhang - const: sprd,sc2731-eic 72bf26a472SChunyan Zhang 73bf26a472SChunyan Zhang reg: 74bf26a472SChunyan Zhang minItems: 1 75bf26a472SChunyan Zhang maxItems: 3 76bf26a472SChunyan Zhang description: 77bf26a472SChunyan Zhang EIC controller can support maximum 3 banks which has its own 78bf26a472SChunyan Zhang address base. 79bf26a472SChunyan Zhang 80bf26a472SChunyan Zhang gpio-controller: true 81bf26a472SChunyan Zhang 82bf26a472SChunyan Zhang "#gpio-cells": 83bf26a472SChunyan Zhang const: 2 84bf26a472SChunyan Zhang 85bf26a472SChunyan Zhang interrupt-controller: true 86bf26a472SChunyan Zhang 87bf26a472SChunyan Zhang "#interrupt-cells": 88bf26a472SChunyan Zhang const: 2 89bf26a472SChunyan Zhang 90bf26a472SChunyan Zhang interrupts: 91bf26a472SChunyan Zhang maxItems: 1 92bf26a472SChunyan Zhang description: 93bf26a472SChunyan Zhang The interrupt shared by all GPIO lines for this controller. 94bf26a472SChunyan Zhang 95bf26a472SChunyan Zhangrequired: 96bf26a472SChunyan Zhang - compatible 97bf26a472SChunyan Zhang - reg 98bf26a472SChunyan Zhang - gpio-controller 99bf26a472SChunyan Zhang - "#gpio-cells" 100bf26a472SChunyan Zhang - interrupt-controller 101bf26a472SChunyan Zhang - "#interrupt-cells" 102bf26a472SChunyan Zhang - interrupts 103bf26a472SChunyan Zhang 104bf26a472SChunyan ZhangadditionalProperties: false 105bf26a472SChunyan Zhang 106bf26a472SChunyan Zhangexamples: 107bf26a472SChunyan Zhang - | 108bf26a472SChunyan Zhang #include <dt-bindings/interrupt-controller/arm-gic.h> 109bf26a472SChunyan Zhang 110bf26a472SChunyan Zhang soc { 111bf26a472SChunyan Zhang #address-cells = <2>; 112bf26a472SChunyan Zhang #size-cells = <2>; 113bf26a472SChunyan Zhang 114bf26a472SChunyan Zhang eic_debounce: gpio@40210000 { 115bf26a472SChunyan Zhang compatible = "sprd,sc9860-eic-debounce"; 116bf26a472SChunyan Zhang reg = <0 0x40210000 0 0x80>; 117bf26a472SChunyan Zhang gpio-controller; 118bf26a472SChunyan Zhang #gpio-cells = <2>; 119bf26a472SChunyan Zhang interrupt-controller; 120bf26a472SChunyan Zhang #interrupt-cells = <2>; 121bf26a472SChunyan Zhang interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; 122bf26a472SChunyan Zhang }; 123bf26a472SChunyan Zhang }; 124bf26a472SChunyan Zhang... 125