Have been trying to create a DTS file for a LP87524 on i2c bus 1 address 0x60, I have what appears to be a overlay that compiles and runs however my initial values are not being set on load.
I've used https://elixir.bootlin.com/linux/latest/source/Documentation/devicetree/bindings/mfd/ti,lp87524-q1.yaml as the reference for my DTS file but may be a little out of my depth. I think the NRST is not being triggered which makes me question my DTS file see below. I see "UU" in the correct position on I2CDetect command it returns to a x60 when i unload my overlay. However my voltages do not change.
on compiling the DTS using dtc -@ -I dts -O dtb -o lp875_overlay.dtbo lp875_overlay.dts i get the following warnings
lp875_overlay.dts:15.5-18: Warning (reg_format): /fragment@0/__overlay__/lp87524@60:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
lp875_overlay.dtbo: Warning (pci_device_reg): Failed prerequisite 'reg_format'
lp875_overlay.dtbo: Warning (pci_device_bus_num): Failed prerequisite 'reg_format'
lp875_overlay.dtbo: Warning (simple_bus_reg): Failed prerequisite 'reg_format'
lp875_overlay.dtbo: Warning (i2c_bus_reg): Failed prerequisite 'reg_format'
lp875_overlay.dtbo: Warning (spi_bus_reg): Failed prerequisite 'reg_format'
lp875_overlay.dts:13.24-55.6: Warning (avoid_default_addr_size): /fragment@0/__overlay__/lp87524@60: Relying on default #address-cells value
lp875_overlay.dts:13.24-55.6: Warning (avoid_default_addr_size): /fragment@0/__overlay__/lp87524@60: Relying on default #size-cells value
lp875_overlay.dtbo: Warning (avoid_unnecessary_addr_size): Failed prerequisite 'avoid_default_addr_size'
lp875_overlay.dtbo: Warning (unique_unit_address): Failed prerequisite 'avoid_default_addr_size'
/dts-v1/;
/plugin/;
/ {
compatible = "brcm,bcm2835";
fragment@0 {
target=<&i2c1>;
__overlay__ {
status = "okay";
lp87524: lp87524@60 {
compatible = "ti,lp87524-q1";
reg = <0x60>;
gpio-controller;
#gpio-cells = <2>;
reset-gpios = <5>;
buck0-in-supply = <5>;
buck1-in-supply = <5>;
buck2-in-supply = <5>;
buck3-in-supply = <5>;
regulators {
buck0_reg: buck0 {
regulator-name = "buck0";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
buck1_reg: buck1 {
regulator-name = "buck1";
regulator-min-microvolt = <1650000>;
regulator-max-microvolt = <1650000>;
regulator-always-on;
};
buck2_reg: buck2 {
regulator-name = "buck2";
regulator-min-microvolt = <825000>;
regulator-max-microvolt = <825000>;
regulator-always-on;
};
buck3_reg: buck3 {
regulator-name = "buck3";
regulator-min-microvolt = <412500>;
regulator-max-microvolt = <412500>;
regulator-always-on;
};
};
};
};
};
};