Configure the debounce configuration that makes sense for BeaglePlay
usage model.

Signed-off-by: Nishanth Menon <n...@ti.com>
---
Changes since V1:
* No change

V1: https://lore.kernel.org/r/20240212155332.541949-5...@ti.com

 board/beagle/beagleplay/beagleplay.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/board/beagle/beagleplay/beagleplay.c 
b/board/beagle/beagleplay/beagleplay.c
index 2adb2517ef00..fe1c4f920329 100644
--- a/board/beagle/beagleplay/beagleplay.c
+++ b/board/beagle/beagleplay/beagleplay.c
@@ -59,8 +59,32 @@ static void crystal_32k_enable(void)
        }
 }
 
+static void debounce_configure(void)
+{
+       /* Configure debounce one time from R5 */
+       if (IS_ENABLED(CONFIG_CPU_V7R)) {
+               /*
+                * Setup debounce time registers.
+                * arbitrary values. Times are approx
+                */
+               /* 1.9ms debounce @ 32k */
+               writel(0x1, CTRLMMR_DBOUNCE_CFG(1));
+               /* 5ms debounce @ 32k */
+               writel(0x5, CTRLMMR_DBOUNCE_CFG(2));
+               /* 20ms debounce @ 32k */
+               writel(0x14, CTRLMMR_DBOUNCE_CFG(3));
+               /* 46ms debounce @ 32k */
+               writel(0x18, CTRLMMR_DBOUNCE_CFG(4));
+               /* 100ms debounce @ 32k */
+               writel(0x1c, CTRLMMR_DBOUNCE_CFG(5));
+               /* 156ms debounce @ 32k */
+               writel(0x1f, CTRLMMR_DBOUNCE_CFG(6));
+       }
+}
+
 void spl_board_init(void)
 {
        crystal_32k_enable();
+       debounce_configure();
 }
 #endif
-- 
2.43.0

Reply via email to