OpenWrt – Rev 1

Subversion Repositories:
Rev:
From 15aa7a1d49c20f7f41b5c69cea2f46e1e976e660 Mon Sep 17 00:00:00 2001
From: Aaron Shaw <shawaj@gmail.com>
Date: Sun, 24 Dec 2017 21:57:05 +0000
Subject: [PATCH 143/454] overlays: Add media center HAT overlay (#2313)

---
 arch/arm/boot/dts/overlays/Makefile           |   1 +
 arch/arm/boot/dts/overlays/README             |  24 ++++
 .../dts/overlays/media-center-overlay.dts     | 132 ++++++++++++++++++
 3 files changed, 157 insertions(+)
 create mode 100644 arch/arm/boot/dts/overlays/media-center-overlay.dts

--- a/arch/arm/boot/dts/overlays/Makefile
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -61,6 +61,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
        mcp2515-can0.dtbo \
        mcp2515-can1.dtbo \
        mcp3008.dtbo \
+       media-center.dtbo \
        midi-uart0.dtbo \
        midi-uart1.dtbo \
        mmc.dtbo \
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -994,6 +994,30 @@ Params: spi<n>-<m>-present      boolean,
         spi<n>-<m>-speed        integer, set the spi bus speed for this device
 
 
+Name:   media-center
+Info:   Media Center HAT - 2.83" Touch Display + extras by Pi Supply
+Load:   dtoverlay=media-center,<param>=<val>
+Params: speed                   Display SPI bus speed
+        rotate                  Display rotation {0,90,180,270}
+        fps                     Delay between frame updates
+        xohms                   Touchpanel sensitivity (X-plate resistance)
+        swapxy                  Swap x and y axis
+        gpio_out_pin            GPIO for output (default "17")
+        gpio_in_pin             GPIO for input (default "18")
+        gpio_in_pull            Pull up/down/off on the input pin
+                                (default "down")
+        sense                   Override the IR receive auto-detection logic:
+                                 "0" = force active-high
+                                 "1" = force active-low
+                                 "-1" = use auto-detection
+                                (default "-1")
+        softcarrier             Turn the software carrier "on" or "off"
+                                (default "on")
+        invert                  "on" = invert the output pin (default "off")
+        debug                   "on" = enable additional debug messages
+                                (default "off")
+
+
 Name:   midi-uart0
 Info:   Configures UART0 (ttyAMA0) so that a requested 38.4kbaud actually gets
         31.25kbaud, the frequency required for MIDI
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/media-center-overlay.dts
@@ -0,0 +1,132 @@
+/*
+ * Device Tree overlay for Media Center HAT by Pi Supply
+ *
+ */
+
+/dts-v1/;
+/plugin/;
+
+/ {
+       compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
+
+       fragment@0 {
+               target = <&spi0>;
+               __overlay__ {
+                       status = "okay";
+
+                       spidev@0{
+                               status = "disabled";
+                       };
+
+                       spidev@1{
+                               status = "disabled";
+                       };
+               };
+       };
+
+       fragment@1 {
+               target = <&gpio>;
+               __overlay__ {
+                       rpi_display_pins: rpi_display_pins {
+                               brcm,pins = <12 23 24 25>;
+                               brcm,function = <1 1 1 0>; /* out out out in */
+                               brcm,pull = <0 0 0 2>; /* - - - up */
+                       };
+               };
+       };
+
+       fragment@2 {
+               target = <&spi0>;
+               __overlay__ {
+                       /* needed to avoid dtc warning */
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       rpidisplay: rpi-display@0{
+                               compatible = "ilitek,ili9341";
+                               reg = <0>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&rpi_display_pins>;
+
+                               spi-max-frequency = <32000000>;
+                               rotate = <90>;
+                               bgr;
+                               fps = <30>;
+                               buswidth = <8>;
+                               reset-gpios = <&gpio 23 0>;
+                               dc-gpios = <&gpio 24 0>;
+                               led-gpios = <&gpio 12 1>;
+                               debug = <0>;
+                       };
+
+                       rpidisplay_ts: rpi-display-ts@1 {
+                               compatible = "ti,ads7846";
+                               reg = <1>;
+
+                               spi-max-frequency = <2000000>;
+                               interrupts = <25 2>; /* high-to-low edge triggered */
+                               interrupt-parent = <&gpio>;
+                               pendown-gpio = <&gpio 25 0>;
+                               ti,x-plate-ohms = /bits/ 16 <60>;
+                               ti,pressure-max = /bits/ 16 <255>;
+                       };
+               };
+       };
+
+       fragment@3 {
+               target-path = "/";
+               __overlay__ {
+                       lirc_rpi: lirc_rpi {
+                               compatible = "rpi,lirc-rpi";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&lirc_pins>;
+                               status = "okay";
+
+                               // Override autodetection of IR receiver circuit
+                               // (0 = active high, 1 = active low, -1 = no override )
+                               rpi,sense = <0xffffffff>;
+
+                               // Software carrier
+                               // (0 = off, 1 = on)
+                               rpi,softcarrier = <1>;
+
+                               // Invert output
+                               // (0 = off, 1 = on)
+                               rpi,invert = <0>;
+
+                               // Enable debugging messages
+                               // (0 = off, 1 = on)
+                               rpi,debug = <0>;
+                       };
+               };
+       };
+
+       fragment@4 {
+               target = <&gpio>;
+               __overlay__ {
+                       lirc_pins: lirc_pins {
+                               brcm,pins = <6 5>;
+                               brcm,function = <1 0>; // out in
+                               brcm,pull = <0 1>; // off down
+                       };
+               };
+       };
+
+       __overrides__ {
+               speed =   <&rpidisplay>,"spi-max-frequency:0";
+               rotate =  <&rpidisplay>,"rotate:0";
+               fps =     <&rpidisplay>,"fps:0";
+               debug =   <&rpidisplay>,"debug:0",
+                         <&lirc_rpi>,"rpi,debug:0";
+               xohms =   <&rpidisplay_ts>,"ti,x-plate-ohms;0";
+               swapxy =  <&rpidisplay_ts>,"ti,swap-xy?";
+
+               gpio_out_pin =  <&lirc_pins>,"brcm,pins:0";
+               gpio_in_pin =   <&lirc_pins>,"brcm,pins:4";
+               gpio_in_pull =  <&lirc_pins>,"brcm,pull:4";
+
+               sense =         <&lirc_rpi>,"rpi,sense:0";
+               softcarrier =   <&lirc_rpi>,"rpi,softcarrier:0";
+               invert =        <&lirc_rpi>,"rpi,invert:0";
+       };
+};

Generated by GNU Enscript 1.6.5.90.