[PATCH v7 0/5] Add MAX77541/MAX77540 PMIC Support

From: Okan Sahin
Date: Wed Apr 12 2023 - 07:31:41 EST


MFD, regulator and ADC driver and related bindings for MAX77540/MAX77541.
The patches are required to be applied in sequence.

Changes in v7:
* Patch 1: "dt-bindings: regulator: max77541: Add ADI MAX77541/MAX77540 Regulator"
* NO CHANGE
* Patch 2: "regulator: max77541: Add ADI MAX77541/MAX77540 Regulator Support"
* Add explanation into Kconfig
* Patch 3: "iio: adc: : max77541 Add ADI MAX77541 ADC Support"
* NO CHANGE
* Patch 4: "dt-bindings: mfd: max77541: adi,max77541.yaml Add MAX77541 bindings"
* NO CHANGE
* Patch 5: "mfd: max77541: Add MAX77541/MAX77540 PMIC Support"
* Drop chip_info structure, use only id.
* Use plain number as data.

Changes in v6:
* Patch 1: "dt-bindings: regulator: max77541: Add ADI MAX77541/MAX77540 Regulator"
* NO CHANGE
* Patch 2: "regulator: max77541: Add ADI MAX77541/MAX77540 Regulator Support"
* Drop unnecessary headers
* Patch 3: "iio: adc: : max77541 Add ADI MAX77541 ADC Support"
* Drop unnecessary headers
* Patch 4: "dt-bindings: mfd: max77541: adi,max77541.yaml Add MAX77541 bindings"
* NO CHANGE
* Patch 5: "mfd: max77541: Add MAX77541/MAX77540 PMIC Support"
* Add more explanation to Kconfig
* Drop unnecessary headers
* Change differentiate method for different IC's
* Modify order of registers in header file

Changes in v5:
* Patch 1: "dt-bindings: regulator: max77541: Add ADI MAX77541/MAX77540 Regulator"
* Drop compatible properties.
* Patch 2: "regulator: max77541: Add ADI MAX77541/MAX77540 Regulator Support"
* Change if-else ladder to switch case for chip->id
* Drop driver_data in platform_device_id
* Patch 3: "iio: adc: : max77541 Add ADI MAX77541 ADC Support"
* Drop max77541_adc_iio struct
* Patch 4: "dt-bindings: mfd: max77541: adi,max77541.yaml Add MAX77541 bindings"
* Drop allOf
* Patch 5: "mfd: max77541: Add MAX77541/MAX77540 PMIC Support"
* Dont use compatible when using MFD_CELL_OF MACRO

Changes in v4:
* Patch 1: "dt-bindings: regulator: Add ADI MAX77541/MAX77540 Regulator"
* NO CHANGE
* Patch 2: "drivers: regulator: Add ADI MAX77541/MAX77540 Regulator Support"
* Drop OF ID Table
* Drop driver_data in platform_device_id
* Patch 3: "drivers: iio: adc: Add ADI MAX77541 ADC Support"
* Add missing blank line
* Patch 4: "dt-bindings: mfd: adi,max77541.yaml Add MAX77541 bindings"
* NO CHANGE(Order of patchset changed, and [4/5] has dependency to [1/5])
* Patch 5: "drivers: mfd: Add MAX77541/MAX77540 PMIC Support"
* Use pointers in the driver_data
* Use probe_new instead of probe
* Use PLATFORM_DEVID_NONE macro instead of "-1"

