# SPDX-License-Identifier: GPL-2.0-only

menuconfig MACINTOSH_DRIVERS
	bool "Macintosh device drivers"
	depends on PPC || MAC || X86
	default y if (PPC_PMAC || MAC)
	---help---
	  Say Y here to get to see options for devices used with Macintosh
	  computers. This option alone does not add any kernel code.

	  If you say N, all options in this submenu will be skipped and disabled.

if MACINTOSH_DRIVERS

config ADB
	bool "Apple Desktop Bus (ADB) support"
	depends on MAC || (PPC_PMAC && PPC32)
	help
	  Apple Desktop Bus (ADB) support is for support of devices which
	  are connected to an ADB port.  ADB devices tend to have 4 pins.
	  If you have an Apple Macintosh prior to the iMac, an iBook or
	  PowerBook, or a "Blue and White G3", you probably want to say Y
	  here.  Otherwise say N.

config ADB_MACII
	bool "Include Mac II ADB driver"
	depends on ADB && MAC
	help
	  Say Y here if want your kernel to support Macintosh systems that use
	  the Mac II style ADB.  This includes the II, IIx, IIcx, SE/30, IIci,
	  Quadra 610, Quadra 650, Quadra 700, Quadra 800, Centris 610 and
	  Centris 650.

config ADB_IOP
	bool "Include IOP (IIfx/Quadra 9x0) ADB driver"
	depends on ADB && MAC
	help
	  The I/O Processor (IOP) is an Apple custom IC designed to provide
	  intelligent support for I/O controllers.  It is described at
	  <http://www.angelfire.com/ca2/dev68k/iopdesc.html> to enable direct
	  support for it, say 'Y' here.

# we want to change this to something like CONFIG_SYSCTRL_CUDA/PMU
config ADB_CUDA
	bool "Support for Cuda/Egret based Macs and PowerMacs"
	depends on (ADB || PPC_PMAC) && !PPC_PMAC64
	select RTC_LIB
	help
	  This provides support for Cuda/Egret based Macintosh and
	  Power Macintosh systems. This includes most m68k based Macs,
	  most Old World PowerMacs, the first generation iMacs, the
	  Blue & White G3 and the "Yikes" G4 (PCI Graphics). All later
	  models should use CONFIG_ADB_PMU instead. It is safe to say Y
	  here even if your machine doesn't have a Cuda or Egret device.

	  If unsure say Y.

config ADB_PMU
	bool "Support for PMU based PowerMacs and PowerBooks"
	depends on PPC_PMAC || MAC
	select RTC_LIB
	help
	  On PowerBooks, iBooks, and recent iMacs and Power Macintoshes, the
	  PMU is an embedded microprocessor whose primary function is to
	  control system power, and battery charging on the portable models.
	  The PMU also controls the ADB (Apple Desktop Bus) which connects to
	  the keyboard and mouse on some machines, as well as the non-volatile
	  RAM and the RTC (real time clock) chip.  Say Y to enable support for
	  this device; you should do so if your machine is one of those
	  mentioned above.

config ADB_PMU_EVENT
	def_bool y
	depends on ADB_PMU && INPUT=y

config ADB_PMU_LED
	bool "Support for the Power/iBook front LED"
	depends on PPC_PMAC && ADB_PMU
	select NEW_LEDS
	select LEDS_CLASS
	help
	  Support the front LED on Power/iBooks as a generic LED that can
	  be triggered by any of the supported triggers. To get the
	  behaviour of the old CONFIG_BLK_DEV_IDE_PMAC_BLINK, select this
	  and the disk LED trigger and configure appropriately through sysfs.

config ADB_PMU_LED_DISK
	bool "Use front LED as DISK LED by default"
	depends on ATA
	depends on ADB_PMU_LED
	depends on LEDS_CLASS
	select LEDS_TRIGGERS
	select LEDS_TRIGGER_DISK
	help
	  This option makes the front LED default to the disk trigger
	  so that it blinks on disk activity.

config PMAC_SMU
	bool "Support for SMU  based PowerMacs"
	depends on PPC_PMAC64
	help
	  This option adds support for the newer G5 iMacs and PowerMacs based
	  on the "SMU" system control chip which replaces the old PMU.
	  If you don't know, say Y.

config PMAC_APM_EMU
	tristate "APM emulation"
	select APM_EMULATION
	depends on ADB_PMU && PM && PPC32

config PMAC_MEDIABAY
	bool "Support PowerBook hotswap media bay"
	depends on PPC_PMAC && PPC32 && BLOCK
	help
	  This option adds support for older PowerBook's hotswap media bay
	  that can contains batteries, floppy drives, or IDE devices. PCI
	  devices are not fully supported in the bay as I never had one to
	  try with

config PMAC_BACKLIGHT
	bool "Backlight control for LCD screens"
	depends on PPC_PMAC && ADB_PMU && FB = y && (BROKEN || !PPC64)
	select FB_BACKLIGHT
	help
	  Say Y here to enable Macintosh specific extensions of the generic
	  backlight code. With this enabled, the brightness keys on older
	  PowerBooks will be enabled so you can change the screen brightness.
	  Newer models should use a userspace daemon like pbbuttonsd.

config PMAC_BACKLIGHT_LEGACY
	bool "Provide legacy ioctl's on /dev/pmu for the backlight"
	depends on PMAC_BACKLIGHT && (BROKEN || !PPC64)
	help
	  Say Y if you want to enable legacy ioctl's on /dev/pmu. This is for
	  programs which use this old interface. New and updated programs
	  should use the backlight classes in sysfs.

