From cc08810f89e52337a99cc6ae5f53f08588357c5f Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.com>
Date: Tue, 19 Sep 2023 20:31:34 +0100
Subject: [PATCH] overlays: Add a sample hat_map

The HAT map is way of associating named overlays with HATs whose
EEPROMs were programmed with the contents of the overlay.
Unfortunately, change in the DT and kernel drivers has meant that some
of these embedded overlays no longer function, or even don't apply.

The HAT map is a mapping from HAT UUIDs to overlay names. If a HAT with
a listed UUID is detected, the embedded overlay is ignored and the
overlay named in the mapping is loaded in its place.

Signed-off-by: Phil Elwell <phil@raspberrypi.com>
---
 arch/arm/boot/dts/overlays/Makefile    |  2 +-
 arch/arm/boot/dts/overlays/hat_map.dts | 13 +++++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/overlays/hat_map.dts

--- a/arch/arm/boot/dts/overlays/Makefile
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -1,6 +1,6 @@
 # Overlays for the Raspberry Pi platform
 
-dtb-$(CONFIG_ARCH_BCM2835) += overlay_map.dtb
+dtb-$(CONFIG_ARCH_BCM2835) += overlay_map.dtb hat_map.dtb
 
 dtbo-$(CONFIG_ARCH_BCM2835) += \
 	act-led.dtbo \
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/hat_map.dts
@@ -0,0 +1,13 @@
+/dts-v1/;
+
+/ {
+	iqaudio-pi-codecplus {
+		uuid = [ dc1c9594 c1ab 4c6c acda a88dc59a3c5b ];
+		overlay = "iqaudio-codec";
+	};
+
+	recalbox-rgbdual {
+		uuid = [ 1c955808 681f 4bbc a2ef b7ea47cd388e ];
+		overlay = "recalboxrgbdual";
+	};
+};
