# SPDX-License-Identifier: GPL-2.0

config DRM_PHYTIUM_FTD330
	tristate "DRM Support for Phytium FTD330 display controller"
	depends on DRM
	select DRM_KMS_HELPER
	select DRM_DISPLAY_HELPER
	help
	  Choose this option if you have a Phytium FTD330 display controller.
	  This driver provides Phytium kernel mode setting and buffer
	  management. It does not provide 2D or 3D acceleration.

config PHYTIUM_CHIP_FTD330
	bool "Phytium display controller of FTD330"
	depends on DRM_PHYTIUM_FTD330
	default y
	help
	  Choose this option if you have a Phytium display controller of the
	  FTD330 series. This option enables support for the specific hardware
	  features and optimizations available in the FTD330 series display
	  controllers.

config PHYTIUM_NCC
	bool "NCC support for Phytium display controller"
	depends on DRM_PHYTIUM_FTD330
	default y
	help
	  This is the ncc support option. It allows you to set the start
	  address of video memory, which can be useful for specific memory
	  management and optimization scenarios. Enable this option if your
	  application requires direct control over video memory addressing.

config PHYTIUM_WRITEBACK
	bool "Writeback connector support for Phytium display controller"
	depends on DRM_PHYTIUM_FTD330
	help
	  This option enables the writeback connector feature for the
	  Phytium display controller. It is primarily a debug feature that
	  captures the content output from the display controller and writes
	  it back to a framebuffer. This can be useful for debugging and
	  testing purposes.

config PHYTIUM_MMU
	bool "MMU support for Phytium display controller"
	depends on DRM_PHYTIUM_FTD330
	default y
	help
	  This is a memory management function which translates virtual
	  addresses to physical addresses. The DPU MMU only performs address
	  translation, it does not support shareable memory.

config PHYTIUM_DEC
	bool "DEC support for Phytium display controller"
	depends on DRM_PHYTIUM_FTD330
	default y
	help
	  This is a decompression function which reads compressed pixels from
	  external memory (DDR or SRAM) under DPU's control, then decompresses
	  the compressed pixels before returning them to the DPU.

config PHYTIUM_POWER_OPERATION
	bool "enable power operation or not"
	depends on DRM_PHYTIUM_FTD330
	default y
	help
	  This option allows you to enable or disable power operations and
	  hotplug support for the Phytium display controller. Enabling this
	  option can help manage power consumption and support dynamic
	  connection changes, such as plugging and unplugging displays.

config PHYTIUM_VIRTUAL_DISPLAY
	bool "Virtual display support for Phytium display controller"
	depends on DRM_PHYTIUM_FTD330
	select DEBUG_FS
	help
	  This is a debug feature which captures video content output from the
	  display controller and exposes it as a virtual display connector.
	  The captured content can be read from
	  debugfs/dri/<minor>/<connector>/output_format. The content format is
	  ARGB, with alpha set to 0 for 8 bits per component.

config PHYTIUM_FBDEV_ON
	bool "enable fbdev for Phytium display controller"
	depends on DRM_PHYTIUM_FTD330
	default y
	help
	  This option enables the framebuffer device (fbdev) interface for the
	  Phytium display controller. When enabled, it creates a device node
	  at /dev/fb0, allowing applications to interact with the framebuffer
	  directly. This can be useful for legacy applications that rely on
	  the fbdev interface.

config PHYTIUM_CHANGE_PIXCLK
	bool "enable change pixel clock for Phytium display controller"
	depends on DRM_PHYTIUM_FTD330
	default y
	help
	  This option allows you to enable dynamic pixel clock changes for the
	  Phytium display controller. If your application requires adjusting
	  the pixel clock based on the display mode, enable this option to
	  allow for flexible clock management.

config PHYTIUM_LANE_TRAIN
	bool "enable lane train for Phytium display controller"
	depends on DRM_PHYTIUM_FTD330
	default y
	help
	  If using a real monitor, choose Y. This option enables lane training
	  for the Phytium display controller, which is necessary for proper
	  signal integrity and communication with the display. If you are
	  using a virtual display or do not require lane training, choose N.

config PHYTIUM_PCIE
	bool "PCIE driver support for Phytium display controller"
	depends on DRM_PHYTIUM_FTD330 && PCI
	help
	  Choose this option if you want to register a PCIe driver for the
	  Phytium display controller. This allows the display controller to
	  interface with the system via PCIe. By default a platform driver is
	  used, but selecting this option enables PCIe support.

config PHYTIUM_EDP_BL
	bool "eDP backlight control support for Phytium display controller"
	depends on DRM_PHYTIUM_FTD330
	default y
	help
	  Choose this option if you want to use PWM (Pulse Width Modulation)
	  to control the eDP (Embedded DisplayPort) backlight brightness level.
	  This feature allows for finer control over the display's backlight,
	  improving power efficiency and user experience.

config PHYTIUM_PSR
	bool "enable Panel Self Refresh for Phytium Embedded DisplayPort"
	depends on DRM_PHYTIUM_FTD330
	default y
	help
	  This option enables Panel Self Refresh (PSR) for the Phytium
	  Embedded DisplayPort. PSR allows the display to refresh itself
	  without constant input from the GPU, reducing power consumption.

config PHYTIUM_PSR_SF_UPDATE
	bool "enable PSR single-frame update for Phytium eDP"
	depends on PHYTIUM_PSR
	help
	  This option enables Single-frame Update for Panel Self Refresh (PSR)
	  on the Phytium Embedded DisplayPort. It allows for updates to be
	  made to a single frame without refreshing the entire display,
	  further enhancing power efficiency.

config PHYTIUM_LOW_FPS
	bool "enable Lower Refresh Rate for Phytium Embedded DisplayPort"
	depends on DRM_PHYTIUM_FTD330
	default y
	help
	  This option enables a lower refresh rate for the Phytium Embedded
	  DisplayPort. Lowering the refresh rate can reduce power consumption
	  and is useful in scenarios where high refresh rates are not
	  necessary.

config PHYTIUM_DCDP_EMULATOR
	bool "use this driver on emulator or not"
	depends on DRM_PHYTIUM_FTD330
	help
	  This option enables the driver to run on an emulator.
