/****************************************************************************** | |
* 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 <System Includes> , "Project Includes" | |
******************************************************************************/ | |
#include <stdint.h> | |
#include <iorx62n.h> | |
#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; | |
} | |