@@ -55,32 +55,24 @@ static antenna_type_t antenna_type_selected = ANTENNA_TYPE_INTERNAL;
5555DEFINE PUBLIC FUNCTIONS
5656******************************************************************************/
5757void antenna_init0 (void ) {
58-
59- MAP_PRCMPeripheralClkEnable (PRCM_GPIOA3 , PRCM_RUN_MODE_CLK );
58+ // enable the peripheral clock and set the gpio direction for
59+ // both antenna 1 and antenna 2 pins
60+ MAP_PRCMPeripheralClkEnable (PRCM_GPIOA3 , PRCM_RUN_MODE_CLK | PRCM_SLP_MODE_CLK );
6061 MAP_GPIODirModeSet (GPIOA3_BASE , 0x0C , GPIO_DIR_MODE_OUT );
6162
62- // configure PIN_29 for GPIOOutput
63- HWREG (REG_PAD_CONFIG_26 ) = ((HWREG (REG_PAD_CONFIG_26 ) & ~(PAD_STRENGTH_MASK
64- | PAD_TYPE_MASK )) | (0x00000020 | 0x00000000 ));
65-
63+ // configure antenna 1 pin type and strength
64+ HWREG (REG_PAD_CONFIG_26 ) = ((HWREG (REG_PAD_CONFIG_26 ) & ~(PAD_STRENGTH_MASK | PAD_TYPE_MASK )) | (0x00000020 | 0x00000000 ));
6665 // set the mode
67- HWREG (REG_PAD_CONFIG_26 ) = (((HWREG (REG_PAD_CONFIG_26 ) & ~PAD_MODE_MASK ) |
68- 0x00000000 ) & ~(3 << 10 ));
69-
66+ HWREG (REG_PAD_CONFIG_26 ) = ((HWREG (REG_PAD_CONFIG_26 ) & ~PAD_MODE_MASK ) | 0x00000000 ) & ~(3 << 10 );
7067 // set the direction
7168 HWREG (REG_PAD_CONFIG_26 ) = ((HWREG (REG_PAD_CONFIG_26 ) & ~0xC00 ) | 0x00000800 );
7269
73-
74- // configure PIN_30 for GPIOOutput
75- HWREG (REG_PAD_CONFIG_27 ) = ((HWREG (REG_PAD_CONFIG_27 ) & ~(PAD_STRENGTH_MASK
76- | PAD_TYPE_MASK )) | (0x00000020 | 0x00000000 ));
77-
70+ // configure antenna 2 pin type and strength
71+ HWREG (REG_PAD_CONFIG_27 ) = ((HWREG (REG_PAD_CONFIG_27 ) & ~(PAD_STRENGTH_MASK | PAD_TYPE_MASK )) | (0x00000020 | 0x00000000 ));
7872 // set the mode
79- HWREG (REG_PAD_CONFIG_27 ) = (((HWREG (REG_PAD_CONFIG_27 ) & ~PAD_MODE_MASK ) |
80- 0x00000000 ) & ~(3 << 10 ));
81-
73+ HWREG (REG_PAD_CONFIG_27 ) = ((HWREG (REG_PAD_CONFIG_27 ) & ~PAD_MODE_MASK ) | 0x00000000 ) & ~(3 << 10 );
8274 // set the direction
83- HWREG (REG_PAD_CONFIG_26 ) = ((HWREG (REG_PAD_CONFIG_27 ) & ~0xC00 ) | 0x00000800 );
75+ HWREG (REG_PAD_CONFIG_27 ) = ((HWREG (REG_PAD_CONFIG_27 ) & ~0xC00 ) | 0x00000800 );
8476
8577 // select the currently active antenna
8678 antenna_select (antenna_type_selected );
@@ -89,8 +81,14 @@ void antenna_init0(void) {
8981void antenna_select (antenna_type_t _antenna ) {
9082 if (_antenna == ANTENNA_TYPE_INTERNAL ) {
9183 MAP_GPIOPinWrite (GPIOA3_BASE , 0x0C , 0x04 );
84+ // also configure the pull-up and pull-down accordingly
85+ HWREG (REG_PAD_CONFIG_26 ) = ((HWREG (REG_PAD_CONFIG_26 ) & ~PAD_TYPE_MASK )) | PIN_TYPE_STD_PU ;
86+ HWREG (REG_PAD_CONFIG_27 ) = ((HWREG (REG_PAD_CONFIG_27 ) & ~PAD_TYPE_MASK )) | PIN_TYPE_STD_PD ;
9287 } else {
9388 MAP_GPIOPinWrite (GPIOA3_BASE , 0x0C , 0x08 );
89+ // also configure the pull-up and pull-down accordingly
90+ HWREG (REG_PAD_CONFIG_26 ) = ((HWREG (REG_PAD_CONFIG_26 ) & ~PAD_TYPE_MASK )) | PIN_TYPE_STD_PD ;
91+ HWREG (REG_PAD_CONFIG_27 ) = ((HWREG (REG_PAD_CONFIG_27 ) & ~PAD_TYPE_MASK )) | PIN_TYPE_STD_PU ;
9492 }
9593 antenna_type_selected = _antenna ;
9694}
0 commit comments