On Mon, Nov 21 2022 at 09:26:59 +01:00:00, Krzysztof Kozlowski
<krzysztof.kozlowski@xxxxxxxxxx> wrote:
On 20/11/2022 16:46, Yassine Oudjana wrote:
+ interrupts:
+ items:
+ - description: Charger error
+ - description: Charger inhibited
+ - description: Charger precharge safety timer timeout
+ - description: Charger charge safety timer timeout
+ - description: Charger pre to fast charging switch
threshold reached
+ - description: Charger recharge threshold reached
+ - description: Charger taper threshold reached
+ - description: Charger charge termination threshold reached
+ - description: Battery hot
+ - description: Battery warm
+ - description: Battery cold
+ - description: Battery cool
+ - description: Battery overvoltage
+ - description: Battery low
+ - description: Battery missing
+ - description: Battery thermistor missing # unconfirmed
+ - description: USB input undervolt
+ - description: USB input overvolt
+ - description: USB input source detected
+ - description: OTG regulator failure
+ - description: OTG regulator overcurrent
+ - description: Automatic input current limiting done
+ - description: USB ID pin changed
+ - description: DC input undervolt
+ - description: DC input overvolt
+ - description: Power OK
+ - description: Temperature shutdown
+ - description: Watchdog timeout
+ - description: Flash failure
+ - description: OTST2 # unknown
+ - description: OTST3 # unknown
It seems you listed register interrupts, not physical pins. This
should
be interrupt lines.
I'm not sure what I'm supposed to do here. I couldn't find an
interrupt-lines
property used anywhere so that's not what you meant, right?
Are these physical interrupt lines this device has, register offsets
or
virtual interrupts (e.g. passed via irq_chip)? Definitely not the
first
and rather offsets for qpnpint_irq_domain_translate. Devicetree is not
for describing register layout of devices. IOW, register layout does
not
change on different boards, because the device is exactly the same, so
there is no point to put it into DTS.
So how would I describe the interrupts then? Or if you are saying I
shouldn't have these interrupts in DT at all, how would I get them and
register handlers for them in the driver? the PMIC arbiter takes 4
interrupt cells, 3 of which are these offsets specifying the peripheral
and interrupt. All other PMIC peripherals currently described in DT
(examples being qcom,pm8916-wcd-analog-codec, qcom,pm8941-pwrkey and
qcom-wled) have their interrupts (if any) described this way, with the
only exceptions perhaps being the GPIO and MPP controllers which are
themselves interrupt controllers. Changing the way PMIC peripheral
interrupts are described would require changing PMIC arbiter bindings
and code which I believe is out of the scope of this patch series.