AnsweredAssumed Answered

LS2088A: pps-gpio

Question asked by Ramasubramanian Subramanian on Aug 29, 2019
Latest reply on Sep 11, 2019 by Yiping Wang

Hi,

We are trying to use IRQ04/GPIO3_28 pin for PPS.  This pin is connected to FPGA which generates PPS.

 

We have enabled PPS driver in the kernel device tree

 pps {
               compatible = "pps-gpio";
               gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>;
               assert-falling-edge;
               
       };

 

and

CONFIG_PPS_CLIENT_GPIO in the kernel config.

We are unable to capture interrupts.

The PPS driver is registered.

 

74960.216582] pps pps1: new PPS source pps.-1
[74960.220861] pps pps1: Registered IRQ 356 as PPS source

 

But the CPU gets stalled and we do not catch interrupts. The interrupt is registered.

 

 

cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
3: 42317212 37580614 40761246 40646651 GICv3 30 Level arch_timer
6: 0 0 0 0 GICv3 23 Level arm-pmu
8: 3053 0 0 0 GICv3 64 Level ttyS0
9: 0 0 0 0 GICv3 45 Level arm-smmu global fault
10: 0 0 0 0 GICv3 46 Level arm-smmu global fault
11: 0 0 0 0 GICv3 47 Level arm-smmu global fault
12: 0 0 0 0 GICv3 48 Level arm-smmu global fault
13: 0 0 0 0 GICv3 243 Level arm-smmu global fault
14: 0 0 0 0 GICv3 244 Level arm-smmu global fault
15: 0 0 0 0 GICv3 245 Level arm-smmu global fault
16: 0 0 0 0 GICv3 246 Level arm-smmu global fault
17: 0 0 0 0 GICv3 247 Level arm-smmu global fault
18: 0 0 0 0 GICv3 248 Level arm-smmu global fault
19: 0 0 0 0 GICv3 249 Level arm-smmu global fault
20: 0 0 0 0 GICv3 250 Level arm-smmu global fault
21: 0 0 0 0 GICv3 178 Level arm-smmu-context-fault
22: 0 0 0 0 GICv3 179 Level arm-smmu-context-fault
23: 0 0 0 0 GICv3 180 Level arm-smmu-context-fault
85: 7094 0 0 0 GICv3 60 Level mmc0
88: 1838786 0 0 0 GICv3 66 Level 2000000.i2c
89: 1276865 0 0 0 GICv3 67 Level 2020000.i2c, 2030000.i2c
91: 0 0 0 0 GICv3 150 Level aerdrv
92: 0 0 0 0 GICv3 155 Level aerdrv
95: 0 0 0 0 GICv3 76 Level 2800000.ftm0
96: 0 0 0 0 GICv3 49 Level [EDAC] MC err
97: 0 0 0 0 GICv3 50 Level [EDAC] MC err
98: 827735591 0 0 0 ITS-fMSI 230000 Edge dpio.3
99: 0 0 0 0 ITS-fMSI 230001 Edge dpio.2
100: 0 0 0 0 ITS-fMSI 230002 Edge dpio.1
101: 0 0 0 0 ITS-fMSI 230003 Edge dpio.0
102: 0 0 0 0 ITS-fMSI 230004 Edge dprc.1
103: 0 0 0 0 ITS-fMSI 230005 Edge dpni.7
104: 1 0 0 0 ITS-fMSI 230006 Edge dpni.6
105: 1 0 0 0 ITS-fMSI 230007 Edge dpni.5
106: 1 0 0 0 ITS-fMSI 230008 Edge dpni.4
107: 1 0 0 0 ITS-fMSI 230009 Edge dpni.3
108: 3 0 0 0 ITS-fMSI 230010 Edge dpni.2
109: 1 0 0 0 ITS-fMSI 230011 Edge dpni.1
110: 1 0 0 0 ITS-fMSI 230012 Edge dpni.0
111: 0 0 0 0 ITS-fMSI 230013 Edge dpmac.8
112: 0 0 0 0 ITS-fMSI 230014 Edge dpmac.7
113: 0 0 0 0 ITS-fMSI 230015 Edge dpmac.6
114: 0 0 0 0 ITS-fMSI 230016 Edge dpmac.5
115: 0 0 0 0 ITS-fMSI 230017 Edge dpmac.4
116: 0 0 0 0 ITS-fMSI 230018 Edge dpmac.3
117: 0 0 0 0 ITS-fMSI 230019 Edge dpmac.2
118: 0 0 0 0 ITS-fMSI 230020 Edge dpmac.1
354: 0 0 0 0 GICv3 151 Level PCIe PME
355: 0 0 0 0 GICv3 156 Level PCIe PME
356: 0 0 0 0 mpc8xxx-gpio 28 Edge pps.-1
IPI0: 33569268 50029802 40483554 40281328 Rescheduling interrupts
IPI1: 170 527 539 468 Function call interrupts
IPI2: 0 0 0 0 CPU stop interrupts
IPI3: 0 0 0 0 CPU stop (for crash dump) interrupts
IPI4: 0 0 0 0 Timer broadcast interrupts
IPI5: 0 0 0 0 IRQ work interrupts
IPI6: 0 0 0 0 CPU wake-up interrupts
Err: 0

 

We have verified that we have pps pulses on the pin.  We tried to vary the pulse width, still the behaviour is same.  No interrupts and cpu stalls.

 

Do you have any inputs

 

Outcomes