#===============================================================================
# kernel cfg
#===============================================================================
ifdef UBOOTVERSION
obj-y += bootloader/
else

ifneq ($(CONFIG_SOCT_KMOD_CFLAGS),)
ccflags-y += $(CONFIG_SOCT_KMOD_CFLAGS)
endif

ifeq ($(TARGET_BUILD_VARIANT),eng)
ccflags-y += -DCONFIG_SOCT_PANEL_DEBUG_SUPPORT
$(warning TARGET_BUILD_VARIANT $(TARGET_BUILD_VARIANT))
endif

#for dmcu
ifeq ($(CONFIG_SOCT_DMCU_SUPPORT),y)
PANL_DMCU_SUPPORT_TIME := y
endif
#PANL_DMCU_SUPPORT_LDM := n

## header search path
panel_path := panel

#$(warning  CONFIG_SOCT_CHIP_REVERSION $(CONFIG_SOCT_CHIP_REVERSION))
ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "wudangstick" "shaolingun" "kongtongv100" "hengshanv200"),)
ifneq ($(findstring $(CONFIG_SOCT_CHIP_REVERSION), "wudangstick_c" "wudangstick_d" "wudangstick_m" "shaolingun_c" "shaolingun_d" "kongtongv100_d" "hengshanv200_d"),)
BOARD_VERSION := shaolingun
else
BOARD_VERSION := wudangstick
endif
endif

$(warning  BOARD_VERSION $(BOARD_VERSION))

ccflags-y += -Idrivers/drv/ioctl_inc/panel \
             -Idrivers/drv/ioctl_inc/generic \
             -Idrivers/drv/ioctl_inc/common \
             -Idrivers/drv/ioctl_inc/i2c \
             -Idrivers/drv/ioctl_inc/gpio \
             -Idrivers/drv/ioctl_inc/pdm \
             -Idrivers/drv/ioctl_inc/vo \
             -Idrivers/drv/ioctl_inc/ao \
             -Idrivers/drv/ioctl_inc/video \
             -Idrivers/drv/ioctl_inc/memc \
             -Idrivers/drv/ioctl_inc/audio \
             -Idrivers/drv/ioctl_inc/pq \
             -Idrivers/drv/ioctl_inc/ssm \
             -Idrivers/drv/ext_inc/base \
             -Idrivers/drv/ext_inc/osal \
             -Idrivers/drv/ext_inc/common \
             -Idrivers/drv/ext_inc/gpio \
             -Idrivers/drv/ext_inc/panel \
             -Idrivers/drv/ext_inc/i2c \
             -Idrivers/drv/ext_inc/pdm \
             -Idrivers/drv/ext_inc/pq \
             -Idrivers/drv/ext_inc/custom \
             -Idrivers/drv/ext_inc/vo \
             -Idrivers/drv/ext_inc/xdp/vdp \
             -Idrivers/drv/dip_inc/vo \
             -Idrivers/drv/ext_inc/dftevent \
             -Idrivers/drv/ext_inc/ssm \
            -Idrivers/drv/common/include \
            -Idrivers/drv/vo/include \
            -Idrivers/drv/custom \
            -Idrivers/drv/custom/kernel \
            -Idrivers/drv/ssm \
            -Idrivers/drv/$(panel_path) \
            -Idrivers/drv/$(panel_path)/include \
            -Idrivers/drv/$(panel_path)/osal \
            -Idrivers/drv/$(panel_path)/osal/driver \
            -Idrivers/drv/$(panel_path)/param \
            -Idrivers/drv/$(panel_path)/common \
            -Idrivers/drv/$(panel_path)/custom \
            -Idrivers/drv/$(panel_path)/backlight \
            -Idrivers/drv/$(panel_path)/backlight/0d \
            -Idrivers/drv/$(panel_path)/backlight/local \
            -Idrivers/drv/$(panel_path)/backlight/native \
            -Idrivers/drv/$(panel_path)/transmitter \
            -Idrivers/drv/$(panel_path)/transmitter/vbo \
            -Idrivers/drv/$(panel_path)/transmitter/combophy \
            -Idrivers/drv/$(panel_path)/transmitter/mipi \
            -Idrivers/drv/$(panel_path)/transmitter/lvds \
            -Idrivers/drv/$(panel_path)/transmitter/p2p \
            -Idrivers/drv/$(panel_path)/tcon_alg \
            -Idrivers/drv/$(panel_path)/tcon_alg/od \
            -Idrivers/drv/$(panel_path)/tcon_alg/vac \
            -Idrivers/drv/$(panel_path)/tcon_alg/demura \
            -Idrivers/drv/$(panel_path)/tcon_alg/lineod \
            -Idrivers/drv/$(panel_path)/tcon_alg/dither \
            -Idrivers/drv/$(panel_path)/tcon_alg/ctc \
            -Idrivers/drv/$(panel_path)/tcon_alg/pdf \
            -Idrivers/drv/$(panel_path)/tcon_alg/gainoffset \
            -Idrivers/drv/$(panel_path)/tcon_alg/gamma