config ADB_MACIO
	bool "Include MacIO (CHRP) ADB driver"
	depends on ADB && PPC_CHRP && !PPC_PMAC64
	help
	  Say Y here to include direct support for the ADB controller in the
	  Hydra chip used on PowerPC Macintoshes of the CHRP type.  (The Hydra
	  also includes a MESH II SCSI controller, DBDMA controller, VIA chip,
	  OpenPIC controller and two RS422/Geoports.)

config INPUT_ADBHID
	bool "Support for ADB input devices (keyboard, mice, ...)"
	depends on ADB && INPUT=y
	help
	  Say Y here if you want to have ADB (Apple Desktop Bus) HID devices
	  such as keyboards, mice, joysticks, trackpads  or graphic tablets
	  handled by the input layer.  If you say Y here, make sure to say Y to
	  the corresponding drivers "Mouse Support" (CONFIG_INPUT_MOUSEDEV) and
	  "Event interface support" (CONFIG_INPUT_EVDEV) as well.

	  If unsure, say Y.

config MAC_EMUMOUSEBTN
	tristate "Support for mouse button 2+3 emulation"
	depends on SYSCTL && INPUT
	help
	  This provides generic support for emulating the 2nd and 3rd mouse
	  button with keypresses.  If you say Y here, the emulation is still
	  disabled by default.  The emulation is controlled by these sysctl
	  entries:
	  /proc/sys/dev/mac_hid/mouse_button_emulation
	  /proc/sys/dev/mac_hid/mouse_button2_keycode
	  /proc/sys/dev/mac_hid/mouse_button3_keycode

	  If you have an Apple machine with a 1-button mouse, say Y here.

	  To compile this driver as a module, choose M here: the
	  module will be called mac_hid.

config THERM_WINDTUNNEL
	tristate "Support for thermal management on Windtunnel G4s"
	depends on I2C && I2C_POWERMAC && PPC_PMAC && !PPC_PMAC64
	help
	  This driver provides some thermostat and fan control for the desktop
	  G4 "Windtunnel"

config THERM_ADT746X
	tristate "Support for thermal mgmnt on laptops with ADT 746x chipset"
	depends on I2C && I2C_POWERMAC && PPC_PMAC && !PPC_PMAC64
	help
	  This driver provides some thermostat and fan control for the
          iBook G4, and the ATI based aluminium PowerBooks, allowing slightly
	  better fan behaviour by default, and some manual control.

config WINDFARM
	tristate "New PowerMac thermal control infrastructure"
	depends on PPC

config WINDFARM_PM81
	tristate "Support for thermal management on iMac G5"
	depends on WINDFARM && I2C && CPU_FREQ_PMAC64 && PMAC_SMU
	select I2C_POWERMAC
	help
	  This driver provides thermal control for the iMacG5

config WINDFARM_PM72
	tristate "Support for thermal management on PowerMac G5 (AGP)"
	depends on WINDFARM && I2C && CPU_FREQ_PMAC64 && ADB_PMU
	select I2C_POWERMAC
	help
	  This driver provides thermal control for the PowerMac G5
	  "AGP" variants (PowerMac 7,2 and 7,3)

config WINDFARM_RM31
	tristate "Support for thermal management on Xserve G5"
	depends on WINDFARM && I2C && CPU_FREQ_PMAC64 && ADB_PMU
	select I2C_POWERMAC
	help
	  This driver provides thermal control for the Xserve G5
	  (RackMac3,1)

config WINDFARM_PM91
	tristate "Support for thermal management on PowerMac9,1"
	depends on WINDFARM && I2C && CPU_FREQ_PMAC64 && PMAC_SMU
	select I2C_POWERMAC
	help
	  This driver provides thermal control for the PowerMac9,1
          which is the recent (SMU based) single CPU desktop G5

config WINDFARM_PM112
	tristate "Support for thermal management on PowerMac11,2"
	depends on WINDFARM && I2C && PMAC_SMU
	select I2C_POWERMAC
	help
	  This driver provides thermal control for the PowerMac11,2
	  which are the recent dual and quad G5 machines using the
	  970MP dual-core processor.

config WINDFARM_PM121
	tristate "Support for thermal management on PowerMac12,1"
	depends on WINDFARM && I2C && PMAC_SMU
	select I2C_POWERMAC
	help
	  This driver provides thermal control for the PowerMac12,1
	  which is the iMac G5 (iSight).

config ANSLCD
	tristate "Support for ANS LCD display"
	depends on ADB_CUDA && PPC_PMAC

config PMAC_RACKMETER
	tristate "Support for Apple XServe front panel LEDs"
	depends on PPC_PMAC
	help
	  This driver provides some support to control the front panel
          blue LEDs "vu-meter" of the XServer macs.

config SENSORS_AMS
	tristate "Apple Motion Sensor driver"
	depends on PPC_PMAC && !PPC64 && INPUT && ((ADB_PMU && I2C = y) || (ADB_PMU && !I2C) || I2C)
	select INPUT_POLLDEV
	help
	  Support for the motion sensor included in PowerBooks. Includes
	  implementations for PMU and I2C.

	  This driver can also be built as a module. If so, the module
	  will be called ams.

config SENSORS_AMS_PMU
	bool "PMU variant"
	depends on SENSORS_AMS && ADB_PMU
	default y
	help
	  PMU variant of motion sensor, found in late 2005 PowerBooks.

config SENSORS_AMS_I2C
	bool "I2C variant"
	depends on SENSORS_AMS && I2C
	default y
	help
	  I2C variant of motion sensor, found in early 2005 PowerBooks and
	  iBooks.

endif # MACINTOSH_DRIVERS
