Exemplo n.º 1
0
int rt_wlan_init(void)
{
	rt_int32_t value=0;
	rt_err_t  error=RT_EOK;

	/*
	 * SRAM Tx/Rx pointer automatically return to start address,
	 * Packet Transmitted, Packet Received
	 */
	wlan_eth.parent.parent.init	   	= rt_wlan_dev_init;
	wlan_eth.parent.parent.open	   	= rt_wlan_dev_open;
	wlan_eth.parent.parent.close	= rt_wlan_dev_close;
	wlan_eth.parent.parent.read	   	= rt_wlan_dev_read;
	wlan_eth.parent.parent.write	= rt_wlan_dev_write;
	wlan_eth.parent.parent.control	= rt_wlan_dev_control;
	wlan_eth.parent.parent.user_data =(void *)&wlan_eth ;

	wlan_eth.parent.eth_rx	 = rt_wlan_dev_rx;
	wlan_eth.parent.eth_tx	 = rt_wlan_dev_tx;

	if (WlanInitPhase1(&wlan_eth) == 0)
	{
		WlanInitPhase2();
		WlanInitPhase3();
		eth_device_init(&(wlan_eth.parent), "w0");
	}

done:
	return error;
}
Exemplo n.º 2
0
rt_err_t mrvl_wlan_hw_init(const char* spi_device)
{
	rt_int32_t value=0;
	rt_err_t  error=RT_EOK;

	struct rt_device* device;
	struct eth_device* eth;
	struct rt_wlan_device* wlan;

	device = (struct rt_device*)&wlan_eth;
	eth = (struct eth_device*)&wlan_eth;
	wlan = (struct rt_wlan_device*)&wlan_eth;

	/* set the RT-Thread common device interface */
	device->init  = mrvl_wlan_init;
	device->open  = mrvl_wlan_open;
	device->close = mrvl_wlan_close;
	device->read  = RT_NULL;
	device->write = mrvl_wlan_write;
	device->control	= mrvl_wlan_control;
	device->user_data =(void *)&wlan_eth ;

	/* set ethernet network interface */
	eth->eth_tx = mrvl_wlan_tx;
	eth->eth_rx = mrvl_wlan_rx;

	wlan->status = WLAN_STATUS_IDLE;

	/* try to initialize wlan card */
	if (WlanInitPhase1(&wlan_eth, spi_device) == 0)
	{
		WlanInitPhase2();
		WlanInitPhase3();

		/* initialize wlan device */
		rt_wlan_device_init(wlan, &_mrvl_wlan_ops, "w0");
	}

	return error;
}