/****************************************************************************** * DISCLAIMER * This software is supplied by Renesas Technology Corp. and is only * intended for use with Renesas products. No other uses are authorized. * This software is owned by Renesas Technology Corp. and is protected under * all applicable laws, including copyright laws. * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES * REGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, * INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY * DISCLAIMED. * TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS * TECHNOLOGY CORP. NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE * FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES * FOR ANY REASON RELATED TO THE THIS SOFTWARE, EVEN IF RENESAS OR ITS * AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. * Renesas reserves the right, without notice, to make changes to this * software and to discontinue the availability of this software. * By using this software, you agree to the additional terms and * conditions found by accessing the following link: * http://www.renesas.com/disclaimer ****************************************************************************** * Copyright (C) 2008. Renesas Technology Corp., All Rights Reserved. ******************************************************************************* * File Name : hwsetup.c * Version : 1.00 * Description : Power up hardware initializations ****************************************************************************** * History : DD.MM.YYYY Version Description * : 15.02.2010 1.00 First Release ******************************************************************************/ /****************************************************************************** Includes , "Project Includes" ******************************************************************************/ #include #include #include "yrdkrx62ndef.h" // #include "lcd.h" Uncomment this if an LCD is present. /****************************************************************************** Typedef definitions ******************************************************************************/ /****************************************************************************** Macro definitions ******************************************************************************/ /****************************************************************************** Imported global variables and functions (from other files) ******************************************************************************/ /****************************************************************************** Exported global variables and functions (to be accessed by other files) ******************************************************************************/ /****************************************************************************** Private global variables and functions ******************************************************************************/ /****************************************************************************** * Function Name: HardwareSetup * Description : This function does initial setting for CPG port pins used in * : the Demo including the MII pins of the Ethernet PHY connection. * Arguments : none * Return Value : none ******************************************************************************/ void HardwareSetup(void) { uint32_t sckcr = 0; /* Configure system clocks based on header */ sckcr += (ICLK_MUL==8) ? (0ul << 24) : (ICLK_MUL==4) ? (1ul << 24) : (ICLK_MUL==2) ? (2ul << 24) : (3ul << 24); sckcr += (BCLK_MUL==8) ? (0ul << 16) : (BCLK_MUL==4) ? (1ul << 16) : (BCLK_MUL==2) ? (2ul << 16) : (3ul << 16); sckcr += (PCLK_MUL==8) ? (0ul << 8) : (PCLK_MUL==4) ? (1ul << 8) : (PCLK_MUL==2) ? (2ul << 8) : (3ul << 8); SYSTEM.SCKCR.LONG = sckcr; /* Module standby clear - EtherC, EDMAC */ SYSTEM.MSTPCRB.BIT.MSTPB15 = 0; PORT0.DDR.BYTE = 0x00 ; // Port 0: inputs (IRQ's from ethernet & WiFi) PORT1.DDR.BYTE = 0x00 ; // Port 1: inputs (IIC and USB settings will override these later) PORT2.DDR.BYTE = 0x1A ; // Port 2: USB signals PORT3.DDR.BYTE = 0x04 ; // Port 3: JTAG (P30, P31, P34), CAN (P32=Tx, P33=Rx), NMI (P35) PORT4.DDR.BYTE = 0x00 ; // Port 4: Switches (P40-P42), AIN (P43-P47) PORT5.DDR.BYTE = 0x3B ; // Port 5: Audio (P55,P54), BCLK (P53), SCI (P52=Rx, P50=Tx), LCD-RS (P51) PORTA.DR.BYTE = 0x00 ; // Port A outputs all LOW to start PORTA.DDR.BYTE = 0xFF ; // Port A: Expansion (PA0-PA2), Ether (PA3-PA5), Audio (PA6-PA7) PORTB.DR.BYTE = 0x00 ; PORTB.DDR.BYTE = 0x70 ; // Port B: Ether PORTC.DR.BYTE = 0xF7 ; // Port C: Chip selects, clock = high; IO reset = low (not reset, needed by Ether PHY) PORTC.DDR.BYTE = 0x7F ; // Port C: SPI (PC0-2, PC4-7), IO reset (PC3) // Ethernet settings IOPORT.PFENET.BYTE = 0x82; // Enable Ether poins, RMII mode, enable LINKSTA PORTA.ICR.BIT.B5 = 1; // ET_LINKSTA PORTA.ICR.BIT.B3 = 1; // ET_MDIO PORTB.ICR.BIT.B0 = 1; // RMII_RXD1 PORTB.ICR.BIT.B1 = 1; // RMII_RXD0 PORTB.ICR.BIT.B2 = 1; // REF50CLK PORTB.ICR.BIT.B3 = 1; // RMII_RX_ER PORTB.ICR.BIT.B7 = 1; // RMII_CRS_DV /* Configure LEDs */ LED4 = LED_OFF; LED5 = LED_OFF; LED6 = LED_OFF; LED7 = LED_OFF; LED8 = LED_OFF; LED9 = LED_OFF; LED10 = LED_OFF; LED11 = LED_OFF; LED12 = LED_OFF; LED13 = LED_OFF; LED14 = LED_OFF; LED15 = LED_OFF; LED4_DDR = 1; LED5_DDR = 1; LED6_DDR = 1; LED7_DDR = 1; LED8_DDR = 1; LED9_DDR = 1; LED10_DDR = 1; LED11_DDR = 1; LED12_DDR = 1; LED13_DDR = 1; LED14_DDR = 1; LED15_DDR = 1; /* Configure push button switches */ SW1_DDR = 0; SW2_DDR = 0; SW3_DDR = 0; SW1_ICR = 1; SW2_ICR = 1; SW3_ICR = 1; }