Kernel driver isl68137
======================

Supported chips:

  * Renesas ISL68137

    Prefix: 'isl68137'

    Addresses scanned: -

    Datasheet:

      Publicly available at the Renesas website
      https://www.renesas.com/us/en/www/doc/datasheet/isl68137.pdf

  * Renesas ISL68220

    Prefix: 'isl68220'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL68221

    Prefix: 'isl68221'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL68222

    Prefix: 'isl68222'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL68223

    Prefix: 'isl68223'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL68224

    Prefix: 'isl68224'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL68225

    Prefix: 'isl68225'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL68226

    Prefix: 'isl68226'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL68227

    Prefix: 'isl68227'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL68229

    Prefix: 'isl68229'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL68233

    Prefix: 'isl68233'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL68239

    Prefix: 'isl68239'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69222

    Prefix: 'isl69222'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69223

    Prefix: 'isl69223'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69224

    Prefix: 'isl69224'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69225

    Prefix: 'isl69225'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69227

    Prefix: 'isl69227'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69228

    Prefix: 'isl69228'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69234

    Prefix: 'isl69234'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69236

    Prefix: 'isl69236'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69239

    Prefix: 'isl69239'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69242

    Prefix: 'isl69242'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69243

    Prefix: 'isl69243'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69247

    Prefix: 'isl69247'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69248

    Prefix: 'isl69248'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69254

    Prefix: 'isl69254'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69255

    Prefix: 'isl69255'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69256

    Prefix: 'isl69256'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69259

    Prefix: 'isl69259'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69260

    Prefix: 'isl69260'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69268

    Prefix: 'isl69268'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69269

    Prefix: 'isl69269'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas ISL69298

    Prefix: 'isl69298'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas RAA228000

    Prefix: 'raa228000'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas RAA228004

    Prefix: 'raa228004'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas RAA228006

    Prefix: 'raa228006'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas RAA228228

    Prefix: 'raa228228'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas RAA229001

    Prefix: 'raa229001'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

  * Renesas RAA229004

    Prefix: 'raa229004'

    Addresses scanned: -

    Datasheet:

      Publicly available (after August 2020 launch) at the Renesas website

Authors:
      - Maxim Sloyko <maxims@google.com>
      - Robert Lippert <rlippert@google.com>
      - Patrick Venture <venture@google.com>
      - Grant Peltier <grant.peltier.jg@renesas.com>

Description
-----------

This driver supports the Renesas ISL68137 and all 2nd generation Renesas
digital multiphase voltage regulators (raa_dmpvr2). The ISL68137 is a digital
output 7-phase configurable PWM controller with an AVSBus interface. 2nd
generation devices are grouped into 4 distinct configurations: '1rail' for
single-rail devices, '2rail' for dual-rail devices, '3rail' for 3-rail devices,
and 'hv' for high voltage single-rail devices. Consult the individual datasheets
for more information.

Usage Notes
-----------

This driver does not probe for PMBus devices. You will have to instantiate
devices explicitly.

The ISL68137 AVS operation mode must be enabled/disabled at runtime.

Beyond the normal sysfs pmbus attributes, the driver exposes a control attribute
for the ISL68137.

For 2nd generation Renesas digital multiphase voltage regulators, only the
normal sysfs pmbus attributes are supported.

ISL68137 sysfs attributes
-------------------------

======================= ====================================
avs(0|1)_enable		Controls the AVS state of each rail.

curr1_label		"iin"
curr1_input		Measured input current
curr1_crit		Critical maximum current
curr1_crit_alarm	Current critical high alarm

curr[2-3]_label		"iout[1-2]"
curr[2-3]_input		Measured output current
curr[2-3]_crit		Critical maximum current
curr[2-3]_crit_alarm	Current critical high alarm

in1_label		"vin"
in1_input		Measured input voltage
in1_lcrit		Critical minimum input voltage
in1_lcrit_alarm		Input voltage critical low alarm
in1_crit		Critical maximum input voltage
in1_crit_alarm		Input voltage critical high alarm

in[2-3]_label		"vout[1-2]"
in[2-3]_input		Measured output voltage
in[2-3]_lcrit		Critical minimum output voltage
in[2-3]_lcrit_alarm	Output voltage critical low alarm
in[2-3]_crit		Critical maximum output voltage
in[2-3]_crit_alarm	Output voltage critical high alarm

power1_label		"pin"
power1_input		Measured input power
power1_alarm		Input power high alarm

power[2-3]_label	"pout[1-2]"
power[2-3]_input	Measured output power

temp[1-3]_input		Measured temperature
temp[1-3]_crit		Critical high temperature
temp[1-3]_crit_alarm	Chip temperature critical high alarm
temp[1-3]_max		Maximum temperature
temp[1-3]_max_alarm	Chip temperature high alarm
======================= ====================================

