NXP LPC1768 Ethernet driver for lwip and CMSIS-RTOS

Dependents:   EthernetInterface EthernetInterface EthernetInterface_RSF EthernetInterface ... more

Legacy Networking Libraries

This is an mbed 2 networking library. For mbed 5, the networking libraries have been revised to better support additional network stacks and thread safety here.

This library is based on the code of the NXP LPC port of the Lightweight TCP/IP Stack

Copyright(C) 2011, NXP Semiconductor
All rights reserved.

Software that is described herein is for illustrative purposes only
which provides customers with programming information regarding the
products. This software is supplied "AS IS" without any warranties.
NXP Semiconductors assumes no responsibility or liability for the
use of the software, conveys no license or title under any patent,
copyright, or mask work right to the product. NXP Semiconductors
reserves the right to make changes in the software without
notification. NXP Semiconductors also make no representation or
warranty that such application will be suitable for the specified
use without further testing or modification.
Committer:
mbed_official
Date:
Thu Sep 11 17:00:30 2014 +0100
Revision:
17:eb2c8c3aa1cd
Parent:
arch/TARGET_K64F/hardware_init_MK64F12.c@10:ab9330955226
Child:
18:b15a12222890
Synchronized with git revision c372035d60ac16c22e1313348a9e3f47293dc6b8

Full URL: https://github.com/mbedmicro/mbed/commit/c372035d60ac16c22e1313348a9e3f47293dc6b8/

