]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-sdk/audk2g-addon.git/commitdiff
audk2g-addon: add pull down to all McASP pins
authorMing Wei <a0868762@ti.com>
Mon, 5 Jun 2017 19:16:36 +0000 (14:16 -0500)
committerMing Wei <a0868762@ti.com>
Mon, 5 Jun 2017 19:16:36 +0000 (14:16 -0500)
Signed-off-by: Ming Wei <a0868762@ti.com>
include/evmc66x_pinmux.h
src/audk2g.c
src/evmc66x_pinmux.c

index 796e95dd05169f38ba858de1a3220165f1194039..4f3d81f00e2cf35da4161ee6ee8346e0aad5162a 100644 (file)
@@ -80,6 +80,18 @@ void pinMuxInit(void);
  */
 int32_t audk2g_pinMuxSetMode(uint16_t padCfgId, Audk2gPadCfgMuxMode muxMode);
 
+/**
+ * \brief  Configures pull up/down of a pad config register
+ *
+ * \param   padCfgId [IN]    Pad config register Id; 0 - 259
+ * \param   pullMode  [IN]    Pad config pull mode
+ *
+ * \return
+ * \n       0  - Pull mode configuration is successful
+ * \n      -1  - Invalid parameter
+ */
+int32_t audk2g_pullSetMode(uint16_t padCfgId, uint16_t pullMode);
+
 #endif /* _EVMC66X_AUDK2G_PINMUX_H_ */
 
 /* Nothing past this point */
index fc7475ce06673a9c3b56b8eacc94371175fa8107..3a90445e81d85f20ce1bd1e6ca421fd255204628 100644 (file)
@@ -93,6 +93,8 @@ Audk2g_STATUS audk2g_AudioInit(void)
        for (audk2g_padCfg = 169; audk2g_padCfg <= audk2g_padMax; audk2g_padCfg++)
        {
                audk2g_pinMuxSetMode(audk2g_padCfg, AUDK2G_PADCONFIG_MUX_MODE_QUINARY);
+               // set to weak pull down
+               audk2g_pullSetMode(audk2g_padCfg, 0);
        }
 
        /* MCASP0AXR[12:15] - PADCONFIG 188 to 191 */
@@ -100,6 +102,8 @@ Audk2g_STATUS audk2g_AudioInit(void)
        for (audk2g_padCfg = 188; audk2g_padCfg <= audk2g_padMax; audk2g_padCfg++)
        {
                audk2g_pinMuxSetMode(audk2g_padCfg, AUDK2G_PADCONFIG_MUX_MODE_QUINARY);
+               // set to weak pull down
+               audk2g_pullSetMode(audk2g_padCfg, 0);
        }
 
 
@@ -109,6 +113,8 @@ Audk2g_STATUS audk2g_AudioInit(void)
        for (audk2g_padCfg = 152; audk2g_padCfg <= audk2g_padMax; audk2g_padCfg++)
        {
                audk2g_pinMuxSetMode(audk2g_padCfg, AUDK2G_PADCONFIG_MUX_MODE_QUINARY);
+               // set to weak pull down
+               audk2g_pullSetMode(audk2g_padCfg, 0);
        }
 
        /* MCASP1AHCLKX - PADCONFIG 157 */
@@ -119,10 +125,14 @@ Audk2g_STATUS audk2g_AudioInit(void)
        for (audk2g_padCfg = 159; audk2g_padCfg <= audk2g_padMax; audk2g_padCfg++)
        {
                audk2g_pinMuxSetMode(audk2g_padCfg, AUDK2G_PADCONFIG_MUX_MODE_QUINARY);
+               // set to weak pull down
+               audk2g_pullSetMode(audk2g_padCfg, 0);
        }
 
        /* MCASP1AXR9 - PADCONFIG 168 */
        audk2g_pinMuxSetMode(168, AUDK2G_PADCONFIG_MUX_MODE_QUINARY);
+       // set to weak pull down
+       audk2g_pullSetMode(168, 0);
 
 
        /* Configure McASP2 lines */
@@ -132,13 +142,19 @@ Audk2g_STATUS audk2g_AudioInit(void)
        for (audk2g_padCfg = 140; audk2g_padCfg <= audk2g_padMax; audk2g_padCfg++)
        {
                audk2g_pinMuxSetMode(audk2g_padCfg, AUDK2G_PADCONFIG_MUX_MODE_QUINARY);
+               // set to weak pull down
+               audk2g_pullSetMode(audk2g_padCfg, 0);
        }
 
        /* MCASP2FSX - PADCONFIG 149 */
        audk2g_pinMuxSetMode(149, AUDK2G_PADCONFIG_MUX_MODE_QUINARY);
+       // set to weak pull down
+       audk2g_pullSetMode(149, 0);
 
        /* MCASP2ACLKX - PADCONFIG 151 */
        audk2g_pinMuxSetMode(151, AUDK2G_PADCONFIG_MUX_MODE_QUINARY);
+       // set to weak pull down
+       audk2g_pullSetMode(151, 0);
 
        /* Configure GPIO for McASP_CLK_SEL - GPIO0 132 & PADCONFIG 163 */
        audk2g_pinMuxSetMode(163, AUDK2G_PADCONFIG_MUX_MODE_QUATERNARY);
index 2c78fc261c5e86e375dfa16a2e20fbee5abcc4ec..8411926cafdb4a6626037cb4033e9b2fae910e43 100644 (file)
@@ -357,4 +357,39 @@ int32_t audk2g_pinMuxSetMode(uint16_t padCfgId, Audk2gPadCfgMuxMode muxMode)
 
 } //audk2g_pinMuxSetMode
 
+/**
+ * \brief  Configures pull up/down of a pad config register
+ *
+ * \param   padCfgId [IN]    Pad config register Id; 0 - 259
+ * \param   pullMode  [IN]    Pad config pull mode
+ *
+ * \return
+ * \n       0  - Pull mode configuration is successful
+ * \n      -1  - Invalid parameter
+ */
+int32_t audk2g_pullSetMode(uint16_t padCfgId, uint16_t pullMode)
+{
+       volatile Uint32 *padCfgBase;
+
+       if((padCfgId < PADCONFIG_MAX_COUNT) &&
+          (pullMode <= AUDK2G_PADCONFIG_MUX_MODE_SENARY))
+    {
+               /* Unlock the Boot Config */
+        CSL_BootCfgUnlockKicker();
+
+           padCfgBase = &hBootCfg->PADCONFIG0;
+               // set the pull mode (up/down)
+           CSL_FINS(*(padCfgBase + padCfgId), BOOTCFG_PADCONFIG0_PULLTYPESEL, pullMode);
+               // pull mode enabled
+           CSL_FINS(*(padCfgBase + padCfgId), BOOTCFG_PADCONFIG0_PULLUDEN, 0);
+
+           return (0);
+    }
+    else
+    {
+           return (-1);
+       }
+
+} //audk2g_pullSetMode
+
 /* Nothing past this point */