| From 00f01136b1c165e0f4a190fcb5ec8aa11428362f Mon Sep 17 00:00:00 2001 |
| From: Phil Elwell <phil@raspberrypi.org> |
| Date: Mon, 9 Dec 2019 12:32:20 +0000 |
| Subject: [PATCH] overlays: Make mcp342x run-time compatible |
| |
| The order of processing of run-time overlays differs from that done by |
| the firmware. This means that certain parameter processing techniques |
| are not compatible with run-time use. The mcp342x overlay is one such |
| overlay, but it is easy to change the implementation without changing |
| the interface. |
| |
| See: https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=258294 |
| |
| Signed-off-by: Phil Elwell <phil@raspberrypi.org> |
| --- |
| .../arm/boot/dts/overlays/mcp342x-overlay.dts | 133 ++++++++++++++---- |
| 1 file changed, 102 insertions(+), 31 deletions(-) |
| |
| --- a/arch/arm/boot/dts/overlays/mcp342x-overlay.dts |
| +++ b/arch/arm/boot/dts/overlays/mcp342x-overlay.dts |
| @@ -8,14 +8,15 @@ |
| |
| fragment@0 { |
| target = <&i2c1>; |
| - __overlay__ { |
| + __dormant__ { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| status = "okay"; |
| |
| - mcp342x: mcp@68 { |
| + mcp3421: mcp@68 { |
| reg = <0x68>; |
| + compatible = "microchip,mcp3421"; |
| |
| status = "okay"; |
| }; |
| @@ -23,71 +24,141 @@ |
| }; |
| |
| fragment@1 { |
| - target = <&mcp342x>; |
| + target = <&i2c1>; |
| __dormant__ { |
| - compatible = "microchip,mcp3421"; |
| + #address-cells = <1>; |
| + #size-cells = <0>; |
| + |
| + status = "okay"; |
| + |
| + mcp3422: mcp@68 { |
| + reg = <0x68>; |
| + compatible = "microchip,mcp3422"; |
| + |
| + status = "okay"; |
| + }; |
| }; |
| }; |
| |
| fragment@2 { |
| - target = <&mcp342x>; |
| + target = <&i2c1>; |
| __dormant__ { |
| - compatible = "microchip,mcp3422"; |
| + #address-cells = <1>; |
| + #size-cells = <0>; |
| + |
| + status = "okay"; |
| + |
| + mcp3423: mcp@68 { |
| + reg = <0x68>; |
| + compatible = "microchip,mcp3423"; |
| + |
| + status = "okay"; |
| + }; |
| }; |
| }; |
| |
| fragment@3 { |
| - target = <&mcp342x>; |
| + target = <&i2c1>; |
| __dormant__ { |
| - compatible = "microchip,mcp3423"; |
| + #address-cells = <1>; |
| + #size-cells = <0>; |
| + |
| + status = "okay"; |
| + |
| + mcp3424: mcp@68 { |
| + reg = <0x68>; |
| + compatible = "microchip,mcp3424"; |
| + |
| + status = "okay"; |
| + }; |
| }; |
| }; |
| |
| fragment@4 { |
| - target = <&mcp342x>; |
| + target = <&i2c1>; |
| __dormant__ { |
| - compatible = "microchip,mcp3424"; |
| + #address-cells = <1>; |
| + #size-cells = <0>; |
| + |
| + status = "okay"; |
| + |
| + mcp3425: mcp@68 { |
| + reg = <0x68>; |
| + compatible = "microchip,mcp3425","mcp3425"; |
| + |
| + status = "okay"; |
| + }; |
| }; |
| }; |
| |
| fragment@5 { |
| - target = <&mcp342x>; |
| + target = <&i2c1>; |
| __dormant__ { |
| - compatible = "microchip,mcp3425"; |
| + #address-cells = <1>; |
| + #size-cells = <0>; |
| + |
| + status = "okay"; |
| + |
| + mcp3426: mcp@68 { |
| + reg = <0x68>; |
| + compatible = "microchip,mcp3426"; |
| + |
| + status = "okay"; |
| + }; |
| }; |
| }; |
| |
| fragment@6 { |
| - target = <&mcp342x>; |
| + target = <&i2c1>; |
| __dormant__ { |
| - compatible = "microchip,mcp3426"; |
| + #address-cells = <1>; |
| + #size-cells = <0>; |
| + |
| + status = "okay"; |
| + |
| + mcp3427: mcp@68 { |
| + reg = <0x68>; |
| + compatible = "microchip,mcp3427"; |
| + |
| + status = "okay"; |
| + }; |
| }; |
| }; |
| |
| fragment@7 { |
| - target = <&mcp342x>; |
| + target = <&i2c1>; |
| __dormant__ { |
| - compatible = "microchip,mcp3427"; |
| - }; |
| - }; |
| + #address-cells = <1>; |
| + #size-cells = <0>; |
| |
| - fragment@8 { |
| - target = <&mcp342x>; |
| - __dormant__ { |
| - compatible = "microchip,mcp3428"; |
| + status = "okay"; |
| + |
| + mcp3428: mcp@68 { |
| + reg = <0x68>; |
| + compatible = "microchip,mcp3428"; |
| + |
| + status = "okay"; |
| + }; |
| }; |
| }; |
| |
| __overrides__ { |
| - addr = <&mcp342x>,"reg:0"; |
| - mcp3421 = <0>,"=1"; |
| - mcp3422 = <0>,"=2"; |
| - mcp3423 = <0>,"=3"; |
| - mcp3424 = <0>,"=4"; |
| - mcp3425 = <0>,"=5"; |
| - mcp3426 = <0>,"=6"; |
| - mcp3427 = <0>,"=7"; |
| - mcp3428 = <0>,"=8"; |
| + addr = <&mcp3421>,"reg:0", |
| + <&mcp3422>,"reg:0", |
| + <&mcp3423>,"reg:0", |
| + <&mcp3424>,"reg:0", |
| + <&mcp3425>,"reg:0", |
| + <&mcp3426>,"reg:0", |
| + <&mcp3427>,"reg:0", |
| + <&mcp3428>,"reg:0"; |
| + mcp3421 = <0>,"=0"; |
| + mcp3422 = <0>,"=1"; |
| + mcp3423 = <0>,"=2"; |
| + mcp3424 = <0>,"=3"; |
| + mcp3425 = <0>,"=4"; |
| + mcp3426 = <0>,"=5"; |
| + mcp3427 = <0>,"=6"; |
| + mcp3428 = <0>,"=7"; |
| }; |
| }; |
| |