Add derivative support to K64F and updates for MTS_GAMBIT

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 10:ab9330955226 1 /*
mbed_official 10:ab9330955226 2 * Copyright (c) 2013 - 2014, Freescale Semiconductor, Inc.
mbed_official 10:ab9330955226 3 * All rights reserved.
mbed_official 10:ab9330955226 4 *
mbed_official 10:ab9330955226 5 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 10:ab9330955226 6 * are permitted provided that the following conditions are met:
mbed_official 10:ab9330955226 7 *
mbed_official 10:ab9330955226 8 * o Redistributions of source code must retain the above copyright notice, this list
mbed_official 10:ab9330955226 9 * of conditions and the following disclaimer.
mbed_official 10:ab9330955226 10 *
mbed_official 10:ab9330955226 11 * o Redistributions in binary form must reproduce the above copyright notice, this
mbed_official 10:ab9330955226 12 * list of conditions and the following disclaimer in the documentation and/or
mbed_official 10:ab9330955226 13 * other materials provided with the distribution.
mbed_official 10:ab9330955226 14 *
mbed_official 10:ab9330955226 15 * o Neither the name of Freescale Semiconductor, Inc. nor the names of its
mbed_official 10:ab9330955226 16 * contributors may be used to endorse or promote products derived from this
mbed_official 10:ab9330955226 17 * software without specific prior written permission.
mbed_official 10:ab9330955226 18 *
mbed_official 10:ab9330955226 19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
mbed_official 10:ab9330955226 20 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
mbed_official 10:ab9330955226 21 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 10:ab9330955226 22 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
mbed_official 10:ab9330955226 23 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
mbed_official 10:ab9330955226 24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
mbed_official 10:ab9330955226 25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
mbed_official 10:ab9330955226 26 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
mbed_official 10:ab9330955226 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
mbed_official 10:ab9330955226 28 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 10:ab9330955226 29 */
mbed_official 10:ab9330955226 30
mbed_official 10:ab9330955226 31 #include "fsl_port_hal.h"
mbed_official 10:ab9330955226 32 #include "fsl_clock_manager.h"
mbed_official 10:ab9330955226 33 #include "fsl_device_registers.h"
mbed_official 10:ab9330955226 34 #include "fsl_sim_hal.h"
mbed_official 10:ab9330955226 35
mbed_official 10:ab9330955226 36 /*******************************************************************************
mbed_official 10:ab9330955226 37 * Code
mbed_official 10:ab9330955226 38 ******************************************************************************/
mbed_official 10:ab9330955226 39 void k64f_init_eth_hardware(void)
mbed_official 10:ab9330955226 40 {
mbed_official 10:ab9330955226 41 uint8_t count;
mbed_official 10:ab9330955226 42
mbed_official 10:ab9330955226 43 /* Disable the mpu*/
mbed_official 10:ab9330955226 44 BW_MPU_CESR_VLD(0);
mbed_official 10:ab9330955226 45
mbed_official 10:ab9330955226 46 /* Open POTR clock gate*/
mbed_official 10:ab9330955226 47 for (count = 0; count < HW_PORT_INSTANCE_COUNT; count++)
mbed_official 10:ab9330955226 48 {
mbed_official 10:ab9330955226 49 clock_manager_set_gate(kClockModulePORT, count, true);
mbed_official 10:ab9330955226 50 }
mbed_official 10:ab9330955226 51
mbed_official 10:ab9330955226 52 /* Configure gpio*/
mbed_official 10:ab9330955226 53 port_hal_mux_control(HW_PORTA, 12, kPortMuxAlt4); /*!< ENET RMII0_RXD1/MII0_RXD1*/
mbed_official 10:ab9330955226 54 port_hal_mux_control(HW_PORTA, 13, kPortMuxAlt4); /*!< ENET RMII0_RXD0/MII0_RXD0*/
mbed_official 10:ab9330955226 55 port_hal_mux_control(HW_PORTA, 14, kPortMuxAlt4); /*!< ENET RMII0_CRS_DV/MII0_RXDV*/
mbed_official 10:ab9330955226 56 port_hal_mux_control(HW_PORTA, 15, kPortMuxAlt4); /*!< ENET RMII0_TXEN/MII0_TXEN*/
mbed_official 10:ab9330955226 57 port_hal_mux_control(HW_PORTA, 16, kPortMuxAlt4); /*!< ENET RMII0_TXD0/MII0_TXD0*/
mbed_official 10:ab9330955226 58 port_hal_mux_control(HW_PORTA, 17, kPortMuxAlt4); /*!< ENET RMII0_TXD01/MII0_TXD1*/
mbed_official 10:ab9330955226 59 port_hal_mux_control(HW_PORTB, 0, kPortMuxAlt4); /*!< ENET RMII0_MDIO/MII0_MDIO*/
mbed_official 10:ab9330955226 60 port_hal_configure_open_drain(HW_PORTB,0, true); /*!< ENET RMII0_MDC/MII0_MDC*/
mbed_official 10:ab9330955226 61
mbed_official 10:ab9330955226 62 // Added for FRDM-K64F
mbed_official 10:ab9330955226 63 port_hal_pull_select(HW_PORTB, 0, kPortPullUp);
mbed_official 10:ab9330955226 64 port_hal_configure_pull(HW_PORTB, 0, true);
mbed_official 10:ab9330955226 65
mbed_official 10:ab9330955226 66 port_hal_mux_control(HW_PORTB, 1, kPortMuxAlt4);
mbed_official 10:ab9330955226 67 /* Configure GPIO for MII interface */
mbed_official 10:ab9330955226 68 port_hal_mux_control(HW_PORTA, 9, kPortMuxAlt4); /*!< ENET MII0_RXD3*/
mbed_official 10:ab9330955226 69 port_hal_mux_control(HW_PORTA, 10, kPortMuxAlt4); /*!< ENET MII0_RXD2*/
mbed_official 10:ab9330955226 70 port_hal_mux_control(HW_PORTA, 11, kPortMuxAlt4); /*!< ENET MII0_RXCLK*/
mbed_official 10:ab9330955226 71 port_hal_mux_control(HW_PORTA, 24, kPortMuxAlt4); /*!< ENET MII0_TXD2*/
mbed_official 10:ab9330955226 72 port_hal_mux_control(HW_PORTA, 25, kPortMuxAlt4); /*!< ENET MII0_TXCLK*/
mbed_official 10:ab9330955226 73 port_hal_mux_control(HW_PORTA, 26, kPortMuxAlt4); /*!< ENET MII0_TXD3*/
mbed_official 10:ab9330955226 74 port_hal_mux_control(HW_PORTA, 27, kPortMuxAlt4); /*!< ENET MII0_CRS*/
mbed_official 10:ab9330955226 75 port_hal_mux_control(HW_PORTA, 28, kPortMuxAlt4); /*!< ENET MII0_TXER*/
mbed_official 10:ab9330955226 76 port_hal_mux_control(HW_PORTA, 29, kPortMuxAlt4); /*!< ENET MII0_COL*/
mbed_official 10:ab9330955226 77 #if FSL_FEATURE_ENET_SUPPORT_PTP
mbed_official 10:ab9330955226 78 port_hal_mux_control(HW_PORTC, (16 + ENET_TIMER_CHANNEL_NUM), kPortMuxAlt4); /* ENET ENET0_1588_TMR0*/
mbed_official 10:ab9330955226 79 port_hal_configure_drive_strength(HW_PORTC, (16 + ENET_TIMER_CHANNEL_NUM), kPortHighDriveStrength);
mbed_official 10:ab9330955226 80 #endif
mbed_official 10:ab9330955226 81
mbed_official 10:ab9330955226 82 /* Open ENET clock gate*/
mbed_official 10:ab9330955226 83 clock_manager_set_gate(kClockModuleENET,0,true);
mbed_official 10:ab9330955226 84
mbed_official 10:ab9330955226 85 /* Select the ptp timer outclk*/
mbed_official 10:ab9330955226 86 clock_hal_set_clock_source(kSimClockTimeSrc, 2);
mbed_official 10:ab9330955226 87 }
mbed_official 10:ab9330955226 88
mbed_official 10:ab9330955226 89 /*******************************************************************************
mbed_official 10:ab9330955226 90 * EOF
mbed_official 10:ab9330955226 91 ******************************************************************************/
mbed_official 10:ab9330955226 92