diff options
author | Narendra Muppalla <NarendraM@codeaurora.org> | 2017-01-29 12:20:13 -0800 |
---|---|---|
committer | Narendra Muppalla <NarendraM@codeaurora.org> | 2017-01-30 11:53:27 -0800 |
commit | 3a7cd576f7c7b5e655a74c5528a08c789b7c14f6 (patch) | |
tree | d2d46cef6a7c25e601442b95c5f16b850e2bfe06 /Documentation/devicetree | |
parent | 958e36a73f7fe46ee28a749cd9b56ddf5dbf56cd (diff) | |
parent | 3ac6b6590ba8390a1b25f0f9cea8953220c6b6a3 (diff) |
Merge remote-tracking branch 'quic/dev/msm-4.4-drm_kms' into msm-4.4-01-29-tip
* quic/dev/msm-4.4-drm_kms:
drm/msm/sde: allow mmus to be optional during kms init
drm/msm/sde: check for null catalog in sde hw destroy
drm/msm: treat data bus dtsi property as optional
drm/msm/sde: add crtc clock & bandwidth capabilities
drm/msm/sde: parse csc type dtsi entry to select valid csc
drm/msm: fix copyright marking in "msm" drm driver
drm/msm: remove smmu coherent hardware table walk attrib
drm/msm/sde: add DMA2 and DMA3 pipe staging support
drm/msm/sde: add event for underruns
drm/msm/sde: fix check for frame event overflow
ARM: dts: msm: add ping pong split definitions for msm8996
ARM: dts: msm: add sde max bus bandwidth setting for msm8996
drm/msm/sde: add dynamic clock and bandwidth commit support
ARM: dts: msm: add sde bus scale settings for msm8996
drm/msm/sde: add bus bandwidth control for crtc
drm/msm/sde: add frame done callback event to crtc
drm/msm/sde: bypass crtc atomic begin/flush if disabled
drm/msm/sde: add debugfs entry for vbif
drm/msm/sde: add debugfs entry for danger and safe status
drm/msm/sde: enable ping pong split support
ARM: dts: msm: enable imgswap on sharp nt35597 dual panel
drm/msm/sde: remove catalog parsing limits
drm/msm/sde: update pixel extension uapi
drm/msm/sde: enable master physical encoder last
drm/msm/sde: reset ctl mixer config at end of use case
drm/msm: Support virtualization of color processing properties
drm/msm/sde: Move DSPP/SSPP color process hw programming to common location
drm/msm/sde: Add support for Memory Color in plane
drm/msm/sde: Add PA global adjustment properties to plane
drm/msm: implement smmu detach and guard freeing of client dev
drm/msm/sde: reset kickoff count atomically before irq enable
ARM: dts: msm: default sde clock rate to max for msm8996
drm/msm/sde: base scaler phase on decimated dimensions
drm/msm/sde: move sde hw init to hw_init callback
drm/msm/sde: check for missed irqs in command encoder
drm/msm: support probe deferral in msm_drv
drm/msm/sde: fix iounmap usage and init callflow
drm/msm/sde: fixup sde_kms shutdown sequence and naming
drm/msm/sde: fix cmd mode vblank irq control
drm/msm/sde: apply correct zpos range for sde clients
drm: Increase max number of DRM object properties
drm/msm/sde: add debug dump and panic facility
drm/msm/sde: match xlog features in evtlog
drm/msm/sde: add debugfs support for misr data
drm/msm/sde: Add device tree subnode parsing capability
drm/msm: create separate commit thread for each display
drm/msm/sde: Add backlight class support for sde drm driver
drm/msm/sde: add common sde debug folder
drm/msm/sde: route evtlog to sde trace log
drm/msm/sde: add systrace compatible trace macro
drm/msm/sde: separate plane/encoder/crtc functions into headers
drm/msm/sde: add default 10 bit csc matrix to source pipe
drm/msm/sde: add 10 bit csc for sde
drm/msm/sde: add qseedv3.x support for sde
drm/msm/sde: add 10-bit formats support
drm/msm/sde: print error only if catalog property is mandatory
drm/msm/sde: remove redundant vblank request in crtc
drm/msm/sde: add vblank reference counting to crtc
drm/msm/sde: handle pingpong blocks from virtual encoder
drm/msm/sde: add support for BGRX and XBGR formats in plane
drm/msm/sde: add multi-client and ref counting for core irq
drm/msm/sde: cache connector list in sde crtc
drm/msm/sde: remove display manager
drm/msm/sde: fix video encoder access in phy encoder
drm/msm/sde: add debugfs node for vsync and underrun status
drm/msm/sde: update vblank and underrun isr handling
drm/msm/sde: fix color component order
drm/msm/dsi-staging: fix issues related to deferral
drm/msm/sde: remove static allocation of mdp_top hw block
drm/msm: initialize local varibles in sde power module
drm/msm/sde: dual pipe use case support
drm/msm/sde: update crtc status debugfs node
ARM: dts: msm: add vbif OT and plane QoS/LUT for msm8996
drm/msm/sde: add clock control parsing to hardware catalog
drm/msm/sde: correct read out of bit offset array
drm/msm/sde: add plane QoS parsing to hardware catalog
drm/msm/sde: add vbif parsing to hardware catalog
drm/msm/sde: add writeback id parsing to hardware catalog
drm/msm/sde: update mixer op mode config bit fields correctly
drm/msm/sde: add sde error prefix for all errors
drm/msm: add capability property for crtc
drm/msm/sde: update ubwc and src split properties for sde
drm/msm/sde: correct to use sync vblank request for commit
drm/msm: execute pending vblank disable upon last close
drm/msm/sde: update crtc to use sde debug macros
drm/msm/sde: remove unused functions in sde crtc
drm/msm/sde: move sde_crtc declarations into sde_crtc header
drm/msm/sde: move sde_crtc away from legacy drm vblank apis
drm/msm: add error logging in msm_atomic
drm/msm/sde: move vbif functions to their own file
defconfig: enable backlight class driver for msm defconfig.
drm/msm/sde: additional event logging for fences
drm/msm/sde: assign relative mixer stages based on zpos
drm/msm/sde: remove redundant vblank request and notification
drm/msm/sde: fixup header markings
drm/msm: fix power handle APIs when clk are not present
drm/msm/sde: don't convert ktime to ns when waiting for fences
DOWNSTREAM: drm/msm/sde: enable sde client customizations
drm/msm: rename kernel module to msm_drm
drm/msm/sde: allow primary planes to be used with all crtcs
drm/msm/sde: limit primary plane count to number of crtcs
drm/msm: teardown all modes in lastclose handler
drm/msm/sde: update proper error message for rm failure
drm/sde: move hardware catalog to dtsi parser
drm/msm/sde: enable proper support for split flush
drm/msm/sde: add mode config mutex lock for connector search
drm/msm/sde: bypass wait for commit done if crtc is not enabled
drm/msm/sde: add proper mode config lock to plane QoS check
drm/msm/sde: correct crtc to use new plane state for update
drm/msm/sde: remove error message from optional settings
drm/msm/sde: remove unused traffic shaper from hw drivers
drm/msm: property read should return success for virtual crtc
drm/msm/sde: avoid programming same plane source address
drm/msm/sde: update plane dmesg logging to use sde macros
drm/msm/sde: update scaler property definition and type
drm/msm/sde: break out plane decimation to separate properties
drm/msm/sde: update register writes to use SDE logging macros
drm/msm/sde: update csc property definition and type
drm/msm: Modularize property install function of color processing
drm/msm: Add support for PA vLut feature
drm/msm: Expose Assertive display capability
drm/msm: Suspend/Resume support for color processing features
drm/msm: Add support for PCC in Crtc
drm/msm/sde: update catalog for post processing
drm/msm/sde: don't duplicate input fence pointer with state
drm/msm/sde: fix color component order for compressed formats
drm/msm/sde: add writeback ROI support for msmskunk
drm/msm/sde: add const alpha support for msmskunk
ARM: dts: msm: add max clock property for sde to msm8996
drm/msm/sde: add max clock property for sde
drm/msm: add support for custom event notification
drm/msm: Initial version post processing header
drm/msm: remove msm clock driver header files
drm/msm/dsi-staging: keep backlight api under LED config
drm/msm/sde: enable sde clocks during debugfs register read
drm/msm/sde: update pipes on dirty plane properties
drm/msm/sde: fix compilation issues in sde driver
drm/msm/sde: update encoder dmesg logging to use sde macros
drm/msm/sde: remove unused header dependency
drm/msm/sde: use const alpha for wb if pipe alpha not supported
drm/msm/sde: remove unused sde functions
drm/msm/sde: add mode change request to cdm resource update
drm/msm/sde: cleanup alpha calc and plane stage in crtc
ARM: dts: msm: send panel off command during pre off state
drm/msm/sde: remove unused writeback function stubs
drm/msm/sde: remove unused vblank control for writeback
drm/msm/sde: remove unused encoder function
drm/msm/sde: always clear topology name when removing rsvp
drm/msm/sde: reorganize top level interrupt handling code
drm/msm/sde: add OT support for source pipe and writeback
drm/msm/sde: add danger/safe/QoS support for source pipe
drm/msm/sde: improve debug log for blend setup
DOWNSTREAM: drm/msm/sde: optionally delay output fence signal
drm/msm/sde: determine output fence timing on create
drm/sde: use power handle api to vote for core clock
ARM: dts: msm: add clk rate and gdsc supply entry for msm8996
drm/msm: add power handle driver for msm
drm/msm/sde: add helper macro for performing ktime comparisons
drm/msm/sde: assign ctls based on capability requirements
drm/msm/sde: clean up crtc ctl tracking
drm/msm/sde: improve resource manager hw block lookup time
drm/msm: internal property updates should update cached value
drm/msm/sde: fix plane stage setup in sde crtc
ARM: dts: msm: add nt35597 panel definition for msm8996
drm/sde: remove warn on from sde encoder
drm/sde: allow base layer plane stagging
drm/msm: update plane, crtc and connector caps blob prop
drm/msm/sde: add api for determining current interface mode
drm/msm/sde: fix uninitialized return code in rm
drm/msm/sde: fix atomic check for crtc driver
drm/msm: validate framebuffer before accessing it
drm/msm: fix atomic mode check for sde plane
drm/msm: use drm helper API for atomic check
ARM: dts: msm: remove hdmi connector for msm8996
drm/msm/sde: enable dynamic hardware resource assignment
drm/msm/sde: dynamic hardware resource manager
drm/msm/sde: move crtc towards multi-encoder support
drm/msm/sde: list block interconnects as bitmasks
drm/msm/sde: add topology management properties
drivers/gpu/drm: disable drm fbdev emulation
drm/msm/sde: use common structure for phys encoder init
drm/msm/sde: list hardwired mixer connections
drm/msm: enable/disable sde during driver open and close
drm/dsi: turn off the wled backlight with panel power off
drm/dsi: fix dsi control power supply turn off sequence
drm/msm/sde: add support for dirty properties
drm/msm: allow flags to be set in property helpers
drm/msm/sde: trigger plane modeset on buffer pitch change
ARM: dts: msm: add SDE writeback display for msm8996
drm/msm/sde: enable writeback enumeration in display manager
drm/msm/sde: add virtual writeback device and connector
drm/msm/sde: add resource management for writeback and cdm
drm/msm/sde: add hardware driver support for chroma down module
drm/msm/sde: add hardware driver support for writeback interface
drm/msm/sde: add smmu domain selection logic to connector
drm/msm/sde: add function to return raw interrupt status
ARM: dts: msm: add SDE smmu node to msm8996
drm/msm/sde: Bypass unused interface during smmu init
drm/msm: add non-realtime and secure smmu domains
drm/msm: cache active displays within display manager
drm/msm/sde: add connector api for querying display info
drm/msm/sde: use msm_display_info for display information
drm/msm/sde: explicitly enumerate supported plane formats
drm/msm/sde: add retire fence support
drm/msm/dsi-staging: use sde connector for dsi
drm/msm/sde: add generic support for drm connectors
drm/msm/sde: add utility functions for kms info
drm/msm/sde: enable output_fence property
drm/msm/sde: add output fence utility functions
drm/msm/sde: support more formats including compression
drm/msm: subdriver hook to validate modified formats
drm/msm/sde: add drm fourcc modifier for qcom compressed format
drm/msm/sde: command mode panel encoder support
drm/msm/dsi-staging: turn gpio off if panel reset fails
drm/msm/sde: single kickoff to flush hardware
drm/msm/dsi-staging: add dsi cmd/vid mode to display info
drm/msm: add subdriver callback for single kickoff
drm/msm/sde: fix reading of the pingpong counters
drm/dsi-staging: update configurations for display related GPIOs
drm/msm/sde: add register name to logging
drm/msm/sde: add logmask area for top registers
drm/msm/sde: define sde specific macros for dmesg logging
drm/msm/sde: enable explicit input fences
drm/msm/sde: add support for crtc properties
drm/dsi-staging: reset drm/dsi data before reconfiguring
ARM: dts: msm: fix compilation errors for msm8996
ARM: dts: msm: add configurations for 1080p panel on msm8996
defconfig: enabled drm/kms driver in msm defconfig
drm/msm/dsi: remove unused tag from dsi API
drm/kms: remove compilation of hdcp_hdmi
ARM: dts: msm: update settings for dsi panels
drm/msm: disable mdp4 driver in drm kms
drm/msm: switch to qti KGSL driver
ARM: dts: msm: add configurations for 720p panel
ARM: dts: msm: add device tree for sde dsi device on msm8996
drm/dsi-staging: add support to get regulator data from device tree
drm/msm/sde: use sde plane csc cfg struct for user settings
drm/msm: add display manager to makefile
drm/msm: rename MSM drm platform driver's name into msm_drm
drm/msm/sde: avoid dereferencing scaler blob if null state
drm/msm: handle null blob property array
drm/msm: enable both dsi drivers together
drm: mipi: change header format to work with msm hardware
drm/dsi-staging: remove interrupt handling
drm/msm: move display manager out from dsi-staging
drm/msm/dsi-staging: fix dynamic fps and seamless updates
drm/msm/dsi-staging: support dynamic frame-rate and validation
drm/msm: defer drm driver probe if backlight isn't ready
drm/msm: common display interface for mdp driver
drm/msm/sde: init private kms pointer before modeset init
drm/msm/dsi-staging: add dsi panel driver
drm/msm/dsi-staging: add debugfs support for dsi driver
drm/msm/dsi-staging: add support for command mode panels
drm/msm/dsi-staging: dsi display tests
drm/msm/dsi-staging: add dsi drm interface
drm/msm/dsi-staging: add dsi display driver
drm/msm/sde: replace plane property/state handling with msm_prop
drm/msm: add generic property/state handling
drm/msm: use sde specific color format throughout
drm/msm: move dynamic fps and seamless updates
drm/msm: update wrapper macros for event logging
drm/msm/sde: init spinlock for lm_lock
drm/msm/sde: clean up debug output
drm/msm: add event log for profiling msm drm driver events
drm/msm/sde: pageflip fixes
drm/msm/sde: remove crtc full modeset based on plane changes
drm/msm/sde: add z-order and plane id to prints
drm/msm/sde: add wrappers for release fence API
drm/msm/sde: update max up/down scale
drm/msm/sde: add planes color fill/fence timeout
drm/msm/sde: updates to planes atomic_check
drm/msm/sde: add cache for released plane states
drm/msm/sde: input fence support for planes
drm/msm/sde: add debugfs for crtc
drm/msm/sde: don't overflow mixer cfg fields
drm/msm: enable seamless dynamic framerates
drm/msm/sde: remove plane decimation properties
drm/msm/sde: change csc matrix coeff in h/w driver to s15.16
drm/msm/sde: enable blending across all planes
drm/msm/sde: remove 'mdp' from sde file names
defconfig: msm: enable SYNC Driver
drm/msm/sde: add valid rotator writeback flag
drm/msm/sde: add properties for planes
msm: sde: sde plane properties user definitions
drm/msm/sde: consolidate SDE error logging on DRM standard calls
drm/msm/sde: set encoder role at display probe time
drm/msm/sde: add preliminary debugfs support
drm/msm/sde: add blending support for more use cases
drm/msm/sde: enable NV12 modetest for planes
drm/msm/sde: fixup mdp top split pipe control
drm/msm/sde: add support for vblank callback
drm/msm/dsi-staging: add dsi phy driver
drm/msm/dsi-staging: add clock and power utilities
drm/msm/dsi-staging: add dsi controller driver
drm/msm/sde: add resource manager to enable dual dsi
drm/msm/sde: adding implementation for mdp_top in hw driver
drm/msm/sde: sde hw interrupt handling
drm/msm/sde: simplify encoder display probe logic
drm/msm/sde: move sde encoder to new display interface
drm/msm/sde: programmable pre-fetch support for video encoders
drm/msm/sde: sde encoder virtualization
drm/msm/sde: add controller instance to INTF block in catalog
drm/msm/sde: add basic sde object enumeration
drm/msm: add smmu handler
drm/msm/sde: add driver for sde support
drm/msm/dsi-staging: add catalog for dsi driver
drm/msm/dsi-staging: add hardware driver for dsi controller
drm/msm/dsi-staging: add hardware driver for dsi phy
drm/msm/dsi-staging: add dsi definitions for new dsi driver
drm/msm: remove clock framework dependency
Change-Id: I20ec5183e730d1033f824f3b33f52d5b1578f740
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
Diffstat (limited to 'Documentation/devicetree')
5 files changed, 608 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/display/msm/dsi.txt b/Documentation/devicetree/bindings/display/msm/dsi.txt index f344b9e49198..ae2278fb3d1c 100644 --- a/Documentation/devicetree/bindings/display/msm/dsi.txt +++ b/Documentation/devicetree/bindings/display/msm/dsi.txt @@ -69,6 +69,20 @@ Required properties: Optional properties: - qcom,dsi-phy-regulator-ldo-mode: Boolean value indicating if the LDO mode PHY regulator is wanted. +- qcom,mdss-mdp-transfer-time-us: Specifies the dsi transfer time for command mode + panels in microseconds. Driver uses this number to adjust + the clock rate according to the expected transfer time. + Increasing this value would slow down the mdp processing + and can result in slower performance. + Decreasing this value can speed up the mdp processing, + but this can also impact power consumption. + As a rule this time should not be higher than the time + that would be expected with the processing at the + dsi link rate since anyways this would be the maximum + transfer time that could be achieved. + If ping pong split is enabled, this time should not be higher + than two times the dsi link rate time. + If the property is not specified, then the default value is 14000 us. Example: mdss_dsi0: qcom,mdss_dsi@fd922800 { @@ -105,6 +119,8 @@ Example: qcom,master-dsi; qcom,sync-dual-dsi; + qcom,mdss-mdp-transfer-time-us = <12000>; + pinctrl-names = "default", "sleep"; pinctrl-0 = <&mdss_dsi_active>; pinctrl-1 = <&mdss_dsi_suspend>; diff --git a/Documentation/devicetree/bindings/display/msm/sde.txt b/Documentation/devicetree/bindings/display/msm/sde.txt new file mode 100644 index 000000000000..c9e7d7423d7f --- /dev/null +++ b/Documentation/devicetree/bindings/display/msm/sde.txt @@ -0,0 +1,472 @@ +Qualcomm Technologies, Inc. SDE KMS + +Snapdragon Display Engine implements Linux DRM/KMS APIs to drive user +interface to different panel interfaces. SDE driver is the core of +display subsystem which manage all data paths to different panel interfaces. + +Required properties +- compatible: Must be "qcom,sde-kms" +- reg: Offset and length of the register set for the device. +- reg-names : Names to refer to register sets related to this device +- clocks: List of Phandles for clock device nodes + needed by the device. +- clock-names: List of clock names needed by the device. +- mmagic-supply: Phandle for mmagic mdss supply regulator device node. +- vdd-supply: Phandle for vdd regulator device node. +- interrupt-parent: Must be core interrupt controller. +- interrupts: Interrupt associated with MDSS. +- interrupt-controller: Mark the device node as an interrupt controller. +- #interrupt-cells: Should be one. The first cell is interrupt number. +- iommus: Specifies the SID's used by this context bank. +- qcom,sde-sspp-type: Array of strings for SDE source surface pipes type information. + A source pipe can be "vig", "rgb", "dma" or "cursor" type. + Number of xin ids defined should match the number of offsets + defined in property: qcom,sde-sspp-off. +- qcom,sde-sspp-off: Array of offset for SDE source surface pipes. The offsets + are calculated from register "mdp_phys" defined in + reg property + "sde-off". The number of offsets defined here should + reflect the amount of pipes that can be active in SDE for + this configuration. +- qcom,sde-sspp-xin-id: Array of VBIF clients ids (xins) corresponding + to the respective source pipes. Number of xin ids + defined should match the number of offsets + defined in property: qcom,sde-sspp-off. +- qcom,sde-ctl-off: Array of offset addresses for the available ctl + hw blocks within SDE, these offsets are + calculated from register "mdp_phys" defined in + reg property. The number of ctl offsets defined + here should reflect the number of control paths + that can be configured concurrently on SDE for + this configuration. +- qcom,sde-wb-off: Array of offset addresses for the programmable + writeback blocks within SDE. +- qcom,sde-wb-xin-id: Array of VBIF clients ids (xins) corresponding + to the respective writeback. Number of xin ids + defined should match the number of offsets + defined in property: qcom,sde-wb-off. +- qcom,sde-mixer-off: Array of offset addresses for the available + mixer blocks that can drive data to panel + interfaces. These offsets are be calculated from + register "mdp_phys" defined in reg property. + The number of offsets defined should reflect the + amount of mixers that can drive data to a panel + interface. +- qcom,sde-dspp-off: Array of offset addresses for the available dspp + blocks. These offsets are calculated from + register "mdp_phys" defined in reg property. +- qcom,sde-pp-off: Array of offset addresses for the available + pingpong blocks. These offsets are calculated + from register "mdp_phys" defined in reg property. +- qcom,sde-pp-slave: Array of flags indicating whether each ping pong + block may be configured as a pp slave. +- qcom,sde-intf-off: Array of offset addresses for the available SDE + interface blocks that can drive data to a + panel controller. The offsets are calculated + from "mdp_phys" defined in reg property. The number + of offsets defined should reflect the number of + programmable interface blocks available in hardware. + +Optional properties: +- clock-rate: List of clock rates in Hz. +- clock-max-rate: List of maximum clock rate in Hz that this device supports. +- qcom,platform-supply-entries: A node that lists the elements of the supply. There + can be more than one instance of this binding, + in which case the entry would be appended with + the supply entry index. + e.g. qcom,platform-supply-entry@0 + -- reg: offset and length of the register set for the device. + -- qcom,supply-name: name of the supply (vdd/vdda/vddio) + -- qcom,supply-min-voltage: minimum voltage level (uV) + -- qcom,supply-max-voltage: maximum voltage level (uV) + -- qcom,supply-enable-load: load drawn (uA) from enabled supply + -- qcom,supply-disable-load: load drawn (uA) from disabled supply + -- qcom,supply-pre-on-sleep: time to sleep (ms) before turning on + -- qcom,supply-post-on-sleep: time to sleep (ms) after turning on + -- qcom,supply-pre-off-sleep: time to sleep (ms) before turning off + -- qcom,supply-post-off-sleep: time to sleep (ms) after turning off +- qcom,sde-sspp-src-size: A u32 value indicates the address range for each sspp. +- qcom,sde-mixer-size: A u32 value indicates the address range for each mixer. +- qcom,sde-ctl-size: A u32 value indicates the address range for each ctl. +- qcom,sde-dspp-size: A u32 value indicates the address range for each dspp. +- qcom,sde-intf-size: A u32 value indicates the address range for each intf. +- qcom,sde-dsc-size: A u32 value indicates the address range for each dsc. +- qcom,sde-cdm-size: A u32 value indicates the address range for each cdm. +- qcom,sde-pp-size: A u32 value indicates the address range for each pingpong. +- qcom,sde-wb-size: A u32 value indicates the address range for each writeback. +- qcom,sde-len: A u32 entry for SDE address range. +- qcom,sde-intf-max-prefetch-lines: Array of u32 values for max prefetch lines on + each interface. +- qcom,sde-sspp-linewidth: A u32 value indicates the max sspp line width. +- qcom,sde-mixer-linewidth: A u32 value indicates the max mixer line width. +- qcom,sde-wb-linewidth: A u32 value indicates the max writeback line width. +- qcom,sde-sspp-scale-size: A u32 value indicates the scaling block size on sspp. +- qcom,sde-mixer-blendstages: A u32 value indicates the max mixer blend stages for + alpha blending. +- qcom,sde-qseed-type: A string entry indicates qseed support on sspp and wb. + It supports "qssedv3" and "qseedv2" entries for qseed + type. By default "qseedv2" is used if this optional property + is not defined. +- qcom,sde-csc-type: A string entry indicates csc support on sspp and wb. + It supports "csc" and "csc-10bit" entries for csc + type. +- qcom,sde-highest-bank-bit: A u32 property to indicate GPU/Camera/Video highest memory + bank bit used for tile format buffers. +- qcom,sde-panic-per-pipe: Boolean property to indicate if panic signal + control feature is available on each source pipe. +- qcom,sde-has-src-split: Boolean property to indicate if source split + feature is available or not. +- qcom,sde-has-mixer-gc: Boolean property to indicate if mixer has gamma correction + feature available or not. +- qcom,sde-has-cdp: Boolean property to indicate if cdp feature is + available or not. +- qcom,sde-sspp-clk-ctrl: Array of offsets describing clk control + offsets for dynamic clock gating. 1st value + in the array represents offset of the control + register. 2nd value represents bit offset within + control register. Number of offsets defined should + match the number of offsets defined in + property: qcom,sde-sspp-off +- qcom,sde-sspp-clk-status: Array of offsets describing clk status + offsets for dynamic clock gating. 1st value + in the array represents offset of the status + register. 2nd value represents bit offset within + control register. Number of offsets defined should + match the number of offsets defined in + property: qcom,sde-sspp-off. +- qcom,sde-sspp-danger-lut: A 3 cell property, with a format of <linear, tile, nrt>, + indicating the danger luts on sspp. +- qcom,sde-sspp-safe-lut: A 3 cell property, with a format of <linear, tile, nrt>, + indicating the safe luts on sspp. +- qcom,sde-sspp-max-rects: Array of u32 values indicating maximum rectangles supported + on each sspp. This property is for multirect feature support. + Number of offsets defined should match the number of + offsets defined in property: qcom,sde-sspp-off. +- qcom,sde-intf-type: Array of string provides the interface type information. + Possible string values + "dsi" - dsi display interface + "dp" - Display Port interface + "hdmi" - HDMI display interface + An interface is considered as "none" if interface type + is not defined. +- qcom,sde-off: SDE offset from "mdp_phys" defined in reg property. +- qcom,sde-cdm-off: Array of offset addresses for the available + cdm blocks. These offsets will be calculated from + register "mdp_phys" defined in reg property. +- qcom,sde-vbif-off: Array of offset addresses for the available + vbif blocks. These offsets will be calculated from + register "vbif_phys" defined in reg property. +- qcom,sde-vbif-size: A u32 value indicates the vbif block address range. +- qcom,sde-te-off: A u32 offset indicates the te block offset on pingpong. + This offset is 0x0 by default. +- qcom,sde-te2-off: A u32 offset indicates the te2 block offset on pingpong. +- qcom,sde-te-size: A u32 value indicates the te block address range. +- qcom,sde-te2-size: A u32 value indicates the te2 block address range. +- qcom,sde-dsc-off: A u32 offset indicates the dsc block offset on pingpong. +- qcom,sde-sspp-vig-blocks: A node that lists the blocks inside the VIG hardware. The + block entries will contain the offset and version (if needed) + of each feature block. The presence of a block entry + indicates that the SSPP VIG contains that feature hardware. + e.g. qcom,sde-sspp-vig-blocks + -- qcom,sde-vig-csc-off: offset of CSC hardware + -- qcom,sde-vig-qseed-off: offset of QSEED hardware + -- qcom,sde-vig-pcc: offset and version of PCC hardware + -- qcom,sde-vig-hsic: offset and version of global PA adjustment + -- qcom,sde-vig-memcolor: offset and version of PA memcolor hardware +- qcom,sde-sspp-rgb-blocks: A node that lists the blocks inside the RGB hardware. The + block entries will contain the offset and version (if needed) + of each feature block. The presence of a block entry + indicates that the SSPP RGB contains that feature hardware. + e.g. qcom,sde-sspp-vig-blocks + -- qcom,sde-rgb-scaler-off: offset of RGB scaler hardware + -- qcom,sde-rgb-pcc: offset and version of PCC hardware +- qcom,sde-dspp-blocks: A node that lists the blocks inside the DSPP hardware. The + block entries will contain the offset and version of each + feature block. The presence of a block entry indicates that + the DSPP contains that feature hardware. + e.g. qcom,sde-dspp-blocks + -- qcom,sde-dspp-pcc: offset and version of PCC hardware + -- qcom,sde-dspp-gc: offset and version of GC hardware + -- qcom,sde-dspp-hsic: offset and version of global PA adjustment + -- qcom,sde-dspp-memcolor: offset and version of PA memcolor hardware + -- qcom,sde-dspp-sixzone: offset and version of PA sixzone hardware + -- qcom,sde-dspp-gamut: offset and version of Gamut mapping hardware + -- qcom,sde-dspp-dither: offset and version of dither hardware + -- qcom,sde-dspp-hist: offset and version of histogram hardware + -- qcom,sde-dspp-vlut: offset and version of PA vLUT hardware +- qcom,sde-mixer-blocks: A node that lists the blocks inside the layer mixer hardware. The + block entries will contain the offset and version (if needed) + of each feature block. The presence of a block entry + indicates that the layer mixer contains that feature hardware. + e.g. qcom,sde-mixer-blocks + -- qcom,sde-mixer-gc: offset and version of mixer GC hardware +- qcom,sde-dspp-ad-off: Array of u32 offsets indicate the ad block offset from the + DSPP offset. Since AD hardware is represented as part of + DSPP block, the AD offsets must be offset from the + corresponding DSPP base. +- qcom,sde-dspp-ad-version A u32 value indicating the version of the AD hardware +- qcom,sde-vbif-id: Array of vbif ids corresponding to the + offsets defined in property: qcom,sde-vbif-off. +- qcom,sde-vbif-default-ot-rd-limit: A u32 value indicates the default read OT limit +- qcom,sde-vbif-default-ot-wr-limit: A u32 value indicates the default write OT limit +- qcom,sde-vbif-dynamic-ot-rd-limit: A series of 2 cell property, with a format + of (pps, OT limit), where pps is pixel per second and + OT limit is the read limit to apply if the given + pps is not exceeded. +- qcom,sde-vbif-dynamic-ot-wr-limit: A series of 2 cell property, with a format + of (pps, OT limit), where pps is pixel per second and + OT limit is the write limit to apply if the given + pps is not exceeded. +- qcom,sde-wb-id: Array of writeback ids corresponding to the + offsets defined in property: qcom,sde-wb-off. +- qcom,sde-wb-clk-ctrl: Array of 2 cell property describing clk control + offsets for dynamic clock gating. 1st value + in the array represents offset of the control + register. 2nd value represents bit offset within + control register. Number of offsets defined should + match the number of offsets defined in + property: qcom,sde-wb-off +- qcom,sde-dram-channels: This represents the number of channels in the + Bus memory controller. +- qcom,sde-num-nrt-paths: Integer property represents the number of non-realtime + paths in each Bus Scaling Usecase. This value depends on + number of AXI ports that are dedicated to non-realtime VBIF + for particular chipset. + These paths must be defined after rt-paths in + "qcom,msm-bus,vectors-KBps" vector request. +- qcom,sde-max-bw-low-kbps: This value indicates the max bandwidth in Kbps + that can be supported without underflow. + This is a low bandwidth threshold which should + be applied in most scenarios to be safe from + underflows when unable to satisfy bandwidth + requirements. +- qcom,sde-max-bw-high-kbps: This value indicates the max bandwidth in Kbps + that can be supported without underflow. + This is a high bandwidth threshold which can be + applied in scenarios where panel interface can + be more tolerant to memory latency such as + command mode panels. + +Bus Scaling Subnodes: +- qcom,sde-reg-bus: Property to provide Bus scaling for register access for + mdss blocks. +- qcom,sde-data-bus: Property to provide Bus scaling for data bus access for + mdss blocks. + +Bus Scaling Data: +- qcom,msm-bus,name: String property describing client name. +- qcom,msm-bus,num-cases: This is the number of Bus Scaling use cases + defined in the vectors property. +- qcom,msm-bus,num-paths: This represents the number of paths in each + Bus Scaling Usecase. +- qcom,msm-bus,vectors-KBps: * A series of 4 cell properties, with a format + of (src, dst, ab, ib) which is defined at + Documentation/devicetree/bindings/arm/msm/msm_bus.txt + * Current values of src & dst are defined at + include/linux/msm-bus-board.h + + +Please refer to ../../interrupt-controller/interrupts.txt for a general +description of interrupt bindings. + +Example: + mdss_mdp: qcom,mdss_mdp@900000 { + compatible = "qcom,sde-kms"; + reg = <0x00900000 0x90000>, + <0x009b0000 0x1040>, + <0x009b8000 0x1040>; + reg-names = "mdp_phys", + "vbif_phys", + "vbif_nrt_phys"; + clocks = <&clock_mmss clk_mdss_ahb_clk>, + <&clock_mmss clk_mdss_axi_clk>, + <&clock_mmss clk_mdp_clk_src>, + <&clock_mmss clk_mdss_mdp_vote_clk>, + <&clock_mmss clk_smmu_mdp_axi_clk>, + <&clock_mmss clk_mmagic_mdss_axi_clk>, + <&clock_mmss clk_mdss_vsync_clk>; + clock-names = "iface_clk", + "bus_clk", + "core_clk_src", + "core_clk", + "iommu_clk", + "mmagic_clk", + "vsync_clk"; + clock-rate = <0>, <0>, <0>; + clock-max-rate= <0 320000000 0>; + mmagic-supply = <&gdsc_mmagic_mdss>; + vdd-supply = <&gdsc_mdss>; + interrupt-parent = <&intc>; + interrupts = <0 83 0>; + interrupt-controller; + #interrupt-cells = <1>; + iommus = <&mdp_smmu 0>; + + qcom,sde-off = <0x1000>; + qcom,sde-ctl-off = <0x00002000 0x00002200 0x00002400 + 0x00002600 0x00002800>; + qcom,sde-mixer-off = <0x00045000 0x00046000 + 0x00047000 0x0004a000>; + qcom,sde-dspp-off = <0x00055000 0x00057000>; + qcom,sde-dspp-ad-off = <0x24000 0x22800>; + qcom,sde-dspp-ad-version = <0x00030000>; + qcom,sde-wb-off = <0x00066000>; + qcom,sde-wb-xin-id = <6>; + qcom,sde-intf-off = <0x0006b000 0x0006b800 + 0x0006c000 0x0006c800>; + qcom,sde-intf-type = "none", "dsi", "dsi", "hdmi"; + qcom,sde-pp-off = <0x00071000 0x00071800 + 0x00072000 0x00072800>; + qcom,sde-pp-slave = <0x0 0x0 0x0 0x0>; + qcom,sde-cdm-off = <0x0007a200>; + qcom,sde-dsc-off = <0x00081000 0x00081400>; + qcom,sde-intf-max-prefetch-lines = <0x15 0x15 0x15 0x15>; + + qcom,sde-sspp-type = "vig", "vig", "vig", + "vig", "rgb", "rgb", + "rgb", "rgb", "dma", + "dma", "cursor", "cursor"; + + qcom,sde-sspp-off = <0x00005000 0x00007000 0x00009000 + 0x0000b000 0x00015000 0x00017000 + 0x00019000 0x0001b000 0x00025000 + 0x00027000 0x00035000 0x00037000>; + + qcom,sde-sspp-xin-id = <0 4 8 + 12 1 5 + 9 13 2 + 10 7 7>; + + /* offsets are relative to "mdp_phys + qcom,sde-off */ + qcom,sde-sspp-clk-ctrl = <0x2ac 0>, <0x2b4 0>, <0x2bc 0>, + <0x2c4 0>, <0x2ac 4>, <0x2b4 4>, <0x2bc 4>, + <0x2c4 4>, <0x2ac 8>, <0x2b4 8>, <0x3a8 16>, + <0x3b0 16>; + qcom,sde-sspp-clk-status = <0x2ac 0>, <0x2b4 0>, <0x2bc 0>, + <0x2c4 0>, <0x2ac 4>, <0x2b4 4>, <0x2bc 4>, + <0x2c4 4>, <0x2ac 8>, <0x2b4 8>, <0x3a8 16>, + <0x3b0 16>; + qcom,sde-mixer-linewidth = <2560>; + qcom,sde-sspp-linewidth = <2560>; + qcom,sde-mixer-blendstages = <0x7>; + qcom,sde-highest-bank-bit = <0x2>; + qcom,sde-panic-per-pipe; + qcom,sde-has-cdp; + qcom,sde-has-src-split; + qcom,sde-sspp-src-size = <0x100>; + qcom,sde-mixer-size = <0x100>; + qcom,sde-ctl-size = <0x100>; + qcom,sde-dspp-size = <0x100>; + qcom,sde-intf-size = <0x100>; + qcom,sde-dsc-size = <0x100>; + qcom,sde-cdm-size = <0x100>; + qcom,sde-pp-size = <0x100>; + qcom,sde-wb-size = <0x100>; + qcom,sde-len = <0x100>; + qcom,sde-wb-linewidth = <2560>; + qcom,sde-sspp-scale-size = <0x100>; + qcom,sde-mixer-blendstages = <0x8>; + qcom,sde-qseed-type = "qseedv2"; + qcom,sde-highest-bank-bit = <15>; + qcom,sde-has-mixer-gc; + qcom,sde-sspp-max-rects = <1 1 1 1 + 1 1 1 1 + 1 1 + 1 1>; + qcom,sde-te-off = <0x100>; + qcom,sde-te2-off = <0x100>; + qcom,sde-te-size = <0xffff>; + qcom,sde-te2-size = <0xffff>; + + qcom,sde-wb-id = <2>; + qcom,sde-wb-clk-ctrl = <0x2bc 16>; + + qcom,sde-sspp-danger-lut = <0x000f 0xffff 0x0000>; + qcom,sde-sspp-safe-lut = <0xfffc 0xff00 0xffff>; + + qcom,sde-vbif-off = <0 0>; + qcom,sde-vbif-id = <0 1>; + qcom,sde-vbif-default-ot-rd-limit = <32>; + qcom,sde-vbif-default-ot-wr-limit = <16>; + qcom,sde-vbif-dynamic-ot-rd-limit = <62208000 2>, + <124416000 4>, <248832000 16>; + qcom,sde-vbif-dynamic-ot-wr-limit = <62208000 2>, + <124416000 4>, <248832000 16>; + + qcom,sde-dram-channels = <2>; + qcom,sde-num-nrt-paths = <1>; + + qcom,sde-max-bw-high-kbps = <9000000>; + qcom,sde-max-bw-low-kbps = <9000000>; + + qcom,sde-sspp-vig-blocks { + qcom,sde-vig-csc-off = <0x320>; + qcom,sde-vig-qseed-off = <0x200>; + /* Offset from vig top, version of HSIC */ + qcom,sde-vig-hsic = <0x200 0x00010000>; + qcom,sde-vig-memcolor = <0x200 0x00010000>; + qcom,sde-vig-pcc = <0x1780 0x00010000>; + }; + + qcom,sde-sspp-rgb-blocks { + qcom,sde-rgb-scaler-off = <0x200>; + qcom,sde-rgb-pcc = <0x380 0x00010000>; + }; + + qcom,sde-dspp-blocks { + qcom,sde-dspp-pcc = <0x1700 0x00010000>; + qcom,sde-dspp-gc = <0x17c0 0x00010000>; + qcom,sde-dspp-hsic = <0x0 0x00010000>; + qcom,sde-dspp-memcolor = <0x0 0x00010000>; + qcom,sde-dspp-sixzone = <0x0 0x00010000>; + qcom,sde-dspp-gamut = <0x1600 0x00010000>; + qcom,sde-dspp-dither = <0x0 0x00010000>; + qcom,sde-dspp-hist = <0x0 0x00010000>; + qcom,sde-dspp-vlut = <0x0 0x00010000>; + }; + + qcom,sde-mixer-blocks { + qcom,sde-mixer-gc = <0x3c0 0x00010000>; + }; + + qcom,platform-supply-entries { + #address-cells = <1>; + #size-cells = <0>; + qcom,platform-supply-entry@0 { + reg = <0>; + qcom,supply-name = "vdd"; + qcom,supply-min-voltage = <0>; + qcom,supply-max-voltage = <0>; + qcom,supply-enable-load = <0>; + qcom,supply-disable-load = <0>; + qcom,supply-pre-on-sleep = <0>; + qcom,supply-post-on-sleep = <0>; + qcom,supply-pre-off-sleep = <0>; + qcom,supply-post-off-sleep = <0>; + }; + }; + + qcom,sde-data-bus { + qcom,msm-bus,name = "mdss_sde"; + qcom,msm-bus,num-cases = <3>; + qcom,msm-bus,num-paths = <3>; + qcom,msm-bus,vectors-KBps = + <22 512 0 0>, <23 512 0 0>, <25 512 0 0>, + <22 512 0 6400000>, <23 512 0 6400000>, + <25 512 0 6400000>, + <22 512 0 6400000>, <23 512 0 6400000>, + <25 512 0 6400000>; + }; + + qcom,sde-reg-bus { + /* Reg Bus Scale Settings */ + qcom,msm-bus,name = "mdss_reg"; + qcom,msm-bus,num-cases = <4>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,active-only; + qcom,msm-bus,vectors-KBps = + <1 590 0 0>, + <1 590 0 76800>, + <1 590 0 160000>, + <1 590 0 320000>; + }; + }; diff --git a/Documentation/devicetree/bindings/drm/msm/sde-dsi.txt b/Documentation/devicetree/bindings/drm/msm/sde-dsi.txt new file mode 100644 index 000000000000..48a2c6c78297 --- /dev/null +++ b/Documentation/devicetree/bindings/drm/msm/sde-dsi.txt @@ -0,0 +1,96 @@ +Qualcomm Technologies, Inc. + +mdss-dsi is the master DSI device which supports multiple DSI host controllers +that are compatible with MIPI display serial interface specification. + +DSI Controller: +Required properties: +- compatible: Should be "qcom,dsi-ctrl-hw-v<version>". Supported + versions include 1.4 and 2.0. + eg: qcom,dsi-ctrl-hw-v1.4, qcom,dsi-ctrl-hw-v2.0 + And for dsi phy driver: + qcom,dsi-phy-v1.0, qcom,dsi-phy-v2.0, qcom,dsi-phy-v3.0, + qcom,dsi-phy-v4.0 +- reg: Base address and length of DSI controller's memory + mapped regions. +- reg-names: A list of strings that name the list of regs. + "dsi_ctrl" - DSI controller memory region. + "mmss_misc" - MMSS misc memory region. +- cell-index: Specifies the controller instance. +- clocks: Clocks required for DSI controller operation. +- clock-names: Names of the clocks corresponding to handles. Following + clocks are required: + "mdp_core_clk" + "iface_clk" + "core_mmss_clk" + "bus_clk" + "byte_clk" + "pixel_clk" + "core_clk" + "byte_clk_rcg" + "pixel_clk_rcg" +- gdsc-supply: phandle to gdsc regulator node. +- vdda-supply: phandle to vdda regulator node. +- vcca-supply: phandle to vcca regulator node. +- interrupt-parent phandle to the interrupt parent device node. +- interrupts: The interrupt signal from the DSI block. + +Bus Scaling Data: +- qcom,msm-bus,name: String property describing MDSS client. +- qcom,msm-bus,num-cases: This is the number of bus scaling use cases + defined in the vectors property. This must be + set to <2> for MDSS DSI driver where use-case 0 + is used to remove BW votes from the system. Use + case 1 is used to generate bandwidth requestes + when sending command packets. +- qcom,msm-bus,num-paths: This represents number of paths in each bus + scaling usecase. This value depends on number of + AXI master ports dedicated to MDSS for + particular chipset. +- qcom,msm-bus,vectors-KBps: A series of 4 cell properties, with a format + of (src, dst, ab, ib) which is defined at + Documentation/devicetree/bindings/arm/msm/msm_bus.txt. + DSI driver should always set average bandwidth + (ab) to 0 and always use instantaneous + bandwidth(ib) values. + +Optional properties: +- label: String to describe controller. +- qcom,platform-te-gpio: Specifies the gpio used for TE. +- qcom,dsi-display-active: Current active display +- qcom,dsi-ctrl: handle to dsi controller device +- qcom,dsi-phy: handle to dsi phy device +- qcom,dsi-manager: Specifies dsi manager is present +- qcom,dsi-display: Specifies dsi display is present +- qcom,hdmi-display: Specifies hdmi is present +- qcom,dp-display: Specified dp is present +- qcom,<type>-supply-entries: A node that lists the elements of the supply used by the + a particular "type" of DSI module. The module "types" + can be "core", "ctrl", and "phy". Within the same type, + there can be more than one instance of this binding, + in which case the entry would be appended with the + supply entry index. + e.g. qcom,ctrl-supply-entry@0 + -- qcom,supply-name: name of the supply (vdd/vdda/vddio) + -- qcom,supply-min-voltage: minimum voltage level (uV) + -- qcom,supply-max-voltage: maximum voltage level (uV) + -- qcom,supply-enable-load: load drawn (uA) from enabled supply + -- qcom,supply-disable-load: load drawn (uA) from disabled supply + -- qcom,supply-pre-on-sleep: time to sleep (ms) before turning on + -- qcom,supply-post-on-sleep: time to sleep (ms) after turning on + -- qcom,supply-pre-off-sleep: time to sleep (ms) before turning off + -- qcom,supply-post-off-sleep: time to sleep (ms) after turning off +- qcom,mdss-mdp-transfer-time-us: Specifies the dsi transfer time for command mode + panels in microseconds. Driver uses this number to adjust + the clock rate according to the expected transfer time. + Increasing this value would slow down the mdp processing + and can result in slower performance. + Decreasing this value can speed up the mdp processing, + but this can also impact power consumption. + As a rule this time should not be higher than the time + that would be expected with the processing at the + dsi link rate since anyways this would be the maximum + transfer time that could be achieved. + If ping pong split enabled, this time should not be higher + than two times the dsi link rate time. + If the property is not specified, then the default value is 14000 us.
\ No newline at end of file diff --git a/Documentation/devicetree/bindings/drm/msm/sde-wb.txt b/Documentation/devicetree/bindings/drm/msm/sde-wb.txt new file mode 100644 index 000000000000..863b334e438a --- /dev/null +++ b/Documentation/devicetree/bindings/drm/msm/sde-wb.txt @@ -0,0 +1,23 @@ +QTI Snapdragon Display Engine (SDE) writeback display + +Required properties: +- compatible: "qcom,wb-display" + +Optional properties: +- cell-index: Index of writeback device instance. + Default to 0 if not specified. +- label: String to describe this writeback display. + Default to "unknown" if not specified. + +Example: + +/ { + ... + + sde_wb: qcom,wb-display { + compatible = "qcom,wb-display"; + cell-index = <2>; + label = "wb_display"; + }; + +}; diff --git a/Documentation/devicetree/bindings/fb/mdss-dsi-panel.txt b/Documentation/devicetree/bindings/fb/mdss-dsi-panel.txt index b676efe97b8b..4fd0c2ecbc6e 100644 --- a/Documentation/devicetree/bindings/fb/mdss-dsi-panel.txt +++ b/Documentation/devicetree/bindings/fb/mdss-dsi-panel.txt @@ -628,6 +628,7 @@ Example: qcom,mdss-dsi-underflow-color = <0xff>; qcom,mdss-dsi-bl-min-level = <1>; qcom,mdss-dsi-bl-max-level = < 15>; + qcom,mdss-brightness-max-level = <255>; qcom,mdss-dsi-interleave-mode = <0>; qcom,mdss-dsi-panel-type = "dsi_video_mode"; qcom,mdss-dsi-te-check-enable; |