From a343c43bcafe4d3c131580e8d5e08e8c3cf68f48 Mon Sep 17 00:00:00 2001 From: David Lechner Date: Mon, 9 Oct 2023 14:00:04 -0500 Subject: [PATCH] arm: dts: add overlay for AD2S1210 resolver This adds a device tree overlay for the AD2S1210 resolver to digital converter. Signed-off-by: David Lechner --- arch/arm/boot/dts/overlays/Makefile | 1 + .../boot/dts/overlays/ad2s1210-overlay.dts | 104 ++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 arch/arm/boot/dts/overlays/ad2s1210-overlay.dts diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile index 495a86c059e66b..1a09cdaede778a 100644 --- a/arch/arm/boot/dts/overlays/Makefile +++ b/arch/arm/boot/dts/overlays/Makefile @@ -5,6 +5,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += overlay_map.dtb hat_map.dtb dtbo-$(CONFIG_ARCH_BCM2835) += \ act-led.dtbo \ adafruit-st7735r.dtbo \ + ad2s1210.dtbo \ adafruit18.dtbo \ adau1977-adc.dtbo \ adau7002-simple.dtbo \ diff --git a/arch/arm/boot/dts/overlays/ad2s1210-overlay.dts b/arch/arm/boot/dts/overlays/ad2s1210-overlay.dts new file mode 100644 index 00000000000000..da7a0d8e9db130 --- /dev/null +++ b/arch/arm/boot/dts/overlays/ad2s1210-overlay.dts @@ -0,0 +1,104 @@ +/* + * Generic Device Tree overlay for the AD2S1210 resolver to digital converter + * + */ + +/dts-v1/; +/plugin/; + +#include + +/ { + compatible = "brcm,bcm2835"; + + fragment@0 { + target-path = "/"; + __overlay__ { + ad2s1210_clock: ad2s1210-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <8192000>; + }; + }; + }; + + fragment@1 { + target = <&spidev0>; + __overlay__ { + status = "disabled"; + }; + }; + + fragment@2 { + target = <&gpio>; + __overlay__ { + ad2s1210_resolution_pins: ad2s1210_resolution_pins { + brcm,pins = <23 22>; + brcm,function = <1>; /* out */ + }; + ad2s1210_sample_pins: ad2s1210_sample_pins { + brcm,pins = <18>; + brcm,function = <1>; /* out */ + }; + }; + }; + + fragment@3 { + target = <&gpio>; + + __overlay__ { + ad2s1210_mode_pins: ad2s1210_mode_pins { + brcm,pins = <25 24>; + brcm,function = <1>; /* out */ + }; + }; + }; + + fragment@4 { + target = <&spi0>; + __overlay__ { + /* needed to avoid dtc warning */ + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + ad2s1210: ad2s1210@0 { + compatible = "adi,ad2s1210"; + reg = <0>; + pinctrl-names = "default"; + spi-max-frequency = <20000000>; + spi-cpha; + clocks = <&ad2s1210_clock>; + sample-gpios = <&gpio 18 GPIO_ACTIVE_LOW>; + resolution-gpios = <&gpio 23 0>, <&gpio 22 0>; + assigned-resolution-bits = <16>; + }; + }; + }; + + fragment@5 { + target = <&ad2s1210>; + __overlay__ { + pinctrl-0 = <&ad2s1210_resolution_pins>, + <&ad2s1210_mode_pins>, + <&ad2s1210_sample_pins>; + mode-gpios = <&gpio 25 0>, <&gpio 24 0>; + }; + }; + + fragment@6 { + target = <&ad2s1210>; + __dormant__ { + pinctrl-0 = <&ad2s1210_resolution_pins>, + <&ad2s1210_sample_pins>; + adi,fixed-mode = "config"; + }; + }; + + __overrides__ { + cs = <&ad2s1210>,"reg:0"; + speed = <&ad2s1210>,"spi-max-frequency:0"; + resolution = <&ad2s1210>,"assigned-resolution-bits:0"; + fixed-mode = <0>,"-3-5+6"; + }; +};