summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Worley <scott.worley@microchip.corp-partner.google.com>2017-12-21 15:00:28 -0500
committerchrome-bot <chrome-bot@chromium.org>2017-12-28 19:21:31 -0800
commit9f5a1556501d4acfb722f8b977d6f67ff2434bcb (patch)
treee3d36563f0ab2791bcae8a00128612fe9e90ac64
parentc56df0d8314358709ef58f2dd82a858d62e30866 (diff)
downloadchrome-ec-9f5a1556501d4acfb722f8b977d6f67ff2434bcb.tar.gz
ec_chip_mchp: Add MCHP TFDP trace debug files
Add Microchip MEC17xx family trace fifo debug (TFDP) files. TFDP is a MCHP specific two pin, output only software message port. Added TFDP module ID. Change-Id: Ibe2399a8c3618b207a89552450d80b7901e85f23 Signed-off-by: Scott Worley <scott.worley@microchip.corp-partner.google.com>
-rw-r--r--chip/mchp/tfdp.c499
-rw-r--r--chip/mchp/tfdp_chip.h131
-rw-r--r--include/module_id.h1
3 files changed, 631 insertions, 0 deletions
diff --git a/chip/mchp/tfdp.c b/chip/mchp/tfdp.c
new file mode 100644
index 0000000000..b4368b46a8
--- /dev/null
+++ b/chip/mchp/tfdp.c
@@ -0,0 +1,499 @@
+/* Copyright 2017 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/** @file tfdp.c
+ *MCHP Trace FIFO Data Port hardware access
+ */
+/** @defgroup MCHP Peripherals TFDP
+ * @{
+ */
+
+#include "common.h"
+#include "gpio.h"
+#include "registers.h"
+#include "tfdp_chip.h"
+
+#ifdef CONFIG_MCHP_TFDP
+
+
+static uint32_t get_disable_intr(void)
+{
+ uint32_t m;
+
+ __asm__ __volatile__ ("mrs %0, primask;cpsid i" : "=r" (m));
+
+ return m;
+}
+
+static void restore_intr(uint32_t m)
+{
+ if (!m)
+ __asm__ __volatile__ ("cpsie i" : : : "memory");
+}
+
+
+/**
+ * tfdp_power - Gate clocks On/Off to TFDP block when idle
+ *
+ * @param pwr_on (0=Gate clocks when idle), (1=Do not gate
+ * clocks when idle)
+ */
+void tfdp_power(uint8_t pwr_on)
+{
+ if (pwr_on)
+ MCHP_PCR_SLP_DIS_DEV(MCHP_PCR_TFDP);
+ else
+ MCHP_PCR_SLP_EN_DEV(MCHP_PCR_TFDP);
+}
+
+
+/**
+ * tfdp_enable - Init Trace FIFO Data Port
+ * @param uint8_t non-zero=enable TFDP, false=disable TFDP
+ * @param uint8_t non-zero=change TFDP pin configuration.
+ * If TFDP is enabled then GPIO170/171 set to Alt. Func. 1
+ * Else GPIO170/171 set to GPIO input, internal pull-up enabled.
+ * @note -
+ */
+#define MCHP_TFDP_DATA REG8(MCHP_TFDP_BASE + 0x00)
+#define MCHP_TFDP_CTRL REG8(MCHP_TFDP_BASE + 0x04)
+
+void tfdp_enable(uint8_t en, uint8_t pin_cfg)
+{
+ if (en) {
+ MCHP_TFDP_CTRL = 0x01u;
+ if (pin_cfg)
+ gpio_config_module(MODULE_TFDP, 1);
+ } else {
+ MCHP_TFDP_CTRL = 0x00u;
+ if (pin_cfg)
+ gpio_config_module(MODULE_TFDP, 0);
+ }
+} /* end tfdp_enable() */
+
+
+/**
+ * TFDPTrace0 - TRACE0: transmit 16-bit trace number lsb first
+ * over TFDP.
+ *
+ * @param nbr 16-bit trace number
+ * @param b unused
+ *
+ * @return uint8_t always TRUE
+ * @note Function implements critical section.
+ * Uses tool kit __disable_irq()/__enable_irq() pair which may use
+ * priviledged Cortex-Mx instructions.
+ */
+void TFDPTrace0(uint16_t nbr)
+{
+#ifdef MCHP_TRACE_MASK_IRQ
+ uint32_t prim;
+
+ prim = get_disable_intr();
+#endif
+
+ MCHP_TFDP_DATA = (TFDP_FRAME_START);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)nbr;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(nbr >> 8);
+ TFDP_DELAY();
+
+#ifdef MCHP_TRACE_MASK_IRQ
+ restore_intr(prim);
+#endif
+}
+
+
+/**
+ * TRDPTrace1 - TRACE1: transmit 16-bit trace number lsb first
+ * and 16-bit data lsb first over TFDP.
+ *
+ * @param nbr 16-bit trace number
+ * @param b unused
+ * @param uint32_t p1 16-bit data1 in b[15:0]
+ *
+ * @return uint8_t always TRUE
+ * @note Function implements critical section.
+ * Uses tool kit __disable_irq()/__enable_irq() pair which may use
+ * priviledged Cortex-Mx instructions.
+ */
+void TFDPTrace1(uint16_t nbr, uint32_t p1)
+{
+#ifdef MCHP_TRACE_MASK_IRQ
+ uint32_t prim;
+
+ prim = get_disable_intr();
+#endif
+
+ MCHP_TFDP_DATA = (TFDP_FRAME_START);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)nbr;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(nbr >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p1;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p1 >> 8);
+ TFDP_DELAY();
+
+#ifdef MCHP_TRACE_MASK_IRQ
+ restore_intr(prim);
+#endif
+}
+
+
+/**
+ * TFDPTrace2 - TRACE2: transmit 16-bit trace number lsb first
+ * and two 16-bit data parameters lsb first over TFDP.
+ *
+ * @param nbr trace number
+ * @param b unused
+ * @param uint32_t p1 16-bit data1 in b[15:0]
+ * @param uint32_t p2 16-bit data2 in b[15:0]
+ *
+ * @return uint8_t always TRUE
+ * @note Uses tool kit functions to save/disable/restore
+ * interrupts for critical section. These may use
+ * priviledged instructions.
+ */
+void TFDPTrace2(uint16_t nbr, uint32_t p1, uint32_t p2)
+{
+#ifdef MCHP_TRACE_MASK_IRQ
+ uint32_t prim;
+
+ prim = get_disable_intr();
+#endif
+
+ MCHP_TFDP_DATA = (TFDP_FRAME_START);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)nbr;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(nbr >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p1;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p1 >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p2;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p2 >> 8);
+ TFDP_DELAY();
+
+#ifdef MCHP_TRACE_MASK_IRQ
+ restore_intr(prim);
+#endif
+}
+
+
+/**
+ * TFDPTrace3 - TRACE3: transmit 16-bit trace number lsb first
+ * and three 16-bit data parameters lsb first over TFDP.
+ *
+ * @param nbr trace number
+ * @param b unused
+ * @param uint32_t p1 16-bit data1 in b[15:0]
+ * @param uint32_t p2 16-bit data2 in b[15:0]
+ * @param uint32_t p3 16-bit data3 in b[15:0]
+ *
+ * @return uint8_t always TRUE
+ * @note Uses tool kit functions to save/disable/restore
+ * interrupts for critical section. These may use
+ * priviledged instructions.
+ */
+void TFDPTrace3(uint16_t nbr, uint32_t p1,
+ uint32_t p2, uint32_t p3)
+{
+#ifdef MCHP_TRACE_MASK_IRQ
+ uint32_t prim;
+
+ prim = get_disable_intr();
+#endif
+
+ MCHP_TFDP_DATA = (TFDP_FRAME_START);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)nbr;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(nbr >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p1;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p1 >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p2;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p2 >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p3;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p3 >> 8);
+ TFDP_DELAY();
+
+#ifdef MCHP_TRACE_MASK_IRQ
+ restore_intr(prim);
+#endif
+}
+
+
+/**
+ * TFDPTrace4 - TRACE3: transmit 16-bit trace number lsb first
+ * and four 16-bit data parameters lsb first over TFDP.
+ *
+ * @param nbr trace number
+ * @param b unused
+ * @param uint32_t p1 16-bit data1 in b[15:0]
+ * @param uint32_t p2 16-bit data2 in b[15:0]
+ * @param uint32_t p3 16-bit data3 in b[15:0]
+ * @param uint32_t p4 16-bit data4 in b[15:0]
+ *
+ * @return uint8_t always TRUE
+ * @note Uses tool kit functions to save/disable/restore
+ * interrupts for critical section. These may use
+ * priviledged instructions.
+ */
+void TFDPTrace4(uint16_t nbr, uint32_t p1, uint32_t p2,
+ uint32_t p3, uint32_t p4)
+{
+#ifdef MCHP_TRACE_MASK_IRQ
+ uint32_t prim;
+
+ prim = get_disable_intr();
+#endif
+
+ MCHP_TFDP_DATA = (TFDP_FRAME_START);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)nbr;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(nbr >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p1;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p1 >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p2;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p2 >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p3;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p3 >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p4;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p4 >> 8);
+ TFDP_DELAY();
+
+#ifdef MCHP_TRACE_MASK_IRQ
+ restore_intr(prim);
+#endif
+}
+
+
+/**
+ * TFDPTrace11 - Transmit one 32-bit data item over TFDP
+ *
+ * @param nbr trace number
+ * @param b unused
+ * @param uint32_t p1 32-bit data to be transmitted
+ *
+ */
+void TFDPTrace11(uint16_t nbr, uint32_t p1)
+{
+#ifdef MCHP_TRACE_MASK_IRQ
+ uint32_t prim;
+
+ prim = get_disable_intr();
+#endif
+
+ MCHP_TFDP_DATA = (TFDP_FRAME_START);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)nbr;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(nbr >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p1;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p1 >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p1 >> 16);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p1 >> 24);
+ TFDP_DELAY();
+
+#ifdef MCHP_TRACE_MASK_IRQ
+ restore_intr(prim);
+#endif
+}
+
+
+/**
+ * TFDPTrace12 - Transmit two 32-bit data items over TFDP
+ *
+ * @param nbr trace number
+ * @param b unused
+ * @param uint32_t p1 32-bit data1 to be transmitted
+ * @param uint32_t p2 32-bit data2 to be transmitted
+ *
+ */
+void TFDPTrace12(uint16_t nbr, uint32_t p1, uint32_t p2)
+{
+#ifdef MCHP_TRACE_MASK_IRQ
+ uint32_t prim;
+
+ prim = get_disable_intr();
+#endif
+
+ MCHP_TFDP_DATA = (TFDP_FRAME_START);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)nbr;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(nbr >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p1;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p1 >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p1 >> 16);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p1 >> 24);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p2;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p2 >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p2 >> 16);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p2 >> 24);
+ TFDP_DELAY();
+
+#ifdef MCHP_TRACE_MASK_IRQ
+ restore_intr(prim);
+#endif
+}
+
+/**
+ * TFDPTrace13 - Transmit three 32-bit data items over TFDP
+ *
+ * @param nbr trace number
+ * @param b unused
+ * @param uint32_t p1 32-bit data1 to be transmitted
+ * @param uint32_t p2 32-bit data2 to be transmitted
+ * @param uint32_t p3 32-bit data3 to be transmitted
+ *
+ */
+void TFDPTrace13(uint16_t nbr, uint32_t p1,
+ uint32_t p2, uint32_t p3)
+{
+#ifdef MCHP_TRACE_MASK_IRQ
+ uint32_t prim;
+
+ prim = get_disable_intr();
+#endif
+
+ MCHP_TFDP_DATA = (TFDP_FRAME_START);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)nbr;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(nbr >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p1;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p1 >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p1 >> 16);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p1 >> 24);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p2;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p2 >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p2 >> 16);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p2 >> 24);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p3;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p3 >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p3 >> 16);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p3 >> 24);
+ TFDP_DELAY();
+
+#ifdef MCHP_TRACE_MASK_IRQ
+ restore_intr(prim);
+#endif
+}
+
+/**
+ * TFDPTrace14 - Transmit four 32-bit data items over TFDP
+ *
+ * @param nbr trace number
+ * @param b unused
+ * @param uint32_t p1 32-bit data1 to be transmitted
+ * @param uint32_t p2 32-bit data2 to be transmitted
+ * @param uint32_t p3 32-bit data3 to be transmitted
+ * @param uint32_t p4 32-bit data4 to be transmitted
+ */
+void TFDPTrace14(uint16_t nbr, uint32_t p1, uint32_t p2,
+ uint32_t p3, uint32_t p4)
+{
+#ifdef MCHP_TRACE_MASK_IRQ
+ uint32_t prim;
+
+ prim = get_disable_intr();
+#endif
+
+ MCHP_TFDP_DATA = (TFDP_FRAME_START);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)nbr;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(nbr >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p1;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p1 >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p1 >> 16);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p1 >> 24);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p2;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p2 >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p2 >> 16);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p2 >> 24);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p3;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p3 >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p3 >> 16);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p3 >> 24);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)p4;
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p4 >> 8);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p4 >> 16);
+ TFDP_DELAY();
+ MCHP_TFDP_DATA = (uint8_t)(p4 >> 24);
+ TFDP_DELAY();
+
+#ifdef MCHP_TRACE_MASK_IRQ
+ restore_intr(prim);
+#endif
+}
+
+#endif /* #ifdef CONFIG_MCHP_TFDP */
+
+
+/* end tfdp.c */
+/** @}
+ */
diff --git a/chip/mchp/tfdp_chip.h b/chip/mchp/tfdp_chip.h
new file mode 100644
index 0000000000..64d4d0b77e
--- /dev/null
+++ b/chip/mchp/tfdp_chip.h
@@ -0,0 +1,131 @@
+/* Copyright 2017 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+/** @file tfdp_chip.h
+ *MCHP MEC TFDP Peripheral Library API
+ */
+/** @defgroup MCHP MEC Peripherals Trace
+ */
+
+#ifndef _TFDP_CHIP_H
+#define _TFDP_CHIP_H
+
+#include <stdint.h>
+
+
+#ifdef CONFIG_MCHP_TFDP
+
+#undef TRACE0
+#undef TRACE1
+#undef TRACE2
+#undef TRACE3
+#undef TRACE4
+#undef TRACE11
+#undef TRACE12
+#undef TRACE13
+#undef TRACE14
+#undef trace0
+#undef trace1
+#undef trace2
+#undef trace3
+#undef trace4
+#undef trace11
+#undef trace12
+#undef trace13
+#undef trace14
+
+#define MCHP_TFDP_BASE_ADDR (0x40008c00ul)
+
+#define TFDP_FRAME_START (0xFD)
+
+#define TFDP_POWER_ON (1u)
+#define TFDP_POWER_OFF (0u)
+
+#define TFDP_ENABLE (1u)
+#define TFDP_DISABLE (0u)
+#define TFDP_CFG_PINS (1u)
+#define TFDP_NO_CFG_PINS (0u)
+
+#define MCHP_TRACE_MASK_IRQ
+
+#define TFDP_DELAY()
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void tfdp_power(uint8_t pwr_on);
+void tfdp_enable(uint8_t en, uint8_t pin_cfg);
+void TFDPTrace0(uint16_t nbr);
+void TFDPTrace1(uint16_t nbr, uint32_t p1);
+void TFDPTrace2(uint16_t nbr, uint32_t p1,
+ uint32_t p2);
+void TFDPTrace3(uint16_t nbr, uint32_t p1,
+ uint32_t p2, uint32_t p3);
+void TFDPTrace4(uint16_t nbr, uint32_t p1, uint32_t p2,
+ uint32_t p3, uint32_t p4);
+void TFDPTrace11(uint16_t nbr, uint32_t p1);
+void TFDPTrace12(uint16_t nbr, uint32_t p1, uint32_t p2);
+void TFDPTrace13(uint16_t nbr, uint32_t p1, uint32_t p2,
+ uint32_t p3);
+void TFDPTrace14(uint16_t nbr, uint32_t p1, uint32_t p2,
+ uint32_t p3, uint32_t p4);
+
+#ifdef __cplusplus
+}
+#endif
+
+#define TRACE0(nbr, cat, b, str) TFDPTrace0(nbr)
+#define TRACE1(nbr, cat, b, str, p1) TFDPTrace1(nbr, p1)
+#define TRACE2(nbr, cat, b, str, p1, p2) TFDPTrace2(nbr, p1, p2)
+#define TRACE3(nbr, cat, b, str, p1, p2, p3) TFDPTrace3(nbr, p1, p2, p3)
+#define TRACE4(nbr, cat, b, str, p1, p2, p3, p4) TFDPTrace4(nbr, p1, p2, \
+ p3, p4)
+#define TRACE11(nbr, cat, b, str, p1) TFDPTrace11(nbr, p1)
+#define TRACE12(nbr, cat, b, str, p1, p2) TFDPTrace12(nbr, p1, p2)
+#define TRACE13(nbr, cat, b, str, p1, p2, p3) TFDPTrace13(nbr, p1, p2, p3)
+#define TRACE14(nbr, cat, b, str, p1, p2, p3, p4) \
+ TFDPTrace14(nbr, p1, p2, p3, p4)
+
+
+#else /* #ifdef MCHP_TRACE */
+
+/* !!! To prevent compiler warnings of unused parameters,
+ * when trace is disabled by TRGEN source processing,
+ * you can either:
+ * 1. Disable compiler's unused parameter warning
+ * 2. Change these macros to write parameters to a read-only
+ * register.
+ */
+#define tfdp_power(pwr_on)
+#define tfdp_enable(en, pin_cfg)
+#define TRACE0(nbr, cat, b, str)
+#define TRACE1(nbr, cat, b, str, p1)
+#define TRACE2(nbr, cat, b, str, p1, p2)
+#define TRACE3(nbr, cat, b, str, p1, p2, p3)
+#define TRACE4(nbr, cat, b, str, p1, p2, p3, p4)
+#define TRACE11(nbr, cat, b, str, p1)
+#define TRACE12(nbr, cat, b, str, p1, p2)
+#define TRACE13(nbr, cat, b, str, p1, p2, p3)
+#define TRACE14(nbr, cat, b, str, p1, p2, p3, p4)
+
+#endif /* #ifdef CONFIG_MCHP_TFDP */
+
+/*
+ * Always define lower case traceN(...) as blank (fully removed)
+ */
+#define trace0(nbr, cat, b, str)
+#define trace1(nbr, cat, b, str, p1)
+#define trace2(nbr, cat, b, str, p1, p2)
+#define trace3(nbr, cat, b, str, p1, p2, p3)
+#define trace4(nbr, cat, b, str, p1, p2, p3, p4)
+#define trace11(nbr, cat, b, str, p1)
+#define trace12(nbr, cat, b, str, p1, p2)
+#define trace13(nbr, cat, b, str, p1, p2, p3)
+#define trace14(nbr, cat, b, str, p1, p2, p3, p4)
+
+#endif /* #ifndef _TFDP_CHIP_H */
+/* end tfdp_chip.h */
+/** @}
+ */
diff --git a/include/module_id.h b/include/module_id.h
index dc4fff1191..3e73f3c4a2 100644
--- a/include/module_id.h
+++ b/include/module_id.h
@@ -50,6 +50,7 @@ enum module_id {
MODULE_USB_SWITCH,
MODULE_VBOOT,
MODULE_MCO,
+ MODULE_TFDP,
/* Module count; not an actual module */
MODULE_COUNT