From b71f1fd962c66ba3fa46483f193cc2263146c5bf Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 21 Jan 2019 12:23:55 +0000 Subject: [PATCH] overlays: Add mcp342x overlay Support the MCP342x family of ADCs from Microchip. See: https://github.com/raspberrypi/linux/issues/2819 Signed-off-by: Phil Elwell --- arch/arm/boot/dts/overlays/Makefile | 1 + arch/arm/boot/dts/overlays/README | 16 ++++ .../arm/boot/dts/overlays/mcp342x-overlay.dts | 93 +++++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 arch/arm/boot/dts/overlays/mcp342x-overlay.dts --- a/arch/arm/boot/dts/overlays/Makefile +++ b/arch/arm/boot/dts/overlays/Makefile @@ -79,6 +79,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ mcp2515-can1.dtbo \ mcp3008.dtbo \ mcp3202.dtbo \ + mcp342x.dtbo \ media-center.dtbo \ midi-uart0.dtbo \ midi-uart1.dtbo \ --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -1277,6 +1277,22 @@ Params: spi--present boolean, spi--speed integer, set the spi bus speed for this device +Name: mcp342x +Info: Overlay for activation of Microchip MCP3421-3428 ADCs over I2C +Load: dtoverlay=mcp342x,= +Params: addr I2C bus address of device, for devices with + addresses that are configurable, e.g. by + hardware links (default=0x68) + mcp3421 The device is an MCP3421 + mcp3422 The device is an MCP3422 + mcp3423 The device is an MCP3423 + mcp3424 The device is an MCP3424 + mcp3425 The device is an MCP3425 + mcp3426 The device is an MCP3426 + mcp3427 The device is an MCP3427 + mcp3428 The device is an MCP3428 + + Name: media-center Info: Media Center HAT - 2.83" Touch Display + extras by Pi Supply Load: dtoverlay=media-center,= --- /dev/null +++ b/arch/arm/boot/dts/overlays/mcp342x-overlay.dts @@ -0,0 +1,93 @@ +// Overlay for MCP3421-8 ADCs from Microchip Semiconductor + +/dts-v1/; +/plugin/; + +/ { + compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709"; + + fragment@0 { + target = <&i2c1>; + __overlay__ { + #address-cells = <1>; + #size-cells = <0>; + + status = "okay"; + + mcp342x: mcp@68 { + reg = <0x68>; + + status = "okay"; + }; + }; + }; + + fragment@1 { + target = <&mcp342x>; + __dormant__ { + compatible = "microchip,mcp3421"; + }; + }; + + fragment@2 { + target = <&mcp342x>; + __dormant__ { + compatible = "microchip,mcp3422"; + }; + }; + + fragment@3 { + target = <&mcp342x>; + __dormant__ { + compatible = "microchip,mcp3423"; + }; + }; + + fragment@4 { + target = <&mcp342x>; + __dormant__ { + compatible = "microchip,mcp3424"; + }; + }; + + fragment@5 { + target = <&mcp342x>; + __dormant__ { + compatible = "microchip,mcp3425"; + }; + }; + + fragment@6 { + target = <&mcp342x>; + __dormant__ { + compatible = "microchip,mcp3426"; + }; + }; + + fragment@7 { + target = <&mcp342x>; + __dormant__ { + compatible = "microchip,mcp3427"; + }; + }; + + fragment@8 { + target = <&mcp342x>; + __dormant__ { + compatible = "microchip,mcp3428"; + }; + }; + + __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"; + }; +}; +