ccflags-y += -Idrivers/drv/dmcu \
            -Idrivers/drv/dmcu/ipcm \
            -Idrivers/drv/$(panel_path)/adapt \
            -Idrivers/drv/$(panel_path)/adapt/local \
            -Idrivers/drv/$(panel_path)/adapt/dmcu

ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "shaolinspear"),)
ccflags-y += -Idrivers/drv/dmcu/include/shaolinspear
else ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "hi3751v811"),)
ccflags-y += -Idrivers/drv/dmcu/include/hi3751v811
else
ccflags-y += -Idrivers/drv/dmcu/include/shaolinsword
endif

ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "wudangstick" "shaolingun" "kongtongv100" "hengshanv200"),)
ccflags-y += -Idrivers/drv/common/include/wudangstick \
            -Idrivers/drv/$(panel_path)/hal/common \
            -Idrivers/drv/$(panel_path)/hal/common/$(BOARD_VERSION) \
            -Idrivers/drv/$(panel_path)/hal/common/include \
            -Idrivers/drv/$(panel_path)/hal/common/include/$(BOARD_VERSION)
endif

ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "shaolinaxe"),)
ccflags-y += -Idrivers/drv/common/include/shaolinaxe \
             -Idrivers/drv/$(panel_path)/hal/shaolinaxe \
             -Idrivers/drv/$(panel_path)/hal/shaolinaxe/include
endif

ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "shaolinsword" "shaolinknive"),)
#CONFIG_SOCT_CHIP_REVERSION := shaolinsword_c
$(warning "PANEL_DEBUG We will build $(CONFIG_SOCT_CHIP_REVERSION) header")
ifneq ($(findstring $(CONFIG_SOCT_CHIP_REVERSION), "shaolinsword_c"),)
ccflags-y += -Idrivers/drv/common/include/v0 \
             -Idrivers/drv/$(panel_path)/hal/v0 \
             -Idrivers/drv/$(panel_path)/hal/v0/include \
             -DCONFIG_SOCT_VO_SHAOLINKNIVE_SUPPORT \
             -DCONFIG_SOCT_VO_SHAOLINKNIVE_C_SUPPORT
else
ccflags-y += -Idrivers/drv/common/include/shaolinknive \
             -Idrivers/drv/$(panel_path)/hal/shaolinknive \
             -Idrivers/drv/$(panel_path)/hal/shaolinknive/include \
	     -DCONFIG_SOCT_VO_SHAOLINKNIVE_SUPPORT
endif
endif

ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "hi3751v811"),)
#CONFIG_SOCT_CHIP_REVERSION := hi3751v811_c
$(warning "PANEL_DEBUG We will build $(CONFIG_SOCT_CHIP_REVERSION) header")
ifneq ($(findstring $(CONFIG_SOCT_CHIP_REVERSION), "hi3751v811_c"),)
ccflags-y += -Idrivers/drv/common/include/v0 \
             -Idrivers/drv/$(panel_path)/hal/v0 \
             -Idrivers/drv/$(panel_path)/hal/v0/include \
             -DCONFIG_SOCT_VO_HI3751V811_SUPPORT \
             -DCONFIG_SOCT_VO_HI3751V811_C_SUPPORT
endif
endif

