diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile index 157bbdd8167fd3..764f8ba81db9bb 100644 --- a/arch/arm/boot/dts/overlays/Makefile +++ b/arch/arm/boot/dts/overlays/Makefile @@ -279,6 +279,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ rpi-ad74413r.dtbo \ rpi-ad9545-hmc7044.dtbo \ rpi-ad9834.dtbo \ + rpi-adalm-lsmspg.dtbo \ rpi-adar1000.dtbo \ rpi-adgs1408.dtbo \ rpi-adl5580.dtbo \ diff --git a/arch/arm/boot/dts/overlays/rpi-adalm-lsmspg-overlay.dts b/arch/arm/boot/dts/overlays/rpi-adalm-lsmspg-overlay.dts new file mode 100644 index 00000000000000..2a547f925ce802 --- /dev/null +++ b/arch/arm/boot/dts/overlays/rpi-adalm-lsmspg-overlay.dts @@ -0,0 +1,196 @@ +// SPDX-License-Identifier: GPL-2.0 +/dts-v1/; +/plugin/; + +#include + +/ { + compatible = "brcm,bcm2835", "brcm,bcm2837", "brcm,bcm2711", "brcm,bcm2712"; + + __overrides__ { + cs_pin = <&ad5592r>,"reg:0"; + lm75_addr = <&lm75>,"reg:0"; + ad5593r_addr = <&ad5593r>,"reg:0"; + }; +}; + +&spidev0 { + status = "disabled"; +}; + +&spi0 { + #size-cells = <0>; + #address-cells = <1>; + status = "okay"; + + ad5592r: ad5592r@0 { + compatible = "adi,ad5592r"; + reg = <0>; + label = "my_lsmspg_ad5592r"; + spi-max-frequency = <1000000>; + spi-cpol; + #gpio-cells = <2>; + gpio-controller; + + channel@0 { + reg = <0>; + adi,mode = ; + }; + + channel@1 { + reg = <1>; + adi,mode = ; + }; + + channel@2 { + reg = <2>; + adi,mode = ; + }; + + channel@3 { + reg = <3>; + adi,mode = ; + }; + + channel@4 { + reg = <4>; + adi,mode = ; + adi,off-state = ; // input + }; + + channel@5 { + reg = <5>; + adi,mode = ; + adi,off-state = ; // output + }; + + channel@6 { + reg = <6>; + adi,mode = ; + adi,off-state = ; // input + }; + + channel@7 { + reg = <7>; + adi,mode = ; + adi,off-state = ; // output + }; + }; +}; + +&i2c1 { + #size-cells = <0>; + #address-cells = <1>; + status = "okay"; + clock-frequency = <400000>; + + ad5593r: ad5593r@10 { + compatible = "adi,ad5593r"; + reg = <0x10>; + label = "my_lsmspg_ad5593r"; + #gpio-cells = <2>; + gpio-controller; + + channel@0 { + reg = <0>; + adi,mode = ; + }; + + channel@1 { + reg = <1>; + adi,mode = ; + }; + + channel@2 { + reg = <2>; + adi,mode = ; + }; + + channel@3 { + reg = <3>; + adi,mode = ; + }; + + channel@4 { + reg = <4>; + adi,mode = ; + adi,off-state = ; // input + }; + + channel@5 { + reg = <5>; + adi,mode = ; + adi,off-state = ; // output + }; + + channel@6 { + reg = <6>; + adi,mode = ; + adi,off-state = ; // input + }; + + channel@7 { + reg = <7>; + adi,mode = ; + adi,off-state = ; // output + }; + }; + + lm75: lm75@48 { + compatible = "national,lm75"; + reg = <0x48>; + label = "my_lsmspg_lm75"; + }; +}; + +&{/} { + one-bit-adc-dac@0 { + compatible = "adi,one-bit-adc-dac"; + label = "my_lsmspg_gpios"; + #address-cells = <1>; + #size-cells = <0>; + in-gpios = <&ad5592r 4 0>, <&ad5592r 6 0>, <&ad5593r 4 0>, <&ad5593r 6 0>; + out-gpios = <&ad5592r 5 0>, <&ad5592r 7 0>, <&ad5593r 5 0>, <&ad5593r 7 0>; + status = "okay"; + + channel@0 { + reg = <0>; + label = "AD5592R_GPI_CH_4"; + }; + + channel@1 { + reg = <1>; + label = "AD5592R_GPI_CH_6"; + }; + + channel@2 { + reg = <2>; + label = "AD5593R_GPI_CH_4"; + }; + + channel@3 { + reg = <3>; + label = "AD5593R_GPI_CH_6"; + }; + + channel@4 { + reg = <4>; + label = "AD5592R_GPO_CH_5"; + }; + + channel@5 { + reg = <5>; + label = "AD5592R_GPO_CH_7"; + }; + + channel@6 { + reg = <6>; + label = "AD5593R_GPO_CH_5"; + }; + + channel@7 { + reg = <7>; + label = "AD5593R_GPO_CH_7"; + }; + }; +};