void HCA700_IO_init() { init_gpio_lib(); set_gpio_output(IO_PORT,WIFI_POWER_PIN, 1); set_gpio_output(IO_PORT,AMP_POWER_PIN, 1); set_gpio_output(IO_PORT,USB_SWITCH_EN_PIN, 0); //set_gpio_output(IO_PORT,USB_SWITCH_FUNCTION_PIN, 1); set_gpio_output(IO_PORT,WM8750_CLOCK_PIN, 1); set_gpio_output(IO_PORT,DEBUG_LED_PIN, 1); set_gpio_output(IO_PORT,SD_CARD_POWER_PIN, 0); set_gpio_input(IO_PORT,CHARGER_FULL_INDICATOR_PIN); set_gpio_input(IO_PORT,NO_BATTERY_INDICATOR_PIN); set_gpio_input(IO_PORT,KEY_VOL_DOWN_PIN); set_gpio_input(IO_PORT,KEY_VOL_UP_PIN); set_gpio_input(IO_PORT,KEY_VOL_POWER_PIN); set_gpio_input(IO_PORT,KEY_VOL_MUTE_PIN); set_gpio_input(IO_PORT,DC5V_PLUGIN_INDICATOR_PIN); set_gpio_input(IO_PORT,WIFI_OVER_CURRENT_INDICATOR_PIN); /* HCA700_wifi_power_on(); HCA700_AMP_power_on(); HCA700_USB_switch_on(); HCA700_USB_function_NONE(); HCA700_WM8750_on(); HCA700_SD_card_power_on(); */ }
static int init_gpio (void) { //Init the input and output queues queue_init (&gpio_input_q); queue_init (&gpio_output_q); wiringPiSetup (); pinMode (WPC_RST, INPUT); pinMode (IN_IRQ, INPUT); pinMode (WPC_RST, INPUT); pinMode (STATUS_LED, OUTPUT); pinMode (OUT_CLK, OUTPUT); pinMode (IC6_DIR, OUTPUT); pinMode (IC3_CE, OUTPUT); wiringPiISR (IN_IRQ, INT_EDGE_FALLING, &irq_recv); wiringPiISR (WPC_RST, INT_EDGE_FALLING, &rst_recv); set_gpio_input (); digitalWrite (STATUS_LED, 1); return 0; }
static void write_gpio (uint8_t val) { //Set GPIO buffer to output set_gpio_output (); //Disable IC3 for a moment digitalWrite (IC3_CE, IC3_DISABLE); //Write to output buffer digitalWriteByte (val); output_waiting = true; //Clock the data into IC4, ready for the WPC to pick it up out_clk (); //Set GPIO buffer back to input digitalWrite (IC3_CE, IC3_ENABLE); set_gpio_input (); }