ifeq ($(CONFIG_SOCT_COMMON_KERNEL),y) 
ccflags-y += -DPANEL_USE_FILE
else
ifeq ($(CONFIG_SOCT_OH_KERNEL),y)
ccflags-y += -DPANEL_USE_FILE
else
ccflags-y += -DPANEL_EMEI
endif
endif
ccflags-y += $(CONFIG_SOCT_KMOD_CFLAGS)

#Add compile options for binscope
ccflags-y += -D_FORTIFY_SOURCE=2 -O2 -fstack-protector-all -fstack-protector-strong -s

MODNAME := soc_panel

ifeq ($(CONFIG_SOCT_DRV_BUILDIN),y)
obj-$(CONFIG_SOCT_PANEL_SUPPORT) += $(MODNAME).o
else
obj-m += $(MODNAME).o
endif

$(MODNAME)-objs-y += drv_panel.o \
                    drv_panel_intf.o \
                    drv_panel_proc.o \
                    drv_panel_ctrl.o \
                    drv_panel_power.o \
                    drv_panel_timing.o \
                    adapt/drv_panel_adapt.o \
                    common/drv_panel_check.o \
                    custom/drv_panel_custom.o \
                    osal/drv_panel_adapter.o \
                    osal/drv_panel_driver.o \
                    backlight/drv_panel_backlight.o \
                    backlight/0d/drv_panel_pwm.o \
                    backlight/0d/drv_panel_0ddim.o \
                    backlight/native/drv_panel_native_pwm.o \
                    transmitter/drv_panel_interface.o \
                    transmitter/vbo/drv_panel_vbo.o \
                    transmitter/lvds/drv_panel_lvds.o \
                    transmitter/p2p/drv_panel_p2p.o \
                    transmitter/combophy/drv_panel_combophy.o \
                    transmitter/mipi/drv_panel_mipi.o \
                    param/drv_panel_data.o \
                    param/drv_panel_param.o \
                    param/drv_panel_dts_param.o\
                    backlight/0d/drv_panel_0ddim_proc.o \
                    backlight/0d/drv_panel_pwm_proc.o \
                    backlight/local/drv_panel_bldriver.o \
                    backlight/local/drv_panel_ldm.o \
                    backlight/local/drv_panel_spi.o \
                    backlight/local/drv_panel_ldm_driver.o \
                    backlight/local/drv_panel_bldriver_proc.o \
                    backlight/local/drv_panel_spi_proc.o \
                    backlight/local/drv_panel_ldm_proc.o \
                    tcon_alg/drv_panel_tcon_alg.o   \
                    tcon_alg/od/drv_panel_od.o  \
                    tcon_alg/vac/drv_panel_vac.o \
                    tcon_alg/demura/drv_panel_demura.o \
                    tcon_alg/lineod/drv_panel_lineod.o \
                    tcon_alg/dither/drv_panel_dither.o \
                    tcon_alg/ctc/drv_panel_ctc.o \
                    tcon_alg/pdf/drv_panel_pdf.o \
                    tcon_alg/gainoffset/drv_panel_gainoffset.o \
                    tcon_alg/gamma/drv_panel_gamma.o

ifeq ($(PANL_DMCU_SUPPORT_TIME),y)
ccflags-y += -DPANEL_DMCU_SUPPORT_TIME
$(MODNAME)-objs-y +=  adapt/dmcu/drv_panel_client.o
endif

#LDM == N || TIME == n compile local
ifneq ($(PANL_DMCU_SUPPORT_TIME),y)
ccflags-y += -DPANEL_LOCAL_SUPPORT
$(MODNAME)-objs-y +=  adapt/local/drv_panel_local.o
endif

ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "wudangstick" "shaolingun" "kongtongv100" "hengshanv200"),)
$(MODNAME)-objs-y +=  hal/common/hal_panel_dim.o \
                    hal/common/$(BOARD_VERSION)/hal_panel_spi.o \
                    hal/common/hal_panel_comm.o \
                    hal/common/hal_panel_vbo.o \
                    hal/common/$(BOARD_VERSION)/hal_panel_combophy.o \
                    hal/common/hal_panel_pwm.o \
                    hal/common/hal_panel_mipi.o
