Commit 6ea0e9a5 authored by taolan's avatar taolan Committed by Zhong Jinghua
Browse files

module: add hisi machine support

driver inclusion
category: bugfix
bugzilla:https://gitee.com/openeuler/kernel/issues/I5XHIQ



-----------------------------------------------------------------

Add support for hi3516dv300 soc.

Signed-off-by: default avatartaolan <taolan@huawei.com>
parent 6d905cb3
Loading
Loading
Loading
Loading
+258 −0
Original line number Diff line number Diff line
config ARCH_HISI_BVT
	bool "Hisilicon BVT SoC Support"
	select ARM_AMBA
	select ARM_GIC if ARCH_MULTI_V7
	select ARM_VIC if ARCH_MULTI_V5
	select ARM_TIMER_SP804
	select POWER_RESET
	select POWER_SUPPLY

if ARCH_HISI_BVT

menu "Hisilicon BVT platform type"

config ARCH_HI3521DV200
	bool "Hisilicon Hi3521DV200 Cortex-A7 family"
	depends on ARCH_MULTI_V7
	select HAVE_ARM_ARCH_TIMER
	select PINCTRL
	select POWER_RESET_HISI
	help
		Support for Hisilicon Hi3521DV200 Soc family.

config ARCH_HI3520DV500
	bool "Hisilicon Hi3520DV500 Cortex-A7 family"
	depends on ARCH_MULTI_V7
	select HAVE_ARM_ARCH_TIMER
	select PINCTRL
	select POWER_RESET_HISI
	help
		Support for Hisilicon Hi3520DV500 Soc family.

config ARCH_HI3516A
	bool "Hisilicon Hi3516A Cortex-A7(Single) family"
	depends on ARCH_MULTI_V7
	select HAVE_ARM_ARCH_TIMER
	select ARM_GIC
	select ARCH_HAS_RESET_CONTROLLER
	select RESET_CONTROLLER
	help
		Support for Hisilicon Hi3516A Soc family.

config ARCH_HI3516CV500
	bool "Hisilicon Hi3516CV500 Cortex-A7 family"
	depends on ARCH_MULTI_V7
	select HAVE_ARM_ARCH_TIMER
	select PINCTRL
	select POWER_RESET_HISI
	help
		Support for Hisilicon Hi3516CV500 Soc family.

config ARCH_HI3516DV300
	bool "Hisilicon Hi3516DV300 Cortex-A7 family"
	depends on ARCH_MULTI_V7
	select HAVE_ARM_ARCH_TIMER
	select PINCTRL
	select POWER_RESET_HISI
	help
		Support for Hisilicon Hi3516DV300 Soc family.

config ARCH_HI3516EV200
	bool "Hisilicon Hi3516EV200 Cortex-A7 family"
	depends on ARCH_MULTI_V7
	select HAVE_ARM_ARCH_TIMER
	select PINCTRL
	select POWER_RESET_HISI
	help
		Support for Hisilicon Hi3516EV200 Soc family.

config ARCH_HI3516EV300
	bool "Hisilicon Hi3516EV300 Cortex-A7 family"
	depends on ARCH_MULTI_V7
	select HAVE_ARM_ARCH_TIMER
	select PINCTRL
	select POWER_RESET_HISI
	help
		Support for Hisilicon Hi3516EV300 Soc family.

config ARCH_HI3518EV300
	bool "Hisilicon Hi3518EV300 Cortex-A7 family"
	depends on ARCH_MULTI_V7
	select HAVE_ARM_ARCH_TIMER
	select PINCTRL
	select POWER_RESET_HISI
	help
		Support for Hisilicon Hi3518EV300 Soc family.

config ARCH_HI3516DV200
	bool "Hisilicon Hi3516DV200 Cortex-A7 family"
	depends on ARCH_MULTI_V7
	select HAVE_ARM_ARCH_TIMER
	select PINCTRL
	select POWER_RESET_HISI
	help
		Support for Hisilicon Hi3516DV200 Soc family.
config ARCH_HI3556V200
	bool "Hisilicon Hi3556V200 Cortex-A7 family"
	depends on ARCH_MULTI_V7
	select HAVE_ARM_ARCH_TIMER
	select PINCTRL
	select POWER_RESET_HISI
	help
		Support for Hisilicon Hi3556V200 Soc family.

config ARCH_HI3559V200
	bool "Hisilicon Hi3559V200 Cortex-A7 family"
	depends on ARCH_MULTI_V7
	select HAVE_ARM_ARCH_TIMER
	select PINCTRL
	select POWER_RESET_HISI
	help
		Support for Hisilicon Hi3559V200 Soc family.

config ARCH_HI3518EV20X
	bool "Hisilicon Hi3518ev20x ARM926T(Single) family"
	depends on ARCH_MULTI_V5
	select PINCTRL
	select PINCTRL_SINGLE
	help
		Support for Hisilicon Hi3518ev20x Soc family.

