static void restore_pin_status(int bt_power_state) { /* if(!bt_power_state) { */ /* /\*set BT_INT to interrupt rise trigger*\/ */ /* jzgpio_set_func(GPIO_BT_INT / 32, GPIO_INT_RE, */ /* 1 << (GPIO_BT_INT % 32)); */ /* } */ /*set UART0_RXD, UART0_CTS_N, UART0_RTS_N, UART0_TXD to FUNC*/ jzgpio_set_func(GPIO_PORT_F, GPIO_FUNC_2, 0xF); /*set PCM0_DO ,PCM0_CLK, PCM0_SYN ,PCM0_DI 4 pins to FUNC*/ jzgpio_set_func(GPIO_PORT_F, GPIO_FUNC_0, 0xF << 12); }
static void restore_pin_status(int bt_power_state) { /*set UART0_RXD, UART0_CTS_N, UART0_RTS_N, UART0_TXD to FUNC*/ jzgpio_set_func(BLUETOOTH_UART_GPIO_PORT, BLUETOOTH_UART_GPIO_FUNC, BLUETOOTH_UART_FUNC_SHIFT); /*set PCM0_DO ,PCM0_CLK, PCM0_SYN ,PCM0_DI 4 pins to FUNC*/ //jzgpio_set_func(GPIO_PORT_F, GPIO_FUNC_0, 0xF << 12); }
static void set_pin_status(int bt_power_state) { #if 0 if(bt_power_state){ /*set UART0_RXD, UART0_CTS_N ,2 pins to input nopull*/ jzgpio_set_func(GPIO_PORT_F, GPIO_INPUT, 0x3); /*set UART0_TXD to output low*/ jzgpio_set_func(GPIO_PORT_F, GPIO_INPUT, 0x8); /*set PCM0_DO ,PCM0_CLK, PCM0_SYN ,PCM0_DI 4 pins to OUTPUT_LOW*/ jzgpio_set_func(GPIO_PORT_F, GPIO_OUTPUT0, 0xF << 12); }else{ #if defined(GPIO_BT_RST_N) jzgpio_set_func(GPIO_BT_RST_N / 32, GPIO_OUTPUT0, 1 << (GPIO_BT_RST_N % 32)); #endif jzgpio_set_func(GPIO_BT_INT / 32, GPIO_OUTPUT0, 1 << (GPIO_BT_INT % 32)); jzgpio_set_func(GPIO_BT_WAKE / 32, GPIO_OUTPUT0, 1 << (GPIO_BT_WAKE % 32)); /*set BT_RST_N ,BT_INT, BT_WAKE , BT_REG_ON 4 pins to OUTPUT_LOW*/ jzgpio_set_func(GPIO_BT_REG_ON / 32, GPIO_OUTPUT0, 1 << (GPIO_BT_REG_ON % 32)); /*set UART0_RXD, UART0_CTS_N, UART0_RTS_N 3 pins to OUTPUT_LOW*/ jzgpio_set_func(GPIO_PORT_F, GPIO_OUTPUT0 , 0x7); /*set UART0_TXD to INPUT_NOPULL*/ jzgpio_set_func(GPIO_PORT_F, GPIO_INPUT , 1 << 3); /*set PCM0_DO ,PCM0_CLK, PCM0_SYN ,PCM0_DI 4 pins to OUTPUT_LOW*/ jzgpio_set_func(GPIO_PORT_F, GPIO_OUTPUT0 , 0xF << 12); } #endif }
static void poweroff_inand(void) { printk("inand power off"); jzgpio_set_func(0, GPIO_OUTPUT1, 1 << 17); jzgpio_set_func(0, GPIO_OUTPUT0, 1 << 4); jzgpio_set_func(0, GPIO_OUTPUT0, 1 << 5); jzgpio_set_func(0, GPIO_OUTPUT0, 1 << 6); jzgpio_set_func(0, GPIO_OUTPUT0, 1 << 7); jzgpio_set_func(0, GPIO_OUTPUT0, 1 << 18); jzgpio_set_func(0, GPIO_OUTPUT0, 1 << 19); jzgpio_set_func(0, GPIO_OUTPUT0, 1 << 20); jzgpio_set_func(0, GPIO_OUTPUT0, 1 << 21); jzgpio_set_func(0, GPIO_OUTPUT0, 1 << 22); jzgpio_set_func(0, GPIO_OUTPUT0, 1 << 23); jzgpio_set_func(0, GPIO_OUTPUT0, 1 << 24); printk(" ... ok!\n"); mdelay(20); }