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;
}