# SPDX-License-Identifier: GPL-2.0
CFLAGS_trace.o				:= -I$(src)

obj-$(CONFIG_TYPEC_UCSI)		+= typec_ucsi.o

typec_ucsi-y				:= ucsi.o

typec_ucsi-$(CONFIG_DEBUG_FS)		+= debugfs.o

typec_ucsi-$(CONFIG_TRACING)		+= trace.o

ifneq ($(CONFIG_POWER_SUPPLY),)
	typec_ucsi-y			+= psy.o
endif

ifneq ($(CONFIG_TYPEC_DP_ALTMODE),)
	typec_ucsi-y			+= displayport.o
endif

obj-$(CONFIG_UCSI_ACPI)			+= ucsi_acpi.o
obj-$(CONFIG_UCSI_CCG)			+= ucsi_ccg.o
obj-$(CONFIG_UCSI_STM32G0)		+= ucsi_stm32g0-drv.o
ucsi_stm32g0-drv-y			:= ucsi_stm32g0.o
obj-$(CONFIG_UCSI_PMIC_GLINK)		+= ucsi_glink.o

# Per-driver Rust .o to avoid circular dependency (tcpci_rt1711h <-> ucsi_stm32g0 <-> nb7vpq904m)
ifdef CONFIG_RUST_DRIVERS
RUST_DRV := usb/typec
include $(srctree)/drivers/rust/templates/kbuild-rust-driver.mk

ifneq ($(CONFIG_UCSI_STM32G0),)
$(obj)/rust/typec_ucsi_stm32g0_rust.o: FORCE
	$(Q)mkdir -p $(dir $@)
	$(Q)OBJTREE=$(abspath $(objtree)) OBJ=$(abspath $(obj)) OUTPUT_FILE=$(abspath $@).__rust_tmp CARGO_FEATURES=ucsi_stm32g0 CROSS_COMPILE="$(CROSS_COMPILE)" $(RUST_BUILD_SH)
	$(Q)if [ ! -f $@ ] || ! cmp -s $@.__rust_tmp $@; then mv $@.__rust_tmp $@; else rm -f $@.__rust_tmp; fi
	$(Q)echo 'savedcmd_$@ := rust-build $(RUST_BUILD_SH)' > $(dir $@).$(notdir $@).cmd
OBJECT_FILES_NON_STANDARD_typec_ucsi_stm32g0_rust.o := y
ucsi_stm32g0-drv-y += rust/typec_ucsi_stm32g0_rust.o
endif

endif
