summary refs log tree commit diff
path: root/modules/hardware/ads7846.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/hardware/ads7846.nix')
-rw-r--r--modules/hardware/ads7846.nix144
1 files changed, 0 insertions, 144 deletions
diff --git a/modules/hardware/ads7846.nix b/modules/hardware/ads7846.nix
deleted file mode 100644
index 4d7582a..0000000
--- a/modules/hardware/ads7846.nix
+++ /dev/null
@@ -1,144 +0,0 @@
-{ ... }:
-
-{
-  # calibration for touchscreen
-  services =
-    let
-      calibrationPoints = "3900 200 200 3900";
-      calibrationMatrix = "-1 0 1 0 1 0";
-    in
-    {
-      libinput.enable = true;
-
-      # xorg configuration
-      xserver.inputClassSections = [
-        ''
-          Identifier	"ads7846 calibration"
-          MatchProduct	"ADS7846 Touchscreen"
-          Option	"Calibration"	"${calibrationPoints}"
-          Option	"SwapAxes"	"0"
-          Driver  "libinput"
-        ''
-      ];
-
-      # wayland configuration
-      udev.extraRules = ''
-        ATTRS{name}=="ADS7846 Touchscreen", ENV{LIBINPUT_CALIBRATION_MATRIX}="${calibrationMatrix}"
-      '';
-    };
-
-  hardware.deviceTree =
-    let
-      cs = 1;
-      penirq = 25;
-      penirq_pull = 2;
-      speed = 50000;
-      pmin = 0;
-      pmax = 255;
-      xohms = 150;
-      xmin = 200;
-      xmax = 3900;
-      ymin = 200;
-      ymax = 3900;
-    in
-    {
-      overlays = [
-        {
-          name = "ads7846-overlay";
-          # taken from raspberry-pi kernel tree:
-          # https://github.com/raspberrypi/linux/blob/rpi-6.6.y/arch/arm/boot/dts/overlays/ads7846-overlay.dts
-          dtsText = ''
-            /*
-            * Generic Device Tree overlay for the ADS7846 touch controller
-            *
-            */
-
-            /dts-v1/;
-            /plugin/;
-
-            / {
-                    compatible = "brcm,bcm2711";
-
-                    fragment@0 {
-                            target = <&spi0>;
-                            __overlay__ {
-                                    status = "okay";
-                            };
-                    };
-
-                    fragment@1 {
-                            target = <&spidev0>;
-                            __overlay__ {
-                                    status = "disabled";
-                            };
-                    };
-
-                    fragment@2 {
-                            target = <&spidev1>;
-                            __overlay__ {
-                                    status = "disabled";
-                            };
-                    };
-
-                    fragment@3 {
-                            target = <&gpio>;
-                            __overlay__ {
-                                    ads7846_pins: ads7846_pins {
-                                            brcm,pins = <${toString penirq}>; /* mel: previously illegal value of 255 */
-                                            brcm,function = <0>; /* in */
-                                            brcm,pull = <${toString penirq_pull}>; /* none */
-                                    };
-                            };
-                    };
-
-                    fragment@4 {
-                            target = <&spi0>;
-                            __overlay__ {
-                                    /* needed to avoid dtc warning */
-                                    #address-cells = <1>;
-                                    #size-cells = <0>;
-
-                                    ads7846: ads7846@1 {
-                                            compatible = "ti,ads7846";
-                                            reg = <${toString cs}>;
-                                            pinctrl-names = "default";
-                                            pinctrl-0 = <&ads7846_pins>;
-
-                                            spi-max-frequency = <${toString speed}>;
-                                            interrupts = <${toString penirq} 2>; /* high-to-low edge triggered */
-                                            interrupt-parent = <&gpio>;
-                                            pendown-gpio = <&gpio ${toString penirq} 1>;
-
-                                            /* driver defaults */
-                                            ti,x-min = /bits/ 16 <${toString xmin}>;
-                                            ti,y-min = /bits/ 16 <${toString ymin}>;
-                                            ti,x-max = /bits/ 16 <${toString xmax}>;
-                                            ti,y-max = /bits/ 16 <${toString ymax}>;
-                                            ti,pressure-min = /bits/ 16 <${toString pmin}>;
-                                            ti,pressure-max = /bits/ 16 <${toString pmax}>;
-                                            ti,x-plate-ohms = /bits/ 16 <${toString xohms}>;
-                                    };
-                            };
-                    };
-                    __overrides__ {
-                            cs =     <&ads7846>,"reg:0";
-                            speed =  <&ads7846>,"spi-max-frequency:0";
-                            penirq = <&ads7846_pins>,"brcm,pins:0", /* REQUIRED */
-                                    <&ads7846>,"interrupts:0",
-                                    <&ads7846>,"pendown-gpio:4";
-                            penirq_pull = <&ads7846_pins>,"brcm,pull:0";
-                            swapxy = <&ads7846>,"ti,swap-xy?";
-                            xmin =   <&ads7846>,"ti,x-min;0";
-                            ymin =   <&ads7846>,"ti,y-min;0";
-                            xmax =   <&ads7846>,"ti,x-max;0";
-                            ymax =   <&ads7846>,"ti,y-max;0";
-                            pmin =   <&ads7846>,"ti,pressure-min;0";
-                            pmax =   <&ads7846>,"ti,pressure-max;0";
-                            xohms =  <&ads7846>,"ti,x-plate-ohms;0";
-                    };
-            };
-          '';
-        }
-      ];
-    };
-}