Unverified Commit 4f772737 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!307 arch: mach: add support for 16dv300 series soc.

Merge Pull Request from: @mist_tao 
 
As a new-generation smart HD IP camera SOC, Hi3516DV300 
integrates the new-generation ISP, H.265 video compression encoder, 
and high-performance NNIE engine. Hi3516DV300 leads the industry 
in terms of low bit rate, high image quality, intelligent processing and analysis, 
and low power consumption. The soc can be used in the development of face recognition terminals, 
face payment terminals, and security terminals. 

This patchset mainly provide common capabilities for 16dv300 series soc.
1、Add support for 16dv300 machine, including clk driver,defconfig, etc.
2、Add MEIG vendor id to usb serial driver options.
3、Add I2C_M_STOP flag support for hix5hd2 driver.
 
 
Link:https://gitee.com/openeuler/kernel/pulls/307

 
Reviewed-by: default avatarXie XiuQi <xiexiuqi@huawei.com>
Signed-off-by: default avatarXie XiuQi <xiexiuqi@huawei.com>
parents e1c7d892 6d3d08af
Loading
Loading
Loading
Loading
+2181 −0

File added.

Preview size limit exceeded, changes collapsed.

+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
Loading