mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-09 20:18:54 -04:00
inka4x0: Add hardware diagnosis and RTC in configuration.
This patch adds the board specific communication routines needed by the external 4543 RTC. Signed-off-by: Detlev Zundel <dzu@denx.de> Signed-off-by: Andreas Pfefferle <ap@denx.de>
This commit is contained in:
parent
7b5611cdd1
commit
e979e85fd3
@ -33,6 +33,7 @@
|
|||||||
* MA 02111-1307 USA
|
* MA 02111-1307 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <asm/io.h>
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <mpc5xxx.h>
|
#include <mpc5xxx.h>
|
||||||
#include <pci.h>
|
#include <pci.h>
|
||||||
@ -189,6 +190,8 @@ int misc_init_r (void) {
|
|||||||
|
|
||||||
int misc_init_f (void)
|
int misc_init_f (void)
|
||||||
{
|
{
|
||||||
|
struct mpc5xxx_gpio *gpio = (struct mpc5xxx_gpio *)MPC5XXX_GPIO;
|
||||||
|
struct mpc5xxx_wu_gpio *wu_gpio = (struct mpc5xxx_wu_gpio *)MPC5XXX_WU_GPIO;
|
||||||
char tmp[10];
|
char tmp[10];
|
||||||
int i, br;
|
int i, br;
|
||||||
|
|
||||||
@ -236,6 +239,23 @@ int misc_init_f (void)
|
|||||||
*(vu_long *) MPC5XXX_WU_GPIO_ENABLE |= GPIO_PSC3_9;
|
*(vu_long *) MPC5XXX_WU_GPIO_ENABLE |= GPIO_PSC3_9;
|
||||||
*(vu_long *) MPC5XXX_WU_GPIO_DIR |= GPIO_PSC3_9;
|
*(vu_long *) MPC5XXX_WU_GPIO_DIR |= GPIO_PSC3_9;
|
||||||
*(vu_long *) MPC5XXX_WU_GPIO_DATA_O |= GPIO_PSC3_9;
|
*(vu_long *) MPC5XXX_WU_GPIO_DATA_O |= GPIO_PSC3_9;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Configure three wire serial interface to RTC (PSC1_4,
|
||||||
|
* PSC2_4, PSC3_4, PSC3_5)
|
||||||
|
*/
|
||||||
|
setbits_8(&wu_gpio->enable, MPC5XXX_GPIO_WKUP_PSC1_4 |
|
||||||
|
MPC5XXX_GPIO_WKUP_PSC2_4);
|
||||||
|
setbits_8(&wu_gpio->ddr, MPC5XXX_GPIO_WKUP_PSC1_4 |
|
||||||
|
MPC5XXX_GPIO_WKUP_PSC2_4);
|
||||||
|
clrbits_8(&wu_gpio->dvo, MPC5XXX_GPIO_WKUP_PSC1_4);
|
||||||
|
clrbits_8(&gpio->sint_inten, MPC5XXX_GPIO_SINT_PSC3_4 |
|
||||||
|
MPC5XXX_GPIO_SINT_PSC3_5);
|
||||||
|
setbits_8(&gpio->sint_gpioe, MPC5XXX_GPIO_SINT_PSC3_4 |
|
||||||
|
MPC5XXX_GPIO_SINT_PSC3_5);
|
||||||
|
setbits_8(&gpio->sint_ddr, MPC5XXX_GPIO_SINT_PSC3_5);
|
||||||
|
clrbits_8(&gpio->sint_dvo, MPC5XXX_GPIO_SINT_PSC3_5);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
|
* (C) Copyright 2009
|
||||||
|
* Detlev Zundel, DENX Software Engineering, dzu@denx.de.
|
||||||
|
*
|
||||||
* (C) Copyright 2003-2005
|
* (C) Copyright 2003-2005
|
||||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||||
*
|
*
|
||||||
@ -90,16 +93,17 @@
|
|||||||
*/
|
*/
|
||||||
#include <config_cmd_default.h>
|
#include <config_cmd_default.h>
|
||||||
|
|
||||||
|
#define CONFIG_CMD_DATE
|
||||||
#define CONFIG_CMD_DHCP
|
#define CONFIG_CMD_DHCP
|
||||||
#define CONFIG_CMD_EXT2
|
#define CONFIG_CMD_EXT2
|
||||||
#define CONFIG_CMD_FAT
|
#define CONFIG_CMD_FAT
|
||||||
#define CONFIG_CMD_IDE
|
#define CONFIG_CMD_IDE
|
||||||
#define CONFIG_CMD_NFS
|
#define CONFIG_CMD_NFS
|
||||||
#define CONFIG_CMD_PCI
|
#define CONFIG_CMD_PCI
|
||||||
|
#define CONFIG_CMD_PING
|
||||||
#define CONFIG_CMD_SNTP
|
#define CONFIG_CMD_SNTP
|
||||||
#define CONFIG_CMD_USB
|
#define CONFIG_CMD_USB
|
||||||
|
|
||||||
|
|
||||||
#define CONFIG_TIMESTAMP 1 /* Print image info with timestamp */
|
#define CONFIG_TIMESTAMP 1 /* Print image info with timestamp */
|
||||||
|
|
||||||
#if (TEXT_BASE == 0xFFE00000) /* Boot low */
|
#if (TEXT_BASE == 0xFFE00000) /* Boot low */
|
||||||
@ -240,15 +244,91 @@
|
|||||||
* 01 -> CAN1 on I2C1, CAN2 on Tmr0/1 do not use on TQM5200 with onboard
|
* 01 -> CAN1 on I2C1, CAN2 on Tmr0/1 do not use on TQM5200 with onboard
|
||||||
* EEPROM
|
* EEPROM
|
||||||
* use PSC1 as UART: Bits 28-31 (mask: 0x00000007): 0100
|
* use PSC1 as UART: Bits 28-31 (mask: 0x00000007): 0100
|
||||||
* use PSC6_1 and PSC6_3 as GPIO: Bits 9:11 (mask: 0x07000000):
|
* use PSC2 as UART: Bits 24-27 (mask: 0x00000070): 0100
|
||||||
* 011 -> PSC6 could not be used as UART or CODEC. IrDA still possible.
|
* use PSC3 as UART: Bits 20-23 (mask: 0x00000700): 0100
|
||||||
|
* use PSC6 as UART: Bits 9-11 (mask: 0x00700000): 0101
|
||||||
*/
|
*/
|
||||||
#define CONFIG_SYS_GPS_PORT_CONFIG 0x01001004
|
#define CONFIG_SYS_GPS_PORT_CONFIG 0x01501444
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* RTC configuration
|
* RTC configuration
|
||||||
*/
|
*/
|
||||||
#define CONFIG_RTC_MPC5200 1 /* use internal MPC5200 RTC */
|
#define CONFIG_RTC_RTC4543 1 /* use external RTC */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Software (bit-bang) three wire serial configuration
|
||||||
|
*
|
||||||
|
* Note that we need the ifdefs because otherwise compilation of
|
||||||
|
* mkimage.c fails.
|
||||||
|
*/
|
||||||
|
#define CONFIG_SOFT_TWS 1
|
||||||
|
|
||||||
|
#ifdef TWS_IMPLEMENTATION
|
||||||
|
#include <mpc5xxx.h>
|
||||||
|
#include <asm/io.h>
|
||||||
|
|
||||||
|
#define TWS_CE MPC5XXX_GPIO_WKUP_PSC1_4 /* GPIO_WKUP_0 */
|
||||||
|
#define TWS_WR MPC5XXX_GPIO_WKUP_PSC2_4 /* GPIO_WKUP_1 */
|
||||||
|
#define TWS_DATA MPC5XXX_GPIO_SINT_PSC3_4 /* GPIO_SINT_0 */
|
||||||
|
#define TWS_CLK MPC5XXX_GPIO_SINT_PSC3_5 /* GPIO_SINT_1 */
|
||||||
|
|
||||||
|
static inline void tws_ce(unsigned bit)
|
||||||
|
{
|
||||||
|
struct mpc5xxx_wu_gpio *wu_gpio =
|
||||||
|
(struct mpc5xxx_wu_gpio *)MPC5XXX_WU_GPIO;
|
||||||
|
if (bit)
|
||||||
|
setbits_8(&wu_gpio->dvo, TWS_CE);
|
||||||
|
else
|
||||||
|
clrbits_8(&wu_gpio->dvo, TWS_CE);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void tws_wr(unsigned bit)
|
||||||
|
{
|
||||||
|
struct mpc5xxx_wu_gpio *wu_gpio =
|
||||||
|
(struct mpc5xxx_wu_gpio *)MPC5XXX_WU_GPIO;
|
||||||
|
if (bit)
|
||||||
|
setbits_8(&wu_gpio->dvo, TWS_WR);
|
||||||
|
else
|
||||||
|
clrbits_8(&wu_gpio->dvo, TWS_WR);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void tws_clk(unsigned bit)
|
||||||
|
{
|
||||||
|
struct mpc5xxx_gpio *gpio =
|
||||||
|
(struct mpc5xxx_gpio *)MPC5XXX_GPIO;
|
||||||
|
if (bit)
|
||||||
|
setbits_8(&gpio->sint_dvo, TWS_CLK);
|
||||||
|
else
|
||||||
|
clrbits_8(&gpio->sint_dvo, TWS_CLK);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void tws_data(unsigned bit)
|
||||||
|
{
|
||||||
|
struct mpc5xxx_gpio *gpio =
|
||||||
|
(struct mpc5xxx_gpio *)MPC5XXX_GPIO;
|
||||||
|
if (bit)
|
||||||
|
setbits_8(&gpio->sint_dvo, TWS_DATA);
|
||||||
|
else
|
||||||
|
clrbits_8(&gpio->sint_dvo, TWS_DATA);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline unsigned tws_data_read(void)
|
||||||
|
{
|
||||||
|
struct mpc5xxx_gpio *gpio =
|
||||||
|
(struct mpc5xxx_gpio *)MPC5XXX_GPIO;
|
||||||
|
return !!(in_8(&gpio->sint_ival) & TWS_DATA);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void tws_data_config_output(unsigned output)
|
||||||
|
{
|
||||||
|
struct mpc5xxx_gpio *gpio =
|
||||||
|
(struct mpc5xxx_gpio *)MPC5XXX_GPIO;
|
||||||
|
if (output)
|
||||||
|
setbits_8(&gpio->sint_ddr, TWS_DATA);
|
||||||
|
else
|
||||||
|
clrbits_8(&gpio->sint_ddr, TWS_DATA);
|
||||||
|
}
|
||||||
|
#endif /* TWS_IMPLEMENTATION */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Miscellaneous configurable options
|
* Miscellaneous configurable options
|
||||||
|
Loading…
x
Reference in New Issue
Block a user