Qualcomm QPNP BSI - battery serial interface devices qpnp-bsi is a BIF driver which supports the BSI peripheral inside of PMICs that utilize the MSM SPMI implementation. Required properties: - compatible: Must be "qcom,qpnp-bsi". - reg: Specifies the SPMI address and size for this BSI device as well as the address of the BATT_ID status register. - reg-names: A list of strings identifying the reg property entries. The list must contain both "bsi-base" and "batt-id-status". - label: A string used as a descriptive name for this BIF controller. - interrupts: Specifies a list of four interrupts corresponding to IRQ ERR, IRQ RX, IRQ TX, and IRQ BATT_PRESENT in any order. - interrupt-names: Must be a list of strings containing all three of these strings: "err", "rx", "tx", "batt-present". The ordering of these strings must match the ordering of the interrupts in the "interrupts" property. Required structure: - A qcom,qpnp-bsi node must be a child of an SPMI node that has specified the spmi-slave-container property. Optional properties: - qcom,min-clock-period: This property specifies a minimum clock period for the Tau BIF reference in nanoseconds. It can be used to impose a minimum period which is higher (i.e. more restrictive) than that supported by the hardware. The BSI module supports 8 possible periods between 2080 ns and 150420 ns. - qcom,max-clock-period: This property specifies a maximum clock period for the Tau BIF reference in nanoseconds. It can be used to impose a maximum period which is lower (i.e. more restrictive) than that supported by the hardware. The BSI module supports 8 possible periods between 2080 ns and 150420 ns. - qcom,sample-rate: Specifies the rate at which the BIF BCL should be sampled during communication with respect to the Tau BIF reference rate. Supported values are 4 and 8 which represent 4x and 8x sampling rates respectively. If this property is not specified, then 4x sampling is assumed. - qcom,channel-num: VADC channel number associated PMIC BATT_ID pin. If no channel is specified, then it will not be possible to measure the slave Rid. - qcom,pullup-ohms: Host side pull-up resistance present on BCL in ohms. If no value is specified, then 100000 ohms is assumed. - qcom,vref-microvolts: Reference voltage used for BCL divider circuit in microvolts. If no value is specified, then 1800000 uV is assumed. - qcom,bsi-vadc: Corresponding VADC device phandle. All properties specified within for the BIF framework can also be used. These properties can be found in bif.txt. Example: qcom,spmi@fc4c0000 { #address-cells = <1>; #size-cells = <0>; interrupt-controller; #interrupt-cells = <3>; qcom,pm8941@1 { spmi-slave-container; reg = <0x1>; #address-cells = <1>; #size-cells = <1>; qcom,bsi@1b00 { compatible = "qcom,qpnp-bsi"; reg = <0x1b00 0x100>, <0x1208 0x1>; reg-names = "bsi-base", "batt-id-status"; label = "pm8941-bsi"; interrupts = <0x0 0x1b 0x0>, <0x0 0x1b 0x1>, <0x0 0x1b 0x2>, <0x0 0x12 0x0>; interrupt-names = "err", "rx", "tx", "batt-present"; qcom,sample-rate = <8>; qcom,min-clock-period = <15830>; qcom,max-clock-period = <122080>; qcom,channel-num = <0x31>; qcom,pullup-ohms = <100000>; qcom,vref-microvolts = <1800000>; qcom,bsi-vadc = <&pm8941_vadc>; }; }; };