Message ID | 20230921130818.21247-3-jonathanh@nvidia.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | hwmon: ina3221: Add selective summation support | expand |
On Thu, Sep 21, 2023 at 02:08:16PM +0100, Jon Hunter wrote: > The INA3221 has a critical alert pin that can be controlled by the > summation control function. This function adds the single > shunt-voltage conversions for the desired channels in order to > compare the combined sum to the programmed limit. The Shunt-Voltage > Sum Limit register contains the programmed value that is compared > to the value in the Shunt-Voltage Sum register in order to > determine if the total summed limit is exceeded. If the > shunt-voltage sum limit value is exceeded, the critical alert pin > pulls low. > > For the summation limit to have a meaningful value, it is necessary > to use the same shunt-resistor value on all included channels. Add a new > vendor specific property, 'ti,summation-disable', to allow specific > channels to be excluded from the summation control function if the shunt > resistor is different to other channels or the channel should not be > considered for triggering the critical alert pin. You are adding this feature to the driver, but requiring a new property to disable it. So what happens with an existing user (old DT) and a kernel with the new feature? Rob
On 22/09/2023 22:06, Rob Herring wrote: > On Thu, Sep 21, 2023 at 02:08:16PM +0100, Jon Hunter wrote: >> The INA3221 has a critical alert pin that can be controlled by the >> summation control function. This function adds the single >> shunt-voltage conversions for the desired channels in order to >> compare the combined sum to the programmed limit. The Shunt-Voltage >> Sum Limit register contains the programmed value that is compared >> to the value in the Shunt-Voltage Sum register in order to >> determine if the total summed limit is exceeded. If the >> shunt-voltage sum limit value is exceeded, the critical alert pin >> pulls low. >> >> For the summation limit to have a meaningful value, it is necessary >> to use the same shunt-resistor value on all included channels. Add a new >> vendor specific property, 'ti,summation-disable', to allow specific >> channels to be excluded from the summation control function if the shunt >> resistor is different to other channels or the channel should not be >> considered for triggering the critical alert pin. > > You are adding this feature to the driver, but requiring a new property > to disable it. So what happens with an existing user (old DT) and a > kernel with the new feature? Not exactly. The summation support has always been supported in the driver and is enabled (if the shunt resistors for all channels are the same). What we want to do is support summation but only for a subset of channels which is not supported today. So this new property allows us to explicitly tell the driver not to include a specific channel in the summation. Jon
diff --git a/Documentation/devicetree/bindings/hwmon/ti,ina3221.yaml b/Documentation/devicetree/bindings/hwmon/ti,ina3221.yaml index d0e64a72af5b..8afbe729076f 100644 --- a/Documentation/devicetree/bindings/hwmon/ti,ina3221.yaml +++ b/Documentation/devicetree/bindings/hwmon/ti,ina3221.yaml @@ -58,6 +58,25 @@ patternProperties: shunt-resistor-micro-ohms: description: shunt resistor value in micro-Ohm + ti,summation-disable: + description: | + The INA3221 has a critical alert pin that can be controlled by the + summation control function. This function adds the single + shunt-voltage conversions for the desired channels in order to + compare the combined sum to the programmed limit. The Shunt-Voltage + Sum Limit register contains the programmed value that is compared + to the value in the Shunt-Voltage Sum register in order to + determine if the total summed limit is exceeded. If the + shunt-voltage sum limit value is exceeded, the critical alert pin + is asserted. + + For the summation limit to have a meaningful value, it is necessary + to use the same shunt-resistor value on all enabled channels. If + this is not the case or if a channel should not be used for + triggering the critical alert pin, then this property can be used + exclude specific channels from the summation control function. + type: boolean + required: - reg