config ARCH_HI3536DV100
	bool "Hisilicon Hi3536DV100 Cortex-A7(Single) family"
	depends on ARCH_MULTI_V7
	select HAVE_ARM_ARCH_TIMER
	select PINCTRL
	help
		Support for Hisilicon Hi3536DV100 Soc family.

config ARCH_HI3521A
	bool "Hisilicon Hi3521A A7(Single) family"
	depends on ARCH_MULTI_V7
	select HAVE_ARM_ARCH_TIMER
	select ARM_GIC
	select PINCTRL
	select PINCTRL_SINGLE
	help
		Support for Hisilicon Hi3521a Soc family.

config ARCH_HI3531A
   bool "Hisilicon Hi3531A A9 family" if ARCH_MULTI_V7
   select HAVE_ARM_ARCH_TIMER
   select ARM_GIC
   select CACHE_L2X0
   select PINCTRL
   select PINCTRL_SINGLE
   select HAVE_ARM_SCU if SMP
   select NEED_MACH_IO_H if PCI
   help
       Support for Hisilicon Hi3531a Soc family.

config ARCH_HI3556AV100
	bool "Hisilicon Hi3556AV100 Cortex-a53 family" if ARCH_MULTI_V7
	select HAVE_ARM_ARCH_TIMER
	select ARM_CCI
	select ARCH_HAS_RESET_CONTROLLER
	select RESET_CONTROLLER
	select PMC if SMP
	help
	  Support for Hisilicon Hi3556AV100 Soc family
if ARCH_HI3556AV100

config PMC
	bool
	depends on ARCH_HI3556AV100
	help
	  support power control for Hi3556AV100 Cortex-a53

endif

config ARCH_HI3519AV100
	bool "Hisilicon Hi3519AV100 Cortex-a53 family" if ARCH_MULTI_V7
	select HAVE_ARM_ARCH_TIMER
	select ARM_CCI
	select ARM_GIC
	select ARCH_HAS_RESET_CONTROLLER
	select RESET_CONTROLLER
	select NEED_MACH_IO_H if PCI
	select PMC if SMP
	help
	  Support for Hisilicon Hi3519AV100 Soc family
if ARCH_HI3519AV100

config PMC
	bool
	depends on ARCH_HI3519AV100
	help
	  support power control for Hi3519AV100 Cortex-a53

endif

config ARCH_HI3568V100
	bool "Hisilicon Hi3568V100 Cortex-a53 family" if ARCH_MULTI_V7
	select HAVE_ARM_ARCH_TIMER
	select ARM_CCI
	select ARM_GIC
	select ARCH_HAS_RESET_CONTROLLER
	select RESET_CONTROLLER
	select NEED_MACH_IO_H if PCI
	select PMC if SMP
	help
	  Support for Hisilicon Hi3568V100 Soc family
if ARCH_HI3568V100

config PMC
	bool
	depends on ARCH_HI3568V100
	help
	  support power control for Hi3568V100 Cortex-a53

endif

config ARCH_HISI_BVT_AMP
	bool "Hisilicon AMP solution support"
      depends on ARCH_HI3556AV100 || ARCH_HI3519AV100 || ARCH_HI3516CV500 || ARCH_HI3516DV300 || ARCH_HI3556V200 || ARCH_HI3559V200 || ARCH_HI3562V100 || ARCH_HI3566V100 || ARCH_HI3568V100
	help
	  support for Hisilicon AMP solution

config HISI_MC
	bool "Hisilicon mc platform solution"
	default n
	help
	  support for Hisilicon mc platform solution

config AMP_ZRELADDR
	hex 'amp zreladdr'
	depends on ARCH_HISI_BVT_AMP
	default "0x32008000" if ARCH_HI3556AV100 || ARCH_HI3519AV100 || ARCH_HI3568V100
	default "0x82008000" if ARCH_HI3516CV500 || ARCH_HI3516DV300 || ARCH_HI3556V200 || ARCH_HI3559V200 || ARCH_HI3562V100 || ARCH_HI3566V100
	default "0x42008000" if ARCH_HI3516EV200 || ARCH_HI3516EV300 || ARCH_HI3518EV300 || ARCH_HI3516DV200
config HI_ZRELADDR
       hex 'zreladdr'
       default "0x40008000" if ARCH_HI3521DV200
       default "0x40008000" if ARCH_HI3520DV500
       default "0x80008000" if ARCH_HI3516CV500
       default "0x80008000" if ARCH_HI3516DV300
       default "0x80008000" if ARCH_HI3556V200
       default "0x80008000" if ARCH_HI3559V200
       default "0x80008000" if ARCH_HI3562V100
       default "0x80008000" if ARCH_HI3566V100
       default "0x80008000" if ARCH_HI3516A
       default "0x80008000" if ARCH_HI3518EV20X
       default "0x80008000" if ARCH_HI3536DV100
       default "0x80008000" if ARCH_HI3521A
       default "0x40008000" if ARCH_HI3531A
       default "0x40008000" if ARCH_HI3516EV200 || ARCH_HI3516EV300 || ARCH_HI3518EV300 || ARCH_HI3516DV200
       default "0x22008000" if ARCH_HI3556AV100 || ARCH_HI3519AV100 || ARCH_HI3568V100

