# vim:set ft=make:

OBJECTS_LIBUART         += uart_imx.o uart_pl011.o
OBJECTS_LIBUART         += $(if $(CONFIG_PF_IMX_8XQ),uart_lpuart.o)
OBJECTS_LIBUART         += $(if $(CONFIG_PF_IMX_95),uart_lpuart.o)
PREPROCESS_PARTS	+= $(if $(CONFIG_PF_IMX_21),kern_start_0xd)
PREPROCESS_PARTS        += $(if $(CONFIG_PF_IMX_35),imx_epit)
PREPROCESS_PARTS	+= $(if $(CONFIG_PF_IMX_51),imx_epit \
                                                    pic_gic pic_gic_mxc_tzic)
PREPROCESS_PARTS	+= $(if $(CONFIG_PF_IMX_53),imx_epit \
                                                    pic_gic pic_gic_mxc_tzic)
PREPROCESS_PARTS        += $(if $(CONFIG_PF_IMX_6),pic_gic)
PREPROCESS_PARTS        += $(if $(CONFIG_PF_IMX_6_TIMER_MPTIMER),mptimer)
PREPROCESS_PARTS        += $(if $(CONFIG_PF_IMX_6_TIMER_EPIT),imx_epit)
PREPROCESS_PARTS        += $(if $(CONFIG_PF_IMX_6UL),pic_gic \
                                                     arm_generic_timer)
PREPROCESS_PARTS        += $(if $(CONFIG_PF_IMX_7),pic_gic \
                                                   arm_generic_timer)
PREPROCESS_PARTS        += $(if $(CONFIG_ARM_V8),pic_gic \
                                                 arm_generic_timer)
RAM_PHYS_BASE           := $(CONFIG_PF_IMX_RAM_PHYS_BASE)

INTERFACES_KERNEL     += $(if $(CONFIG_PF_IMX_6UL),generic_timer)
INTERFACES_KERNEL     += $(if $(CONFIG_PF_IMX_7),generic_timer)
INTERFACES_KERNEL     += $(if $(CONFIG_ARM_V8),generic_timer)
INTERFACES_KERNEL-$(CONFIG_PF_IMX_35) += timer_imx_epit
INTERFACES_KERNEL-$(CONFIG_PF_IMX_51) += timer_imx_epit
INTERFACES_KERNEL-$(CONFIG_PF_IMX_53) += timer_imx_epit
INTERFACES_KERNEL-$(CONFIG_PF_IMX_6_TIMER_EPIT) += timer_imx_epit

MPCORE_PHYS_BASE      := 0x00a00000

LIBUART_HDR-$(CONFIG_PF_IMX_21)    += imx
LIBUART_TYP-$(CONFIG_PF_IMX_21)    += imx21
LIBUART_HDR-$(CONFIG_PF_IMX_28)    += pl011
LIBUART_TYP-$(CONFIG_PF_IMX_28)    += pl011
LIBUART_HDR-$(CONFIG_PF_IMX_35)    += imx
LIBUART_TYP-$(CONFIG_PF_IMX_35)    += imx35
LIBUART_HDR-$(CONFIG_PF_IMX_51)    += imx
LIBUART_TYP-$(CONFIG_PF_IMX_51)    += imx51
LIBUART_HDR-$(CONFIG_PF_IMX_53)    += imx
LIBUART_TYP-$(CONFIG_PF_IMX_53)    += imx51
LIBUART_HDR-$(CONFIG_PF_IMX_6)     += imx
LIBUART_TYP-$(CONFIG_PF_IMX_6)     += imx6
LIBUART_HDR-$(CONFIG_PF_IMX_6UL)   += imx
LIBUART_TYP-$(CONFIG_PF_IMX_6UL)   += imx6
LIBUART_HDR-$(CONFIG_PF_IMX_7)     += imx
LIBUART_TYP-$(CONFIG_PF_IMX_7)     += imx7
LIBUART_HDR-$(CONFIG_PF_IMX_8XQ)   += lpuart
LIBUART_TYP-$(CONFIG_PF_IMX_8XQ)   += lpuart
LIBUART_HDR-$(CONFIG_PF_IMX_8M)    += imx
LIBUART_TYP-$(CONFIG_PF_IMX_8M)    += imx8
LIBUART_HDR-$(CONFIG_PF_IMX_8MP)   += imx
LIBUART_TYP-$(CONFIG_PF_IMX_8MP)   += imx8
LIBUART_HDR-$(CONFIG_PF_IMX_95)    += lpuart
LIBUART_TYP-$(CONFIG_PF_IMX_95)    += lpuart

