mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-29 08:01:08 +00:00
socfpga: Adding System Manager driver
Adding System Manager driver which will configure the pin mux for real hardware Cyclone V development kit (not Virtual Platform) Signed-off-by: Chin Liang See <clsee@altera.com> Reviewed-by: Pavel Machek <pavel@denx.de> Acked-by: Dinh Nguyen <dinguyen@altera.com> Cc: Wolfgang Denk <wd@denx.de> CC: Pavel Machek <pavel@denx.de> Cc: Dinh Nguyen <dinguyen@altera.com> Cc: Tom Rini <trini@ti.com> Cc: Albert Aribaud <albert.u.boot@aribaud.net>
This commit is contained in:
parent
0610a16cf2
commit
5d649d2b08
7 changed files with 61 additions and 2 deletions
|
@ -13,7 +13,7 @@ include $(TOPDIR)/config.mk
|
|||
LIB = $(obj)lib$(SOC).o
|
||||
|
||||
SOBJS := lowlevel_init.o
|
||||
COBJS-y := misc.o timer.o reset_manager.o
|
||||
COBJS-y := misc.o timer.o reset_manager.o system_manager.o
|
||||
COBJS-$(CONFIG_SPL_BUILD) += spl.o
|
||||
|
||||
COBJS := $(COBJS-y)
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#include <image.h>
|
||||
#include <asm/arch/reset_manager.h>
|
||||
#include <spl.h>
|
||||
#include <asm/arch/system_manager.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
|
@ -25,6 +26,11 @@ u32 spl_boot_device(void)
|
|||
*/
|
||||
void spl_board_init(void)
|
||||
{
|
||||
#ifndef CONFIG_SOCFPGA_VIRTUAL_TARGET
|
||||
/* configure the pin muxing through system manager */
|
||||
sysmgr_pinmux_init();
|
||||
#endif /* CONFIG_SOCFPGA_VIRTUAL_TARGET */
|
||||
|
||||
/* de-assert reset for peripherals and bridges based on handoff */
|
||||
reset_deassert_peripherals_handoff();
|
||||
|
||||
|
|
27
arch/arm/cpu/armv7/socfpga/system_manager.c
Normal file
27
arch/arm/cpu/armv7/socfpga/system_manager.c
Normal file
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* Copyright (C) 2013 Altera Corporation <www.altera.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/system_manager.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
/*
|
||||
* Configure all the pin muxes
|
||||
*/
|
||||
void sysmgr_pinmux_init(void)
|
||||
{
|
||||
unsigned long offset = CONFIG_SYSMGR_PINMUXGRP_OFFSET;
|
||||
|
||||
const unsigned long *pval = sys_mgr_init_table;
|
||||
unsigned long i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(sys_mgr_init_table);
|
||||
i++, offset += sizeof(unsigned long)) {
|
||||
writel(*pval++, (SOCFPGA_SYSMGR_ADDRESS + offset));
|
||||
}
|
||||
}
|
|
@ -12,5 +12,6 @@
|
|||
#define SOCFPGA_UART1_ADDRESS 0xffc03000
|
||||
#define SOCFPGA_OSC1TIMER0_ADDRESS 0xffd00000
|
||||
#define SOCFPGA_RSTMGR_ADDRESS 0xffd05000
|
||||
#define SOCFPGA_SYSMGR_ADDRESS 0xffd08000
|
||||
|
||||
#endif /* _SOCFPGA_BASE_ADDRS_H_ */
|
||||
|
|
22
arch/arm/include/asm/arch-socfpga/system_manager.h
Normal file
22
arch/arm/include/asm/arch-socfpga/system_manager.h
Normal file
|
@ -0,0 +1,22 @@
|
|||
/*
|
||||
* Copyright (C) 2013 Altera Corporation <www.altera.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#ifndef _SYSTEM_MANAGER_H_
|
||||
#define _SYSTEM_MANAGER_H_
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
void sysmgr_pinmux_init(void);
|
||||
|
||||
/* declaration for handoff table type */
|
||||
extern unsigned long sys_mgr_init_table[CONFIG_HPS_PINMUX_NUM];
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#define CONFIG_SYSMGR_PINMUXGRP_OFFSET (0x400)
|
||||
|
||||
#endif /* _SYSTEM_MANAGER_H_ */
|
|
@ -10,8 +10,10 @@ include $(TOPDIR)/config.mk
|
|||
|
||||
LIB = $(obj)lib$(BOARD).o
|
||||
|
||||
COBJS := socfpga_cyclone5.o
|
||||
COBJS-y := socfpga_cyclone5.o
|
||||
COBJS-$(CONFIG_SPL_BUILD) += pinmux_config.o
|
||||
|
||||
COBJS := $(COBJS-y)
|
||||
SRCS := $(COBJS:.o=.c)
|
||||
OBJS := $(addprefix $(obj),$(COBJS))
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#define __CONFIG_H
|
||||
|
||||
#include <asm/arch/socfpga_base_addrs.h>
|
||||
#include "../../board/altera/socfpga/pinmux_config.h"
|
||||
|
||||
/*
|
||||
* High level configuration
|
||||
|
|
Loading…
Reference in a new issue