endif

ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "shaolinaxe"),)
$(MODNAME)-objs-y += hal/shaolinaxe/hal_panel_comm.o \
                    hal/shaolinaxe/hal_panel_vbo.o \
                    hal/shaolinaxe/hal_panel_lvds.o \
                    hal/shaolinaxe/hal_panel_tcon.o \
                    hal/shaolinaxe/hal_panel_combophy.o \
                    hal/shaolinaxe/hal_panel_pwm.o \
                    hal/shaolinaxe/hal_panel_od.o  \
                    hal/shaolinaxe/hal_panel_vac.o  \
                    hal/shaolinaxe/hal_panel_demura.o  \
                    hal/shaolinaxe/hal_panel_lineod.o
endif

ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "shaolinsword" "shaolinknive"),)
#CONFIG_SOCT_CHIP_REVERSION := shaolinsword_c
$(warning "PANEL_DEBUG We will build $(CONFIG_SOCT_CHIP_REVERSION)")
ifneq ($(findstring $(CONFIG_SOCT_CHIP_REVERSION), "shaolinsword_c"),)
$(MODNAME)-objs-y += hal/v0/hal_panel_comm.o \
                    hal/v0/hal_panel_vbo.o \
                    hal/v0/hal_panel_lvds.o \
                    hal/v0/hal_panel_tcon.o \
                    hal/v0/hal_panel_combophy.o \
                    hal/v0/hal_panel_od.o  \
                    hal/v0/hal_panel_vac.o  \
                    hal/v0/hal_panel_demura.o  \
                    hal/v0/hal_panel_lineod.o \
                    hal/v0/hal_panel_dither.o \
                    hal/v0/hal_panel_ctc.o \
                    hal/v0/hal_panel_pdf.o \
                    hal/v0/hal_panel_gamma.o \
                    hal/v0/hal_panel_gainoffset.o \
                    hal/v0/hal_panel_pwm.o  \
					hal/v0/hal_panel_spi.o \
                    hal/v0/hal_panel_dim.o
else
$(MODNAME)-objs-y += hal/shaolinknive/hal_panel_comm.o \
                    hal/shaolinknive/hal_panel_vbo.o \
                    hal/shaolinknive/hal_panel_lvds.o \
                    hal/shaolinknive/hal_panel_tcon.o \
                    hal/shaolinknive/hal_panel_combophy.o \
                    hal/shaolinknive/hal_panel_pwm.o  \
                    hal/shaolinknive/hal_panel_od.o  \
                    hal/shaolinknive/hal_panel_vac.o  \
                    hal/shaolinknive/hal_panel_demura.o  \
                    hal/shaolinknive/hal_panel_lineod.o  \
                    hal/shaolinknive/hal_panel_gamma.o \
                    hal/shaolinknive/hal_panel_dither.o \
                    hal/shaolinknive/hal_panel_spi.o \
                    hal/shaolinknive/hal_panel_dim.o
endif
endif

ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "hi3751v811"),)
#CONFIG_SOCT_CHIP_REVERSION := hi3751v811_c
$(warning "PANEL_DEBUG We will build $(CONFIG_SOCT_CHIP_REVERSION)")
ifneq ($(findstring $(CONFIG_SOCT_CHIP_REVERSION), "hi3751v811_c"),)
$(MODNAME)-objs-y += hal/v0/hal_panel_comm.o \
                    hal/v0/hal_panel_vbo.o \
                    hal/v0/hal_panel_lvds.o \
                    hal/v0/hal_panel_tcon.o \
                    hal/v0/hal_panel_combophy.o \
                    hal/v0/hal_panel_od.o  \
                    hal/v0/hal_panel_vac.o  \
                    hal/v0/hal_panel_demura.o  \
                    hal/v0/hal_panel_lineod.o \
                    hal/v0/hal_panel_dither.o \
                    hal/v0/hal_panel_ctc.o \
                    hal/v0/hal_panel_pdf.o \
                    hal/v0/hal_panel_gamma.o \
                    hal/v0/hal_panel_gainoffset.o \
                    hal/v0/hal_panel_pwm.o  \
                    hal/v0/hal_panel_spi.o \
                    hal/v0/hal_panel_dim.o
endif
endif
###############################################################################
$(MODNAME)-objs := $($(MODNAME)-objs-y)

endif
