diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile index ffc1380bae77e3..b023a7e0741d67 100644 --- a/arch/arm/boot/dts/overlays/Makefile +++ b/arch/arm/boot/dts/overlays/Makefile @@ -203,6 +203,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ pifi-dac-zero.dtbo \ pifi-mini-210.dtbo \ piglow.dtbo \ + pimidi.dtbo \ pineboards-hat-ai.dtbo \ pineboards-hatdrive-poe-plus.dtbo \ piscreen.dtbo \ diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README index 0815f8fd133213..2da54f781e3b94 100644 --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -3701,6 +3701,14 @@ Load: dtoverlay=piglow Params: +Name: pimidi +Info: Configures the Blokas Labs Pimidi card +Load: dtoverlay=pimidi,= +Params: sel The position used for the sel rotary switch. + Each unit in the stack must be set on a unique + position. If param is omitted, sel=0 is assumed. + + Name: pineboards-hat-ai Info: Pineboards Hat Ai! overlay for the Google Coral Edge TPU Load: dtoverlay=pineboards-hat-ai diff --git a/arch/arm/boot/dts/overlays/pimidi-overlay.dts b/arch/arm/boot/dts/overlays/pimidi-overlay.dts new file mode 100644 index 00000000000000..529da766e7a8e8 --- /dev/null +++ b/arch/arm/boot/dts/overlays/pimidi-overlay.dts @@ -0,0 +1,54 @@ +/* + * Pimidi Linux kernel module. + * Copyright (C) 2017-2024 Vilniaus Blokas UAB, https://blokas.io/ + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; version 2 of the + * License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; +/plugin/; + +#include +#include + +/ { + compatible = "brcm,bcm2835"; + + fragment@0 { + target = <&i2c_arm>; + __overlay__ { + status = "okay"; + clock-frequency=<1000000>; + + pimidi_ctrl: pimidi_ctrl@20 { + compatible = "blokaslabs,pimidi"; + + reg = <0x20>; + status = "okay"; + + interrupt-parent = <&gpio>; + interrupts = <23 IRQ_TYPE_LEVEL_LOW>; + interrupt-names = "data_ready"; + interrupt-controller; + #interrupt-cells = <2>; + + data-ready-gpios = <&gpio 23 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + reset-gpios = <&gpio 22 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + }; + }; + }; + + __overrides__ { + sel = <&pimidi_ctrl>,"reg:0{0=0x20,1=0x21,2=0x22,3=0x23}", + <&pimidi_ctrl>,"data-ready-gpios:4{0=23,1=5,2=6,3=27}", + <&pimidi_ctrl>,"interrupts:0{0=23,1=5,2=6,3=27}"; + }; +};