# SPDX-License-Identifier: GPL-2.0-only
#
# Makefile for the BCM47XX specific kernel interface routines
# under Linux.
#

obj-y				+= irq.o prom.o serial.o setup.o time.o
obj-y				+= board.o buttons.o leds.o workarounds.o