raa_dmpvr2_1rail/hv sysfs attributes
------------------------------------

======================= ==========================================
curr1_label		"iin"
curr1_input		Measured input current
curr1_crit		Critical maximum current
curr1_crit_alarm	Current critical high alarm

curr2_label		"iout"
curr2_input		Measured output current
curr2_crit		Critical maximum current
curr2_crit_alarm	Current critical high alarm

in1_label		"vin"
in1_input		Measured input voltage
in1_lcrit		Critical minimum input voltage
in1_lcrit_alarm		Input voltage critical low alarm
in1_crit		Critical maximum input voltage
in1_crit_alarm		Input voltage critical high alarm

in2_label		"vmon"
in2_input		Scaled VMON voltage read from the VMON pin

in3_label		"vout"
in3_input		Measured output voltage
in3_lcrit		Critical minimum output voltage
in3_lcrit_alarm         Output voltage critical low alarm
in3_crit		Critical maximum output voltage
in3_crit_alarm          Output voltage critical high alarm

power1_label		"pin"
power1_input		Measured input power
power1_alarm		Input power high alarm

power2_label	        "pout"
power2_input	        Measured output power

temp[1-3]_input		Measured temperature
temp[1-3]_crit		Critical high temperature
temp[1-3]_crit_alarm	Chip temperature critical high alarm
temp[1-3]_max		Maximum temperature
temp[1-3]_max_alarm	Chip temperature high alarm
======================= ==========================================

raa_dmpvr2_2rail sysfs attributes
---------------------------------

======================= ==========================================
curr[1-2]_label		"iin[1-2]"
curr[1-2]_input		Measured input current
curr[1-2]_crit		Critical maximum current
curr[1-2]_crit_alarm	Current critical high alarm

curr[3-4]_label		"iout[1-2]"
curr[3-4]_input		Measured output current
curr[3-4]_crit		Critical maximum current
curr[3-4]_crit_alarm	Current critical high alarm

in1_label		"vin"
in1_input		Measured input voltage
in1_lcrit		Critical minimum input voltage
in1_lcrit_alarm		Input voltage critical low alarm
in1_crit		Critical maximum input voltage
in1_crit_alarm		Input voltage critical high alarm

in2_label		"vmon"
in2_input		Scaled VMON voltage read from the VMON pin

in[3-4]_label		"vout[1-2]"
in[3-4]_input		Measured output voltage
in[3-4]_lcrit		Critical minimum output voltage
in[3-4]_lcrit_alarm	Output voltage critical low alarm
in[3-4]_crit		Critical maximum output voltage
in[3-4]_crit_alarm	Output voltage critical high alarm

power[1-2]_label	"pin[1-2]"
power[1-2]_input	Measured input power
power[1-2]_alarm	Input power high alarm

power[3-4]_label	"pout[1-2]"
power[3-4]_input	Measured output power

temp[1-5]_input		Measured temperature
temp[1-5]_crit		Critical high temperature
temp[1-5]_crit_alarm	Chip temperature critical high alarm
temp[1-5]_max		Maximum temperature
temp[1-5]_max_alarm	Chip temperature high alarm
======================= ==========================================

raa_dmpvr2_3rail sysfs attributes
---------------------------------

======================= ==========================================
curr[1-3]_label		"iin[1-3]"
curr[1-3]_input		Measured input current
curr[1-3]_crit		Critical maximum current
curr[1-3]_crit_alarm	Current critical high alarm

curr[4-6]_label		"iout[1-3]"
curr[4-6]_input		Measured output current
curr[4-6]_crit		Critical maximum current
curr[4-6]_crit_alarm	Current critical high alarm

in1_label		"vin"
in1_input		Measured input voltage
in1_lcrit		Critical minimum input voltage
in1_lcrit_alarm		Input voltage critical low alarm
in1_crit		Critical maximum input voltage
in1_crit_alarm		Input voltage critical high alarm

in2_label		"vmon"
in2_input		Scaled VMON voltage read from the VMON pin

in[3-5]_label		"vout[1-3]"
in[3-5]_input		Measured output voltage
in[3-5]_lcrit		Critical minimum output voltage
in[3-5]_lcrit_alarm	Output voltage critical low alarm
in[3-5]_crit		Critical maximum output voltage
in[3-5]_crit_alarm	Output voltage critical high alarm

power[1-3]_label	"pin[1-3]"
power[1-3]_input	Measured input power
power[1-3]_alarm	Input power high alarm

power[4-6]_label	"pout[1-3]"
power[4-6]_input	Measured output power

temp[1-7]_input		Measured temperature
temp[1-7]_crit		Critical high temperature
temp[1-7]_crit_alarm	Chip temperature critical high alarm
temp[1-7]_max		Maximum temperature
temp[1-7]_max_alarm	Chip temperature high alarm
======================= ==========================================