CXXFLAGS_uart-libuart += $(call LIBUART_UART, $(LIBUART_HDR-y), $(LIBUART_TYP-y))


config_IMPL           += config-arm-imx
mem_layout_IMPL       += mem_layout-arm-imx
pic_IMPL              += $(if $(CONFIG_PF_IMX_21),pic-arm-imx)
pic_IMPL              += $(if $(CONFIG_PF_IMX_28),pic-arm-imx-icoll)
pic_IMPL              += $(if $(CONFIG_PF_IMX_35),pic-arm-imx)
pic_IMPL              += $(if $(CONFIG_PF_IMX_51),pic-gic pic-arm-imx-gic)
pic_IMPL              += $(if $(CONFIG_PF_IMX_53),pic-gic pic-arm-imx-gic)
pic_IMPL              += $(if $(CONFIG_PF_IMX_6),pic-gic pic-arm-imx-gic)
pic_IMPL              += $(if $(CONFIG_PF_IMX_6UL),pic-gic pic-arm-imx-gic)
pic_IMPL              += $(if $(CONFIG_PF_IMX_7),pic-gic pic-arm-imx-gic)
pic_IMPL              += $(if $(CONFIG_ARM_V8),pic-gic pic-arm-imx-gic)
timer_IMPL            += $(if $(CONFIG_PF_IMX_21),timer-arm-imx21)
timer_IMPL            += $(if $(CONFIG_PF_IMX_28),timer-arm-timrot)
timer_IMPL            += $(if $(CONFIG_PF_IMX_35),timer-arm-imx_epit)
timer_IMPL            += $(if $(CONFIG_PF_IMX_51),timer-arm-imx_epit)
timer_IMPL            += $(if $(CONFIG_PF_IMX_53),timer-arm-imx_epit)
timer_IMPL            += $(if $(CONFIG_PF_IMX_6_TIMER_MPTIMER),timer-arm-mptimer timer-arm-mptimer-imx6)
timer_IMPL            += $(if $(CONFIG_PF_IMX_6_TIMER_EPIT),timer-arm-imx_epit)
timer_IMPL            += $(if $(CONFIG_PF_IMX_6UL),timer-arm-generic timer-arm-generic-imx)
timer_IMPL            += $(if $(CONFIG_PF_IMX_7),timer-arm-generic timer-arm-generic-imx)
timer_IMPL            += $(if $(CONFIG_ARM_V8),timer-arm-generic timer-arm-generic-imx)
timer_tick_IMPL       += $(if $(and $(CONFIG_PF_IMX_6_TIMER_EPIT),$(CONFIG_MP)),\
			   timer_tick-broadcast,timer_tick-single-vector)
reset_IMPL            += reset-arm-imx
outer_cache_IMPL      += outer_cache-arm-imx6
clock_IMPL            += $(if $(CONFIG_PF_IMX_6UL)$(CONFIG_PF_IMX_7)$(CONFIG_ARM_V8),\
			   clock-arm-generic,clock-generic)
platform_control_IMPL += platform_control-arm-imx
iommu_IMPL            += $(if $(CONFIG_IOMMU_ARM_SMMU_500),iommu-arm-smmu-500-imx)
iommu_IMPL            += $(if $(CONFIG_IOMMU_ARM_SMMU_V3),iommu-arm-smmu-v3-imx)