Changes in v3:
* Patch 1: "drivers: mfd: Add ADI MAX77541/MAX77540 PMIC Support"
* Change struct name from max77541_dev to max77541
* Adjust max-line-length lower than 80
* Patch 2: "dt-bindings: mfd: Add ADI MAX77541/MAX77540"
* Remove adc object as we do not need
* Remove adc node from example
* Patch 3: "drivers: regulator: Add ADI MAX77541/MAX77540 Regulator Support"
* Change node name from "BUCK#_id" to "buck#_id" in regulator desc
* Patch 4: "dt-bindings: regulator: Add ADI MAX77541/MAX77540 Regulator"
* Change node name from "BUCK" to "buck" in regulators
* Patch 5: "drivers: iio: adc: Add ADI MAX77541 ADC Support"
* Convert voltage values from V to mV for scaling.
* Convert temperature values from C to miliC for scale and offset
* Do not set offset bit in info_mask_separate for voltage that does not need offset
* Remove unnecessary dev_get_drvdata() instead of it use dev_get_regmap to have regmap.
* Assing hard coded name for adc dev name

Changes in v2:
* Patch 1: "drivers: mfd: Add MAX77541/MAX77540 PMIC Support"
* Drop "this patch adds" from commit message.
* Drop redundant blank lines.
* Drop module version
* Use definition for parameter of devm_mfd_add_devices(.., -1,..)
* Use desc in chip_info to adding desc for different devices.
* Add missing headers and forward declarations.
* Drop unused elements from max77541_dev struct
* Add chip_info into max77541_dev struct to identify different devices.
* Patch 2: "dt-bindings: mfd: adi,max77541.yaml Add MAX77541 bindings"
* Drop "this patch adds" from commit message.
* Fix $ref path
* Drop adc part under allOf
* Keep only one example (more complex one)
* Fix make dt_binding_check errors.(trailing space, No newline)
* Patch 3: "drivers: regulator: Add MAX77541 Regulator Support"
* Drop "this patch adds" from commit message.
* Add trailing comma for required structs.
* Fix wrong indentation.
* Drop redundant blank lines.
* Drop max77541_regulator_dev struct.
* Use "regulator_desc *desc" for both regulator
regarding to "max77541->id"
* Patch 4: "dt-bindings: regulator: max77541-regulator.yaml Add MAX77541
Regulator bindings"
* Drop "this patch adds" from commit message.
* Chance filename (matching compatible), so adi,max77541-regulator.yaml
* Fix make dt_binding_check errors.(trailing space, No newline)
* Patch 5: "drivers: iio: adc: Add MAX77541 ADC Support"
* Drop "this patch adds" from commit message.
* Drop redundant blank lines.
* Fix wrong include path.
* Use switch instead of if-else for range setting in max77541_adc_scale
* Move max77541_adc_range enum from max77541.h to here.
* Use definition from units.h
* Drop unused elements from max77541_adc_iio struct
* Drop the .data from platform_device_id

Okan Sahin (5):
dt-bindings: regulator: max77541: Add ADI MAX77541/MAX77540 Regulator
regulator: max77541: Add ADI MAX77541/MAX77540 Regulator Support
iio: adc: max77541: Add ADI MAX77541 ADC Support
dt-bindings: mfd: max77541: Add ADI MAX77541/MAX77540
mfd: max77541: Add ADI MAX77541/MAX77540 PMIC Support

.../devicetree/bindings/mfd/adi,max77541.yaml | 68 ++++++
.../regulator/adi,max77541-regulator.yaml | 38 +++
drivers/iio/adc/Kconfig | 11 +
drivers/iio/adc/Makefile | 1 +
drivers/iio/adc/max77541-adc.c | 194 +++++++++++++++
drivers/mfd/Kconfig | 13 +
drivers/mfd/Makefile | 1 +
drivers/mfd/max77541.c | 224 ++++++++++++++++++
drivers/regulator/Kconfig | 11 +
drivers/regulator/Makefile | 1 +
drivers/regulator/max77541-regulator.c | 153 ++++++++++++
include/linux/mfd/max77541.h | 91 +++++++
12 files changed, 806 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mfd/adi,max77541.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/adi,max77541-regulator.yaml
create mode 100644 drivers/iio/adc/max77541-adc.c
create mode 100644 drivers/mfd/max77541.c
create mode 100644 drivers/regulator/max77541-regulator.c
create mode 100644 include/linux/mfd/max77541.h

--
2.30.2