config HI_PARAMS_PHYS
       hex 'params_phys'
       default "0x00000100"

config HI_INITRD_PHYS
       hex 'initrd_phys'
       default "0x00800000"

endmenu

endif
+27 −0
Original line number Diff line number Diff line
#
# Makefile for Hisilicon processors family
#

obj-$(CONFIG_ARCH_HI3521DV200) += mach-hi3521dv200.o
obj-$(CONFIG_ARCH_HI3520DV500) += mach-hi3521dv200.o
obj-$(CONFIG_ARCH_HI3516A) += mach-hi3516a.o
obj-$(CONFIG_ARCH_HI3516CV500) += mach-hi3516cv500.o
obj-$(CONFIG_ARCH_HI3516EV200) += mach-hi3516ev200.o
obj-$(CONFIG_ARCH_HI3516EV300) += mach-hi3516ev300.o
obj-$(CONFIG_ARCH_HI3518EV300) += mach-hi3518ev300.o
obj-$(CONFIG_ARCH_HI3516DV200) += mach-hi3516dv200.o
obj-$(CONFIG_ARCH_HI3516DV300) += mach-hi3516dv300.o
obj-$(CONFIG_ARCH_HI3556V200) += mach-hi3556v200.o
obj-$(CONFIG_ARCH_HI3559V200) += mach-hi3559v200.o
obj-$(CONFIG_ARCH_HI3562V100) += mach-hi3559v200.o
obj-$(CONFIG_ARCH_HI3566V100) += mach-hi3559v200.o
obj-$(CONFIG_ARCH_HI3518EV20X) += mach-hi3518ev20x.o
obj-$(CONFIG_ARCH_HI3536DV100) += mach-hi3536dv100.o
obj-$(CONFIG_ARCH_HI3521A) += mach-hi3521a.o
obj-$(CONFIG_ARCH_HI3531A) += mach-hi3531a.o
obj-$(CONFIG_ARCH_HI3556AV100) += mach-hi3556av100.o
obj-$(CONFIG_ARCH_HI3519AV100) += mach-hi3519av100.o
obj-$(CONFIG_ARCH_HI3568V100) += mach-hi3519av100.o


obj-$(CONFIG_SMP)	+= platsmp.o
+7 −0
Original line number Diff line number Diff line
ifeq ($(CONFIG_ARCH_HISI_BVT_AMP), y)
zreladdr-$(CONFIG_ARCH_HISI_BVT)      := $(CONFIG_AMP_ZRELADDR)
else
zreladdr-$(CONFIG_ARCH_HISI_BVT)      := $(CONFIG_HI_ZRELADDR)
endif
params_phys-$(CONFIG_ARCH_HISI_BVT)   := $(CONFIG_HI_PARAMS_PHYS)
initrd_phys-$(CONFIG_ARCH_HISI_BVT)   := $(CONFIG_HI_INITRD_PHYS)
+27 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
#ifndef __HI3516DV300_IO_H
#define __HI3516DV300_IO_H

/*
 * phy: 0x20000000 ~ 0x20700000
 * vir: 0xFE100000 ~ 0xFE800000
 */
#define HI3516DV300_IOCH2_PHYS  0x20000000
#define IO_OFFSET_HIGH      0xDE100000
#define HI3516DV300_IOCH2_VIRT (HI3516DV300_IOCH2_PHYS + IO_OFFSET_HIGH)
#define HI3516DV300_IOCH2_SIZE 0x700000

/* phy: 0x10000000 ~ 0x100E0000
 * vir: 0xFE000000 ~ 0xFE0E0000
 */
#define HI3516DV300_IOCH1_PHYS  0x10000000
#define IO_OFFSET_LOW       0xEE000000
#define HI3516DV300_IOCH1_VIRT (HI3516DV300_IOCH1_PHYS + IO_OFFSET_LOW)
#define HI3516DV300_IOCH1_SIZE 0xE0000

#define IO_ADDRESS(x) ((x) >= HI3516DV300_IOCH2_PHYS ? (x) + IO_OFFSET_HIGH \
	: (x) + IO_OFFSET_LOW)

#define __io_address(n)     ((void __iomem __force *)IO_ADDRESS(n))

#endif
+5 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
#ifndef __HI3516DV300_CHIP_REGS_H__
#define __HI3516DV300_CHIP_REGS_H__

#endif /* End of __HI3516DV300_CHIP_REGS_H__ */
Loading