# SPDX-License-Identifier: GPL-2.0
#
# Copyright (c) 2012 Samsung Electronics Co., Ltd.
#		http://www.samsung.com/
#
# Copyright 2007 Simtec Electronics

# core

obj-y				+= common.o
obj-y				+= irq-s3c24xx.o
obj-$(CONFIG_SPI_S3C24XX_FIQ)	+= irq-s3c24xx-fiq.o
obj-$(CONFIG_SPI_S3C24XX_FIQ)	+= irq-s3c24xx-fiq-exports.o

obj-$(CONFIG_CPU_S3C2410)	+= s3c2410.o
obj-$(CONFIG_S3C2410_PLL)	+= pll-s3c2410.o
obj-$(CONFIG_S3C2410_PM)	+= pm-s3c2410.o sleep-s3c2410.o

obj-$(CONFIG_CPU_S3C2412)	+= s3c2412.o
obj-$(CONFIG_S3C2412_PM)	+= pm-s3c2412.o
obj-$(CONFIG_S3C2412_PM_SLEEP)	+= sleep-s3c2412.o

obj-$(CONFIG_CPU_S3C2416)	+= s3c2416.o
obj-$(CONFIG_S3C2416_PM)	+= pm-s3c2416.o

obj-$(CONFIG_CPU_S3C2440)	+= s3c2440.o
obj-$(CONFIG_CPU_S3C2442)	+= s3c2442.o
obj-$(CONFIG_CPU_S3C244X)	+= s3c244x.o
obj-$(CONFIG_S3C2440_PLL_12000000) += pll-s3c2440-12000000.o
obj-$(CONFIG_S3C2440_PLL_16934400) += pll-s3c2440-16934400.o

obj-$(CONFIG_CPU_S3C2443)	+= s3c2443.o

# PM

obj-$(CONFIG_PM)		+= pm.o
obj-$(CONFIG_PM_SLEEP)		+= irq-pm.o sleep.o

# common code

obj-$(CONFIG_S3C2410_CPUFREQ_UTILS) += cpufreq-utils.o

obj-$(CONFIG_S3C2410_IOTIMING)	+= iotiming-s3c2410.o
obj-$(CONFIG_S3C2412_IOTIMING)	+= iotiming-s3c2412.o

#
# machine support
# following is ordered alphabetically by option text.
#

obj-$(CONFIG_MACH_AML_M5900)		+= mach-amlm5900.o
obj-$(CONFIG_ARCH_BAST)			+= mach-bast.o
obj-$(CONFIG_BAST_PC104_IRQ)		+= bast-irq.o
obj-$(CONFIG_ARCH_H1940)		+= mach-h1940.o
obj-$(CONFIG_H1940BT)			+= h1940-bluetooth.o
obj-$(CONFIG_PM_H1940)			+= pm-h1940.o
obj-$(CONFIG_MACH_N30)			+= mach-n30.o
obj-$(CONFIG_MACH_OTOM)			+= mach-otom.o
obj-$(CONFIG_MACH_QT2410)		+= mach-qt2410.o
obj-$(CONFIG_ARCH_SMDK2410)		+= mach-smdk2410.o
obj-$(CONFIG_MACH_TCT_HAMMER)		+= mach-tct_hammer.o
obj-$(CONFIG_MACH_VR1000)		+= mach-vr1000.o

obj-$(CONFIG_MACH_JIVE)			+= mach-jive.o
obj-$(CONFIG_MACH_SMDK2413)		+= mach-smdk2413.o
obj-$(CONFIG_MACH_VSTMS)		+= mach-vstms.o

obj-$(CONFIG_MACH_SMDK2416)		+= mach-smdk2416.o
obj-$(CONFIG_MACH_S3C2416_DT)		+= mach-s3c2416-dt.o

obj-$(CONFIG_MACH_ANUBIS)		+= mach-anubis.o
obj-$(CONFIG_MACH_AT2440EVB)		+= mach-at2440evb.o
obj-$(CONFIG_MACH_MINI2440)		+= mach-mini2440.o
obj-$(CONFIG_MACH_NEXCODER_2440)	+= mach-nexcoder.o
obj-$(CONFIG_MACH_OSIRIS)		+= mach-osiris.o
obj-$(CONFIG_MACH_RX3715)		+= mach-rx3715.o
obj-$(CONFIG_ARCH_S3C2440)		+= mach-smdk2440.o

obj-$(CONFIG_MACH_NEO1973_GTA02)	+= mach-gta02.o
obj-$(CONFIG_MACH_RX1950)		+= mach-rx1950.o

obj-$(CONFIG_MACH_SMDK2443)		+= mach-smdk2443.o

# common bits of machine support

obj-$(CONFIG_S3C24XX_SMDK)		+= common-smdk.o
obj-$(CONFIG_S3C24XX_SIMTEC_AUDIO)	+= simtec-audio.o
obj-$(CONFIG_S3C24XX_SIMTEC_NOR)	+= simtec-nor.o
obj-$(CONFIG_S3C24XX_SIMTEC_PM)		+= simtec-pm.o
obj-$(CONFIG_S3C24XX_SIMTEC_USB)	+= simtec-usb.o

# machine additions

obj-$(CONFIG_MACH_BAST_IDE)		+= bast-ide.o
obj-$(CONFIG_MACH_OSIRIS_DVS)		+= mach-osiris-dvs.o

# device setup

obj-$(CONFIG_S3C2416_SETUP_SDHCI_GPIO)	+= setup-sdhci-gpio.o
obj-$(CONFIG_S3C2443_SETUP_SPI)		+= setup-spi.o
obj-$(CONFIG_ARCH_S3C24XX)		+= setup-i2c.o
obj-$(CONFIG_S3C24XX_SETUP_TS)		+= setup-ts.o
