# SPDX-License-Identifier: GPL-2.0

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

config PHYTIUM_REGMAP
	bool "Use the REGMAP in Verisilicon DRM driver"
	depends on REGMAP
	default y
	help
	  Choose this option to enable the use of the REGMAP functionality
	  within the Verisilicon DRM driver. REGMAP provides a
	  convenient interface for managing register maps,
	  allowing for more efficient and organized handling of hardware registers

config PHYTIUM_CHIP_FTD330
	bool "Phytium display controller of FTD330"
	depends on DRM_PHYTIUM_D3000M
	default y
	help
	  Choose this option if you have a Phytium display controller of
	  FTD330 series, This option enables support for the specific hardware features
	  and optimizations available in the FTD330 series display controllers.
	  If you are unsure, or if your system does not include a
	  Phytium FTD330 series controller, it is safe to leave this option disabled.

config PHYTIUM_NCC
        bool "NCC support FOR Phytium display controller"
        depends on DRM_PHYTIUM_D3000M
        default n
        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_D3000M
	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. By default,
	  this feature is disabled to avoid unnecessary overhead.

config PHYTIUM_MMU
	bool "MMU support for Phytium display controller"
	depends on DRM_PHYTIUM_D3000M
	default n
	help
	  This is a memory management function which translate virtual address
	  to physical address. DPU MMU only do address translate, doesn't
	  support shareable.

config PHYTIUM_DEC
	bool "DEC support for Phytium display controller"
	depends on DRM_PHYTIUM_D3000M
	default n
	help
	  This is a decompression function which reads compressed pixels from
	  external memory (DDR or SRAM) under DPU's control, then it decompress
	  comprssed pixels before returing these pixels to DPU.

config PHYTIUM_POWER_OPERATION
        bool "enable power operation or not"
        depends on DRM_PHYTIUM_D3000M
        default n
        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.
		  If power management is a concern for your application,
		  consider enabling this option.


config PHYTIUM_VIRTUAL_DISPLAY
        bool "display content output to debugfs file"
        depends on DRM_PHYTIUM_D3000M
        select DEBUG_FS
	default n
        help
          This is a debug feature which capture video content output
          from display controller. Output path is debugfs/dri/connector/.
          The content format is ARGB which Alpha is 0 for 8bits.
          Disabled in default.

config PHYTIUM_PVRIC
	bool "PVRIC support for Phytium display controller"
	depends on DRM_PHYTIUM_D3000M
	default n
	help
	  This option enables PVRIC (PowerVR Image Compression) support
	  for the Phytium display controller.
	  PVRIC is a decompression function integrated into the controller,
	  which can improve performance and reduce memory bandwidth usage by
	  handling compressed images. Enable this option if your application
	  benefits from image compression.

config PHYTIUM_VIRTUAL_DISPLAY
	bool "VIRTUAL DISPLAY support for Phytium display controller"
	depends on DRM_PHYTIUM_D3000M
	default n
	help
	  This option enables virtual display support for the Phytium display controller.
	  It is a debug feature that outputs a virtual display to the screen,
	  primarily used for internal debugging purposes within Phytium.
	  This feature is typically not needed for standard operation and is disabled by default.

config PHYTIUM_FBDEV_ON
        bool "enable fbdev for Phytium display controller"
        depends on DRM_PHYTIUM_D3000M
        default n
        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_D3000M
        default n
        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. This can help optimize display
		  performance and compatibility with various display modes.

config PHYTIUM_LANE_TRAIN
        bool "enable lane train for Phytium display controller"
        depends on DRM_PHYTIUM_D3000M
        default n
        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_D3000M && 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_D3000M
	default n
	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_D3000M
		default n
		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. Enable this feature
		if you want to take advantage of power savings.

config PHYTIUM_PSR_SF_UPDATE
		bool "enable Panel Self Refresh Single-frame Update for Phytium Embedded DisplayPort"
		depends on PHYTIUM_PSR
		default n
		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. Enable this feature if you require single-frame updates.

config PHYTIUM_LOW_FPS
		bool "enable Lower Refresh Rate for Phytium Embedded DisplayPort"
		depends on DRM_PHYTIUM_D3000M
		default n
		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. Enable this feature if you
		want to optimize for power efficiency over performance.
