int __init addon_setup_atmark_techno_ble(struct addon_device_descriptor *desc, enum addon_interface intf) { mxc_iomux_v3_setup_multiple_pads(addon_data[intf].pads, addon_data[intf].nr_pads); imx25_add_imx_uart(addon_data[intf].uart_id, &addon_uart_pdata); addon_gpio_request(addon_data[intf].cmd_mldp); addon_gpio_request(addon_data[intf].wake_sw); addon_gpio_request(addon_data[intf].wake_hw); addon_gpio_direction_output(addon_data[intf].wake_sw, RN4020_WAKE_SW_ASSERT); addon_gpio_direction_output(addon_data[intf].wake_hw, RN4020_WAKE_HW_DEASSERT); addon_gpio_direction_output(addon_data[intf].cmd_mldp, RN4020_COMMAND_MODE); addon_gpio_export(addon_data[intf].wake_sw, false); addon_gpio_export(addon_data[intf].wake_hw, false); addon_gpio_export(addon_data[intf].cmd_mldp, false); return 0; }
int __init addon_setup_satori_wireless(struct addon_device_descriptor *desc, enum addon_interface intf) { mxc_iomux_v3_setup_multiple_pads(addon_data[intf].pads, addon_data[intf].nr_pads); imx25_add_imx_uart(addon_data[intf].uart_id, &addon_uart_pdata); addon_gpio_request(addon_data[intf].reset); addon_gpio_request(addon_data[intf].wakeup); addon_gpio_request(addon_data[intf].ring); /* refered: reference circuit */ addon_gpio_direction_output(addon_data[intf].reset, 1); /* always high */ addon_gpio_direction_output(addon_data[intf].wakeup, 1); /* always high */ addon_gpio_direction_output(addon_data[intf].ring, 1); /* always high */ return 0; }