code:
What:		/sys/bus/coresight/devices/etm<N>/enable_source
Date:		April 2015
KernelVersion:  4.01
Contact:        Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Enable/disable tracing on this specific trace entiry.
		Enabling a source implies the source has been configured
		properly and a sink has been identidifed for it.  The path
		of coresight components linking the source to the sink is
		configured and managed automatically by the coresight framework.

What:		/sys/bus/coresight/devices/etm<N>/cpu
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) The CPU this tracing entity is associated with.

What:		/sys/bus/coresight/devices/etm<N>/nr_pe_cmp
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Indicates the number of PE comparator inputs that are
		available for tracing.

What:		/sys/bus/coresight/devices/etm<N>/nr_addr_cmp
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Indicates the number of address comparator pairs that are
		available for tracing.

What:		/sys/bus/coresight/devices/etm<N>/nr_cntr
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Indicates the number of counters that are available for
		tracing.

What:		/sys/bus/coresight/devices/etm<N>/nr_ext_inp
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Indicates how many external inputs are implemented.

What:		/sys/bus/coresight/devices/etm<N>/numcidc
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Indicates the number of Context ID comparators that are
		available for tracing.

What:		/sys/bus/coresight/devices/etm<N>/numvmidc
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Indicates the number of VMID comparators that are available
		for tracing.

What:		/sys/bus/coresight/devices/etm<N>/nrseqstate
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Indicates the number of sequencer states that are
		implemented.

What:		/sys/bus/coresight/devices/etm<N>/nr_resource
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Indicates the number of resource selection pairs that are
		available for tracing.

What:		/sys/bus/coresight/devices/etm<N>/nr_ss_cmp
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Indicates the number of single-shot comparator controls that
		are available for tracing.

What:		/sys/bus/coresight/devices/etm<N>/reset
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(Write) Cancels all configuration on a trace unit and set it back
		to its boot configuration.

What:		/sys/bus/coresight/devices/etm<N>/mode
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Controls various modes supported by this ETM, for example
		P0 instruction tracing, branch broadcast, cycle counting and
		context ID tracing.

What:		/sys/bus/coresight/devices/etm<N>/pe
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Controls which PE to trace.

What:		/sys/bus/coresight/devices/etm<N>/event
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Controls the tracing of arbitrary events from bank 0 to 3.

What:		/sys/bus/coresight/devices/etm<N>/event_instren
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Controls the behavior of the events in bank 0 to 3.

What:		/sys/bus/coresight/devices/etm<N>/event_ts
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Controls the insertion of global timestamps in the trace
		streams.

What:		/sys/bus/coresight/devices/etm<N>/syncfreq
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Controls how often trace synchronization requests occur.

What:		/sys/bus/coresight/devices/etm<N>/cyc_threshold
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Sets the threshold value for cycle counting.

What:		/sys/bus/coresight/devices/etm<N>/bb_ctrl
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Controls which regions in the memory map are enabled to
		use branch broadcasting.

What:		/sys/bus/coresight/devices/etm<N>/event_vinst
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Controls instruction trace filtering.

What:		/sys/bus/coresight/devices/etm<N>/s_exlevel_vinst
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) In Secure state, each bit controls whether instruction
		tracing is enabled for the corresponding exception level.

What:		/sys/bus/coresight/devices/etm<N>/ns_exlevel_vinst
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) In non-secure state, each bit controls whether instruction
		tracing is enabled for the corresponding exception level.

What:		/sys/bus/coresight/devices/etm<N>/addr_idx
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Select which address comparator or pair (of comparators) to
		work with.

What:		/sys/bus/coresight/devices/etm<N>/addr_instdatatype
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Controls what type of comparison the trace unit performs.

What:		/sys/bus/coresight/devices/etm<N>/addr_single
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Used to setup single address comparator values.

What:		/sys/bus/coresight/devices/etm<N>/addr_range
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Used to setup address range comparator values.

What:		/sys/bus/coresight/devices/etm<N>/seq_idx
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Select which sequensor.

What:		/sys/bus/coresight/devices/etm<N>/seq_state
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Use this to set, or read, the sequencer state.

What:		/sys/bus/coresight/devices/etm<N>/seq_event
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Moves the sequencer state to a specific state.

What:		/sys/bus/coresight/devices/etm<N>/seq_reset_event
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Moves the sequencer to state 0 when a programmed event
		occurs.

What:		/sys/bus/coresight/devices/etm<N>/cntr_idx
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Select which counter unit to work with.

What:		/sys/bus/coresight/devices/etm<N>/cntrldvr
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) This sets or returns the reload count value of the
		specific counter.

What:		/sys/bus/coresight/devices/etm<N>/cntr_val
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) This sets or returns the current count value of the
                specific counter.

What:		/sys/bus/coresight/devices/etm<N>/cntr_ctrl
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Controls the operation of the selected counter.

What:		/sys/bus/coresight/devices/etm<N>/res_idx
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Select which resource selection unit to work with.

What:		/sys/bus/coresight/devices/etm<N>/res_ctrl
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description: 	(RW) Controls the selection of the resources in the trace unit.

What:		/sys/bus/coresight/devices/etm<N>/ctxid_idx
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Select which context ID comparator to work with.

What:		/sys/bus/coresight/devices/etm<N>/ctxid_pid
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Get/Set the context ID comparator value to trigger on.

What:		/sys/bus/coresight/devices/etm<N>/ctxid_masks
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Mask for all 8 context ID comparator value
		registers (if implemented).

What:		/sys/bus/coresight/devices/etm<N>/vmid_idx
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Select which virtual machine ID comparator to work with.

What:		/sys/bus/coresight/devices/etm<N>/vmid_val
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Get/Set the virtual machine ID comparator value to
		trigger on.

What:		/sys/bus/coresight/devices/etm<N>/vmid_masks
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Mask for all 8 virtual machine ID comparator value
		registers (if implemented).

What:		/sys/bus/coresight/devices/etm<N>/addr_exlevel_s_ns
Date:		December 2019
KernelVersion:	5.5
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Set the Exception Level matching bits for secure and
		non-secure exception levels.

What:		/sys/bus/coresight/devices/etm<N>/vinst_pe_cmp_start_stop
Date:		December 2019
KernelVersion:	5.5
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Access the start stop control register for PE input
		comparators.

What:		/sys/bus/coresight/devices/etm<N>/addr_cmp_view
Date:		December 2019
KernelVersion:	5.5
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Print the current settings for the selected address
		comparator.

What:		/sys/bus/coresight/devices/etm<N>/sshot_idx
Date:		December 2019
KernelVersion:	5.5
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Select the single shot control register to access.

What:		/sys/bus/coresight/devices/etm<N>/sshot_ctrl
Date:		December 2019
KernelVersion:	5.5
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Access the selected single shot control register.

What:		/sys/bus/coresight/devices/etm<N>/sshot_status
Date:		December 2019
KernelVersion:	5.5
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Print the current value of the selected single shot
		status register.

What:		/sys/bus/coresight/devices/etm<N>/sshot_pe_ctrl
Date:		December 2019
KernelVersion:	5.5
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Access the selected single show PE comparator control
		register.

What:		/sys/bus/coresight/devices/etm<N>/mgmt/trcoslsr
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Print the content of the OS Lock Status Register (0x304).
		The value it taken directly  from the HW.

What:		/sys/bus/coresight/devices/etm<N>/mgmt/trcpdcr
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Print the content of the Power Down Control Register
		(0x310).  The value is taken directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/mgmt/trcpdsr
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Print the content of the Power Down Status Register
		(0x314).  The value is taken directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/mgmt/trclsr
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Print the content of the SW Lock Status Register
		(0xFB4).  The value is taken directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/mgmt/trcauthstatus
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Print the content of the Authentication Status Register
		(0xFB8).  The value is taken directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/mgmt/trcdevid
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Print the content of the Device ID Register
		(0xFC8).  The value is taken directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/mgmt/trcdevarch
Date:		January 2021
KernelVersion:	5.12
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Print the content of the Device Architecture Register
		(offset 0xFBC).  The value is taken directly read
		from the HW.

What:		/sys/bus/coresight/devices/etm<N>/mgmt/trcdevtype
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Print the content of the Device Type Register
		(0xFCC).  The value is taken directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/mgmt/trcpidr0
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Print the content of the Peripheral ID0 Register
		(0xFE0).  The value is taken directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/mgmt/trcpidr1
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Print the content of the Peripheral ID1 Register
		(0xFE4).  The value is taken directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/mgmt/trcpidr2
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Print the content of the Peripheral ID2 Register
		(0xFE8).  The value is taken directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/mgmt/trcpidr3
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Print the content of the Peripheral ID3 Register
		(0xFEC).  The value is taken directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/mgmt/trcconfig
Date:		February 2016
KernelVersion:	4.07
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Print the content of the trace configuration register
		(0x010) as currently set by SW.

What:		/sys/bus/coresight/devices/etm<N>/mgmt/trctraceid
Date:		February 2016
KernelVersion:	4.07
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Print the content of the trace ID register (0x040).

What:		/sys/bus/coresight/devices/etm<N>/trcidr/trcidr0
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Returns the tracing capabilities of the trace unit (0x1E0).
		The value is taken directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/trcidr/trcidr1
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Returns the tracing capabilities of the trace unit (0x1E4).
		The value is taken directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/trcidr/trcidr2
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Returns the maximum size of the data value, data address,
		VMID, context ID and instuction address in the trace unit
		(0x1E8).  The value is taken directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/trcidr/trcidr3
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Returns the value associated with various resources
		available to the trace unit.  See the Trace Macrocell
		architecture specification for more details (0x1E8).
		The value is taken directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/trcidr/trcidr4
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Returns how many resources the trace unit supports (0x1F0).
		The value is taken directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/trcidr/trcidr5
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Returns how many resources the trace unit supports (0x1F4).
		The value is taken directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/trcidr/trcidr8
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Returns the maximum speculation depth of the instruction
		trace stream. (0x180).  The value is taken directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/trcidr/trcidr9
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Returns the number of P0 right-hand keys that the trace unit
		can use (0x184).  The value is taken directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/trcidr/trcidr10
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Returns the number of P1 right-hand keys that the trace unit
		can use (0x188).  The value is taken directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/trcidr/trcidr11
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Returns the number of special P1 right-hand keys that the
		trace unit can use (0x18C).  The value is taken directly from
		the HW.

What:		/sys/bus/coresight/devices/etm<N>/trcidr/trcidr12
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Returns the number of conditional P1 right-hand keys that
		the trace unit can use (0x190).  The value is taken directly
		from the HW.

What:		/sys/bus/coresight/devices/etm<N>/trcidr/trcidr13
Date:		April 2015
KernelVersion:	4.01
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Returns the number of special conditional P1 right-hand keys
		that the trace unit can use (0x194).  The value is taken
		directly from the HW.

What:		/sys/bus/coresight/devices/etm<N>/ts_source
Date:		October 2022
KernelVersion:	6.1
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org> or Suzuki K Poulose <suzuki.poulose@arm.com>
Description:	(Read) When FEAT_TRF is implemented, value of TRFCR_ELx.TS used for
		trace session. Otherwise -1 indicates an unknown time source. Check
		trcidr0.tssize to see if a global timestamp is available.


code:
What:		/sys/bus/coresight/devices/<memory_map>.funnel/funnel_ctrl
Date:		November 2014
KernelVersion:	3.19
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Enables the slave ports and defines the hold time of the
		slave ports.

What:		/sys/bus/coresight/devices/<memory_map>.funnel/priority
Date:		November 2014
KernelVersion:	3.19
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Defines input port priority order.

repo_name: angery/linux


code:
What:		/sys/bus/coresight/devices/<memory_map>.stm/enable_source
Date:		April 2016
KernelVersion:	4.7
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Enable/disable tracing on this specific trace macrocell.
		Enabling the trace macrocell implies it has been configured
		properly and a sink has been identified for it.  The path
		of coresight components linking the source to the sink is
		configured and managed automatically by the coresight framework.

What:		/sys/bus/coresight/devices/<memory_map>.stm/hwevent_enable
Date:		April 2016
KernelVersion:	4.7
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Provides access to the HW event enable register, used in
		conjunction with HW event bank select register.

What:		/sys/bus/coresight/devices/<memory_map>.stm/hwevent_select
Date:		April 2016
KernelVersion:	4.7
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Gives access to the HW event block select register
		(STMHEBSR) in order to configure up to 256 channels.  Used in
		conjunction with "hwevent_enable" register as described above.

What:		/sys/bus/coresight/devices/<memory_map>.stm/port_enable
Date:		April 2016
KernelVersion:	4.7
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Provides access to the stimulus port enable register
		(STMSPER).  Used in conjunction with "port_select" described
		below.

What:		/sys/bus/coresight/devices/<memory_map>.stm/port_select
Date:		April 2016
KernelVersion:	4.7
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Used to determine which bank of stimulus port bit in
		register STMSPER (see above) apply to.

What:		/sys/bus/coresight/devices/<memory_map>.stm/status
Date:		April 2016
KernelVersion:	4.7
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) List various control and status registers.  The specific
		layout and content is driver specific.

What:		/sys/bus/coresight/devices/<memory_map>.stm/traceid
Date:		April 2016
KernelVersion:	4.7
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Holds the trace ID that will appear in the trace stream
		coming from this trace entity.


code:
What:		/sys/bus/coresight/devices/<memory_map>.tmc/trigger_cntr
Date:		November 2014
KernelVersion:	3.19
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Disables write access to the Trace RAM by stopping the
		formatter after a defined number of words have been stored
		following the trigger event. Additional interface for this
		driver are expected to be added as it matures.

What:           /sys/bus/coresight/devices/<memory_map>.tmc/mgmt/rsz
Date:           March 2016
KernelVersion:  4.7
Contact:        Mathieu Poirier <mathieu.poirier@linaro.org>
Description:    (Read) Defines the size, in 32-bit words, of the local RAM buffer.
                The value is read directly from HW register RSZ, 0x004.

What:           /sys/bus/coresight/devices/<memory_map>.tmc/mgmt/sts
Date:           March 2016
KernelVersion:  4.7
Contact:        Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Shows the value held by the TMC status register.  The value
                is read directly from HW register STS, 0x00C.

What:		/sys/bus/coresight/devices/<memory_map>.tmc/mgmt/rrp
Date:		March 2016
KernelVersion:	4.7
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Shows the value held by the TMC RAM Read Pointer register
		that is used to read entries from the Trace RAM over the APB
		interface.  The value is read directly from HW register RRP,
		0x014.

What:		/sys/bus/coresight/devices/<memory_map>.tmc/mgmt/rwp
Date:		March 2016
KernelVersion:	4.7
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Shows the value held by the TMC RAM Write Pointer register
		that is used to sets the write pointer to write entries from
		the CoreSight bus into the Trace RAM. The value is read directly
		from HW register RWP, 0x018.

What:		/sys/bus/coresight/devices/<memory_map>.tmc/mgmt/trg
Date:		March 2016
KernelVersion:	4.7
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Similar to "trigger_cntr" above except that this value is
		read directly from HW register TRG, 0x01C.

What:		/sys/bus/coresight/devices/<memory_map>.tmc/mgmt/ctl
Date:		March 2016
KernelVersion:	4.7
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Shows the value held by the TMC Control register. The value
		is read directly from HW register CTL, 0x020.

What:		/sys/bus/coresight/devices/<memory_map>.tmc/mgmt/ffsr
Date:		March 2016
KernelVersion:	4.7
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Shows the value held by the TMC Formatter and Flush Status
		register.  The value is read directly from HW register FFSR,
		0x300.

What:		/sys/bus/coresight/devices/<memory_map>.tmc/mgmt/ffcr
Date:		March 2016
KernelVersion:	4.7
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Shows the value held by the TMC Formatter and Flush Control
		register.  The value is read directly from HW register FFCR,
		0x304.

What:		/sys/bus/coresight/devices/<memory_map>.tmc/mgmt/mode
Date:		March 2016
KernelVersion:	4.7
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Shows the value held by the TMC Mode register, which
		indicate the mode the device has been configured to enact.  The
		The value is read directly from the MODE register, 0x028.

What:		/sys/bus/coresight/devices/<memory_map>.tmc/mgmt/devid
Date:		March 2016
KernelVersion:	4.7
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(Read) Indicates the capabilities of the Coresight TMC.
		The value is read directly from the DEVID register, 0xFC8,

What:		/sys/bus/coresight/devices/<memory_map>.tmc/buffer_size
Date:		December 2018
KernelVersion:	4.19
Contact:	Mathieu Poirier <mathieu.poirier@linaro.org>
Description:	(RW) Size of the trace buffer for TMC-ETR when used in SYSFS
		mode. Writable only for TMC-ETR configurations. The value
		should be aligned to the kernel pagesize.


code:
What:		/sys/bus/coresight/devices/trbe<cpu>/align
Date:		March 2021
KernelVersion:	5.13
Contact:	Anshuman Khandual <anshuman.khandual@arm.com>
Description:	(Read) Shows the TRBE write pointer alignment. This value
		is fetched from the TRBIDR register.

What:		/sys/bus/coresight/devices/trbe<cpu>/flag
Date:		March 2021
KernelVersion:	5.13
Contact:	Anshuman Khandual <anshuman.khandual@arm.com>
Description:	(Read) Shows if TRBE updates in the memory are with access
		and dirty flag updates as well. This value is fetched from
		the TRBIDR register.


code:
What:		/sys/bus/counter/devices/counterX/countY/count
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Count data of Count Y represented as a string.

What:		/sys/bus/counter/devices/counterX/countY/capture
KernelVersion:	6.1
Contact:	linux-iio@vger.kernel.org
Description:
		Historical capture of the Count Y count data.

What:		/sys/bus/counter/devices/counterX/countY/ceiling
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Count value ceiling for Count Y. This is the upper limit for the
		respective counter.

What:		/sys/bus/counter/devices/counterX/countY/floor
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Count value floor for Count Y. This is the lower limit for the
		respective counter.

What:		/sys/bus/counter/devices/counterX/countY/count_mode
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Count mode for channel Y. The ceiling and floor values for
		Count Y are used by the count mode where required. The following
		count modes are available:

		normal:
			Counting is continuous in either direction.

		range limit:
			An upper or lower limit is set, mimicking limit switches
			in the mechanical counterpart. The upper limit is set to
			the Count Y ceiling value, while the lower limit is set
			to the Count Y floor value. The counter freezes at
			count = ceiling when counting up, and at count = floor
			when counting down. At either of these limits, the
			counting is resumed only when the count direction is
			reversed.

		non-recycle:
			The counter is disabled whenever a counter overflow or
			underflow takes place. The counter is re-enabled when a
			new count value is loaded to the counter via a preset
			operation or direct write.

		modulo-n:
			A count value boundary is set between the Count Y floor
			value and the Count Y ceiling value. The counter is
			reset to the Count Y floor value at count = ceiling when
			counting up, while the counter is set to the Count Y
			ceiling value at count = floor when counting down; the
			counter does not freeze at the boundary points, but
			counts continuously throughout.

What:		/sys/bus/counter/devices/counterX/countY/count_mode_available
What:		/sys/bus/counter/devices/counterX/countY/error_noise_available
What:		/sys/bus/counter/devices/counterX/countY/function_available
What:		/sys/bus/counter/devices/counterX/countY/prescaler_available
What:		/sys/bus/counter/devices/counterX/countY/signalZ_action_available
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Discrete set of available values for the respective Count Y
		configuration are listed in this file. Values are delimited by
		newline characters.

What:		/sys/bus/counter/devices/counterX/countY/direction
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Read-only attribute that indicates the count direction of Count
		Y. Two count directions are available: forward and backward.

		Some counter devices are able to determine the direction of
		their counting. For example, quadrature encoding counters can
		determine the direction of movement by evaluating the leading
		phase of the respective A and B quadrature encoding signals.
		This attribute exposes such count directions.

What:		/sys/bus/counter/devices/counterX/countY/enable
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Whether channel Y counter is enabled. Valid attribute values are
		boolean.

		This attribute is intended to serve as a pause/unpause mechanism
		for Count Y. Suppose a counter device is used to count the total
		movement of a conveyor belt: this attribute allows an operator
		to temporarily pause the counter, service the conveyor belt,
		and then finally unpause the counter to continue where it had
		left off.

What:		/sys/bus/counter/devices/counterX/countY/error_noise
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Read-only attribute that indicates whether excessive noise is
		present at the channel Y counter inputs.

What:		/sys/bus/counter/devices/counterX/countY/function
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Count function mode of Count Y; count function evaluation is
		triggered by conditions specified by the Count Y signalZ_action
		attributes. The following count functions are available:

		increase:
			Accumulated count is incremented.

		decrease:
			Accumulated count is decremented.

		pulse-direction:
			Rising edges on signal A updates the respective count.
			The input level of signal B determines direction.

		quadrature x1 a:
			If direction is forward, rising edges on quadrature pair
			signal A updates the respective count; if the direction
			is backward, falling edges on quadrature pair signal A
			updates the respective count. Quadrature encoding
			determines the direction.

		quadrature x1 b:
			If direction is forward, rising edges on quadrature pair
			signal B updates the respective count; if the direction
			is backward, falling edges on quadrature pair signal B
			updates the respective count. Quadrature encoding
			determines the direction.

		quadrature x2 a:
			Any state transition on quadrature pair signal A updates
			the respective count. Quadrature encoding determines the
			direction.

		quadrature x2 b:
			Any state transition on quadrature pair signal B updates
			the respective count. Quadrature encoding determines the
			direction.

		quadrature x4:
			Any state transition on either quadrature pair signals
			updates	the respective count. Quadrature encoding
			determines the direction.

What:		/sys/bus/counter/devices/counterX/countY/name
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Read-only attribute that indicates the device-specific name of
		Count Y. If possible, this should match the name of the
		respective channel as it appears in the device datasheet.

What:		/sys/bus/counter/devices/counterX/countY/prescaler
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Configure the prescaler value associated with Count Y.
		On the FlexTimer, the counter clock source passes through a
		prescaler (i.e. a counter). This acts like a clock
		divider.

What:		/sys/bus/counter/devices/counterX/countY/preset
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		If the counter device supports preset registers -- registers
		used to load counter channels to a set count upon device-defined
		preset operation trigger events -- the preset count for channel
		Y is provided by this attribute.

What:		/sys/bus/counter/devices/counterX/countY/preset_enable
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Whether channel Y counter preset operation is enabled. Valid
		attribute values are boolean.

What:		/sys/bus/counter/devices/counterX/countY/signalZ_action
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Action mode of Count Y for Signal Z. This attribute indicates
		the condition of Signal Z that triggers the count function
		evaluation for Count Y. The following action modes are
		available:

		none:
			Signal does not trigger the count function. In
			Pulse-Direction count function mode, this Signal is
			evaluated as Direction.

		rising edge:
			Low state transitions to high state.

		falling edge:
			High state transitions to low state.

		both edges:
			Any state transition.

What:		/sys/bus/counter/devices/counterX/countY/num_overflows
KernelVersion:	6.1
Contact:	linux-iio@vger.kernel.org
Description:
		This attribute indicates the number of overflows of count Y.

What:		/sys/bus/counter/devices/counterX/countY/capture_component_id
What:		/sys/bus/counter/devices/counterX/countY/ceiling_component_id
What:		/sys/bus/counter/devices/counterX/countY/floor_component_id
What:		/sys/bus/counter/devices/counterX/countY/count_mode_component_id
What:		/sys/bus/counter/devices/counterX/countY/direction_component_id
What:		/sys/bus/counter/devices/counterX/countY/enable_component_id
What:		/sys/bus/counter/devices/counterX/countY/error_noise_component_id
What:		/sys/bus/counter/devices/counterX/countY/prescaler_component_id
What:		/sys/bus/counter/devices/counterX/countY/preset_component_id
What:		/sys/bus/counter/devices/counterX/countY/preset_enable_component_id
What:		/sys/bus/counter/devices/counterX/countY/signalZ_action_component_id
What:		/sys/bus/counter/devices/counterX/countY/num_overflows_component_id
What:		/sys/bus/counter/devices/counterX/signalY/cable_fault_component_id
What:		/sys/bus/counter/devices/counterX/signalY/cable_fault_enable_component_id
What:		/sys/bus/counter/devices/counterX/signalY/filter_clock_prescaler_component_id
What:		/sys/bus/counter/devices/counterX/signalY/index_polarity_component_id
What:		/sys/bus/counter/devices/counterX/signalY/polarity_component_id
What:		/sys/bus/counter/devices/counterX/signalY/synchronous_mode_component_id
What:		/sys/bus/counter/devices/counterX/signalY/frequency_component_id
KernelVersion:	5.16
Contact:	linux-iio@vger.kernel.org
Description:
		Read-only attribute that indicates the component ID of the
		respective extension or Synapse.

What:		/sys/bus/counter/devices/counterX/countY/spike_filter_ns
KernelVersion:	5.14
Contact:	linux-iio@vger.kernel.org
Description:
		If the counter device supports programmable spike filter this
		attribute indicates the value in nanoseconds where noise pulses
		shorter or equal to configured value are ignored. Value 0 means
		filter is disabled.

What:		/sys/bus/counter/devices/counterX/events_queue_size
KernelVersion:	5.16
Contact:	linux-iio@vger.kernel.org
Description:
		Size of the Counter events queue in number of struct
		counter_event data structures. The number of elements will be
		rounded-up to a power of 2.

What:		/sys/bus/counter/devices/counterX/name
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Read-only attribute that indicates the device-specific name of
		the Counter. This should match the name of the device as it
		appears in its respective datasheet.

What:		/sys/bus/counter/devices/counterX/num_counts
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Read-only attribute that indicates the total number of Counts
		belonging to the Counter.

What:		/sys/bus/counter/devices/counterX/num_signals
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Read-only attribute that indicates the total number of Signals
		belonging to the Counter.

What:		/sys/bus/counter/devices/counterX/signalY/cable_fault
KernelVersion:	5.7
Contact:	linux-iio@vger.kernel.org
Description:
		Read-only attribute that indicates whether a differential
		encoder cable fault (not connected or loose wires) is detected
		for the respective channel of Signal Y. Valid attribute values
		are boolean. Detection must first be enabled via the
		corresponding cable_fault_enable attribute.

What:		/sys/bus/counter/devices/counterX/signalY/cable_fault_enable
KernelVersion:	5.7
Contact:	linux-iio@vger.kernel.org
Description:
		Whether detection of differential encoder cable faults for the
		respective channel of Signal Y is enabled. Valid attribute
		values are boolean.

What:		/sys/bus/counter/devices/counterX/signalY/filter_clock_prescaler
KernelVersion:	5.7
Contact:	linux-iio@vger.kernel.org
Description:
		Filter clock factor for input Signal Y. This prescaler value
		affects the inputs of both quadrature pair signals.

What:		/sys/bus/counter/devices/counterX/signalY/index_polarity
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Active level of index input Signal Y; irrelevant in
		non-synchronous load mode.

What:		/sys/bus/counter/devices/counterX/signalY/index_polarity_available
What:		/sys/bus/counter/devices/counterX/signalY/synchronous_mode_available
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Discrete set of available values for the respective Signal Y
		configuration are listed in this file.

What:		/sys/bus/counter/devices/counterX/signalY/polarity
KernelVersion:	6.1
Contact:	linux-iio@vger.kernel.org
Description:
		Active level of Signal Y. The following polarity values are
		available:

		positive:
			Signal high state considered active level (rising edge).

		negative:
			Signal low state considered active level (falling edge).

What:		/sys/bus/counter/devices/counterX/signalY/name
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Read-only attribute that indicates the device-specific name of
		Signal Y. If possible, this should match the name of the
		respective signal as it appears in the device datasheet.

What:		/sys/bus/counter/devices/counterX/signalY/signal
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Signal level state of Signal Y. The following signal level
		states are available:

		low:
			Low level state.

		high:
			High level state.

What:		/sys/bus/counter/devices/counterX/signalY/synchronous_mode
KernelVersion:	5.2
Contact:	linux-iio@vger.kernel.org
Description:
		Configure the counter associated with Signal Y for
		non-synchronous or synchronous load mode. Synchronous load mode
		cannot be selected in non-quadrature (Pulse-Direction) clock
		mode.

		non-synchronous:
			A logic low level is the active level at this index
			input. The index function (as enabled via preset_enable)
			is performed directly on the active level of the index
			input.

		synchronous:
			Intended for interfacing with encoder Index output in
			quadrature clock mode. The active level is configured
			via index_polarity. The index function (as enabled via
			preset_enable) is performed synchronously with the
			quadrature clock on the active level of the index input.

What:		/sys/bus/counter/devices/counterX/signalY/frequency
KernelVersion:	6.1
Contact:	linux-iio@vger.kernel.org
Description:
		Read-only attribute that indicates the signal Y frequency, in Hz.


code:
What:		/sys/bus/css/devices/.../type
Date:		March 2008
Contact:	Cornelia Huck <cornelia.huck@de.ibm.com>
		linux-s390@vger.kernel.org
Description:	Contains the subchannel type, as reported by the hardware.
		This attribute is present for all subchannel types.

What:		/sys/bus/css/devices/.../modalias
Date:		March 2008
Contact:	Cornelia Huck <cornelia.huck@de.ibm.com>
		linux-s390@vger.kernel.org
Description:	Contains the module alias as reported with uevents.
		It is of the format css:t<type> and present for all
		subchannel types.

What:		/sys/bus/css/drivers/io_subchannel/.../chpids
Date:		December 2002
Contact:	Cornelia Huck <cornelia.huck@de.ibm.com>
		linux-s390@vger.kernel.org
Description:	Contains the ids of the channel paths used by this
		subchannel, as reported by the channel subsystem
		during subchannel recognition.

		Note: This is an I/O-subchannel specific attribute.
Users:		s390-tools, HAL

What:		/sys/bus/css/drivers/io_subchannel/.../pimpampom
Date:		December 2002
Contact:	Cornelia Huck <cornelia.huck@de.ibm.com>
		linux-s390@vger.kernel.org
Description:	Contains the PIM/PAM/POM values, as reported by the
		channel subsystem when last queried by the common I/O
		layer (this implies that this attribute is not necessarily
		in sync with the values current in the channel subsystem).

		Note: This is an I/O-subchannel specific attribute.
Users:		s390-tools, HAL

What:		/sys/bus/css/devices/.../driver_override
Date:		June 2019
Contact:	Cornelia Huck <cohuck@redhat.com>
		linux-s390@vger.kernel.org
Description:	This file allows the driver for a device to be specified. When
		specified, only a driver with a name matching the value written
		to driver_override will have an opportunity to bind to the
		device. The override is specified by writing a string to the
		driver_override file (echo vfio-ccw > driver_override) and
		may be cleared with an empty string (echo > driver_override).
		This returns the device to standard matching rules binding.
		Writing to driver_override does not automatically unbind the
		device from its current driver or make any attempt to
		automatically load the specified driver.  If no driver with a
		matching name is currently loaded in the kernel, the device
		will not bind to any driver.  This also allows devices to
		opt-out of driver binding using a driver_override name such as
		"none".  Only a single driver may be specified in the override,
		there is no support for parsing delimiters.

		Note that unlike the mechanism of the same name for pci, this
		file does not allow to override basic matching rules. I.e.,
		the driver must still match the subchannel type of the device.

path: Documentation/ABI/testing/sysfs-bus-css


code:
What:		/sys/bus/cxl/flush
Date:		Januarry, 2022
KernelVersion:	v5.18
Contact:	linux-cxl@vger.kernel.org
Description:
		(WO) If userspace manually unbinds a port the kernel schedules
		all descendant memdevs for unbind. Writing '1' to this attribute
		flushes that work.

What:		/sys/bus/cxl/devices/memX/firmware_version
Date:		December, 2020
KernelVersion:	v5.12
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) "FW Revision" string as reported by the Identify
		Memory Device Output Payload in the CXL-2.0
		specification.

What:		/sys/bus/cxl/devices/memX/ram/size
Date:		December, 2020
KernelVersion:	v5.12
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) "Volatile Only Capacity" as bytes. Represents the
		identically named field in the Identify Memory Device Output
		Payload in the CXL-2.0 specification.

What:		/sys/bus/cxl/devices/memX/pmem/size
Date:		December, 2020
KernelVersion:	v5.12
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) "Persistent Only Capacity" as bytes. Represents the
		identically named field in the Identify Memory Device Output
		Payload in the CXL-2.0 specification.

What:		/sys/bus/cxl/devices/memX/serial
Date:		January, 2022
KernelVersion:	v5.18
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) 64-bit serial number per the PCIe Device Serial Number
		capability. Mandatory for CXL devices, see CXL 2.0 8.1.12.2
		Memory Device PCIe Capabilities and Extended Capabilities.

What:		/sys/bus/cxl/devices/memX/numa_node
Date:		January, 2022
KernelVersion:	v5.18
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) If NUMA is enabled and the platform has affinitized the
		host PCI device for this memory device, emit the CPU node
		affinity for this device.

What:		/sys/bus/cxl/devices/*/devtype
Date:		June, 2021
KernelVersion:	v5.14
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) CXL device objects export the devtype attribute which
		mirrors the same value communicated in the DEVTYPE environment
		variable for uevents for devices on the "cxl" bus.

What:		/sys/bus/cxl/devices/*/modalias
Date:		December, 2021
KernelVersion:	v5.18
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) CXL device objects export the modalias attribute which
		mirrors the same value communicated in the MODALIAS environment
		variable for uevents for devices on the "cxl" bus.

What:		/sys/bus/cxl/devices/portX/uport
Date:		June, 2021
KernelVersion:	v5.14
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) CXL port objects are enumerated from either a platform
		firmware device (ACPI0017 and ACPI0016) or PCIe switch upstream
		port with CXL component registers. The 'uport' symlink connects
		the CXL portX object to the device that published the CXL port
		capability.

What:		/sys/bus/cxl/devices/portX/dportY
Date:		June, 2021
KernelVersion:	v5.14
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) CXL port objects are enumerated from either a platform
		firmware device (ACPI0017 and ACPI0016) or PCIe switch upstream
		port with CXL component registers. The 'dportY' symlink
		identifies one or more downstream ports that the upstream port
		may target in its decode of CXL memory resources.  The 'Y'
		integer reflects the hardware port unique-id used in the
		hardware decoder target list.

What:		/sys/bus/cxl/devices/decoderX.Y
Date:		June, 2021
KernelVersion:	v5.14
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) CXL decoder objects are enumerated from either a platform
		firmware description, or a CXL HDM decoder register set in a
		PCIe device (see CXL 2.0 section 8.2.5.12 CXL HDM Decoder
		Capability Structure). The 'X' in decoderX.Y represents the
		cxl_port container of this decoder, and 'Y' represents the
		instance id of a given decoder resource.

What:		/sys/bus/cxl/devices/decoderX.Y/{start,size}
Date:		June, 2021
KernelVersion:	v5.14
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) The 'start' and 'size' attributes together convey the
		physical address base and number of bytes mapped in the
		decoder's decode window. For decoders of devtype
		"cxl_decoder_root" the address range is fixed. For decoders of
		devtype "cxl_decoder_switch" the address is bounded by the
		decode range of the cxl_port ancestor of the decoder's cxl_port,
		and dynamically updates based on the active memory regions in
		that address space.

What:		/sys/bus/cxl/devices/decoderX.Y/locked
Date:		June, 2021
KernelVersion:	v5.14
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) CXL HDM decoders have the capability to lock the
		configuration until the next device reset. For decoders of
		devtype "cxl_decoder_root" there is no standard facility to
		unlock them.  For decoders of devtype "cxl_decoder_switch" a
		secondary bus reset, of the PCIe bridge that provides the bus
		for this decoders uport, unlocks / resets the decoder.

What:		/sys/bus/cxl/devices/decoderX.Y/target_list
Date:		June, 2021
KernelVersion:	v5.14
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) Display a comma separated list of the current decoder
		target configuration. The list is ordered by the current
		configured interleave order of the decoder's dport instances.
		Each entry in the list is a dport id.

What:		/sys/bus/cxl/devices/decoderX.Y/cap_{pmem,ram,type2,type3}
Date:		June, 2021
KernelVersion:	v5.14
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) When a CXL decoder is of devtype "cxl_decoder_root", it
		represents a fixed memory window identified by platform
		firmware. A fixed window may only support a subset of memory
		types. The 'cap_*' attributes indicate whether persistent
		memory, volatile memory, accelerator memory, and / or expander
		memory may be mapped behind this decoder's memory window.

What:		/sys/bus/cxl/devices/decoderX.Y/target_type
Date:		June, 2021
KernelVersion:	v5.14
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) When a CXL decoder is of devtype "cxl_decoder_switch", it
		can optionally decode either accelerator memory (type-2) or
		expander memory (type-3). The 'target_type' attribute indicates
		the current setting which may dynamically change based on what
		memory regions are activated in this decode hierarchy.

What:		/sys/bus/cxl/devices/endpointX/CDAT
Date:		July, 2022
KernelVersion:	v5.20
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) If this sysfs entry is not present no DOE mailbox was
		found to support CDAT data.  If it is present and the length of
		the data is 0 reading the CDAT data failed.  Otherwise the CDAT
		data is reported.

What:		/sys/bus/cxl/devices/decoderX.Y/mode
Date:		May, 2022
KernelVersion:	v5.20
Contact:	linux-cxl@vger.kernel.org
Description:
		(RW) When a CXL decoder is of devtype "cxl_decoder_endpoint" it
		translates from a host physical address range, to a device local
		address range. Device-local address ranges are further split
		into a 'ram' (volatile memory) range and 'pmem' (persistent
		memory) range. The 'mode' attribute emits one of 'ram', 'pmem',
		'mixed', or 'none'. The 'mixed' indication is for error cases
		when a decoder straddles the volatile/persistent partition
		boundary, and 'none' indicates the decoder is not actively
		decoding, or no DPA allocation policy has been set.

		'mode' can be written, when the decoder is in the 'disabled'
		state, with either 'ram' or 'pmem' to set the boundaries for the
		next allocation.

What:		/sys/bus/cxl/devices/decoderX.Y/dpa_resource
Date:		May, 2022
KernelVersion:	v5.20
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) When a CXL decoder is of devtype "cxl_decoder_endpoint",
		and its 'dpa_size' attribute is non-zero, this attribute
		indicates the device physical address (DPA) base address of the
		allocation.

What:		/sys/bus/cxl/devices/decoderX.Y/dpa_size
Date:		May, 2022
KernelVersion:	v5.20
Contact:	linux-cxl@vger.kernel.org
Description:
		(RW) When a CXL decoder is of devtype "cxl_decoder_endpoint" it
		translates from a host physical address range, to a device local
		address range. The range, base address plus length in bytes, of
		DPA allocated to this decoder is conveyed in these 2 attributes.
		Allocations can be mutated as long as the decoder is in the
		disabled state. A write to 'dpa_size' releases the previous DPA
		allocation and then attempts to allocate from the free capacity
		in the device partition referred to by 'decoderX.Y/mode'.
		Allocate and free requests can only be performed on the highest
		instance number disabled decoder with non-zero size. I.e.
		allocations are enforced to occur in increasing 'decoderX.Y/id'
		order and frees are enforced to occur in decreasing
		'decoderX.Y/id' order.

What:		/sys/bus/cxl/devices/decoderX.Y/interleave_ways
Date:		May, 2022
KernelVersion:	v5.20
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) The number of targets across which this decoder's host
		physical address (HPA) memory range is interleaved. The device
		maps every Nth block of HPA (of size ==
		'interleave_granularity') to consecutive DPA addresses. The
		decoder's position in the interleave is determined by the
		device's (endpoint or switch) switch ancestry. For root
		decoders their interleave is specified by platform firmware and
		they only specify a downstream target order for host bridges.

What:		/sys/bus/cxl/devices/decoderX.Y/interleave_granularity
Date:		May, 2022
KernelVersion:	v5.20
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) The number of consecutive bytes of host physical address
		space this decoder claims at address N before the decode rotates
		to the next target in the interleave at address N +
		interleave_granularity (assuming N is aligned to
		interleave_granularity).

What:		/sys/bus/cxl/devices/decoderX.Y/create_pmem_region
Date:		May, 2022
KernelVersion:	v5.20
Contact:	linux-cxl@vger.kernel.org
Description:
		(RW) Write a string in the form 'regionZ' to start the process
		of defining a new persistent memory region (interleave-set)
		within the decode range bounded by root decoder 'decoderX.Y'.
		The value written must match the current value returned from
		reading this attribute. An atomic compare exchange operation is
		done on write to assign the requested id to a region and
		allocate the region-id for the next creation attempt. EBUSY is
		returned if the region name written does not match the current
		cached value.

What:		/sys/bus/cxl/devices/decoderX.Y/delete_region
Date:		May, 2022
KernelVersion:	v5.20
Contact:	linux-cxl@vger.kernel.org
Description:
		(WO) Write a string in the form 'regionZ' to delete that region,
		provided it is currently idle / not bound to a driver.

What:		/sys/bus/cxl/devices/regionZ/uuid
Date:		May, 2022
KernelVersion:	v5.20
Contact:	linux-cxl@vger.kernel.org
Description:
		(RW) Write a unique identifier for the region. This field must
		be set for persistent regions and it must not conflict with the
		UUID of another region.

What:		/sys/bus/cxl/devices/regionZ/interleave_granularity
Date:		May, 2022
KernelVersion:	v5.20
Contact:	linux-cxl@vger.kernel.org
Description:
		(RW) Set the number of consecutive bytes each device in the
		interleave set will claim. The possible interleave granularity
		values are determined by the CXL spec and the participating
		devices.

What:		/sys/bus/cxl/devices/regionZ/interleave_ways
Date:		May, 2022
KernelVersion:	v5.20
Contact:	linux-cxl@vger.kernel.org
Description:
		(RW) Configures the number of devices participating in the
		region is set by writing this value. Each device will provide
		1/interleave_ways of storage for the region.

What:		/sys/bus/cxl/devices/regionZ/size
Date:		May, 2022
KernelVersion:	v5.20
Contact:	linux-cxl@vger.kernel.org
Description:
		(RW) System physical address space to be consumed by the region.
		When written trigger the driver to allocate space out of the
		parent root decoder's address space. When read the size of the
		address space is reported and should match the span of the
		region's resource attribute. Size shall be set after the
		interleave configuration parameters. Once set it cannot be
		changed, only freed by writing 0. The kernel makes no guarantees
		that data is maintained over an address space freeing event, and
		there is no guarantee that a free followed by an allocate
		results in the same address being allocated.

What:		/sys/bus/cxl/devices/regionZ/resource
Date:		May, 2022
KernelVersion:	v5.20
Contact:	linux-cxl@vger.kernel.org
Description:
		(RO) A region is a contiguous partition of a CXL root decoder
		address space. Region capacity is allocated by writing to the
		size attribute, the resulting physical address space determined
		by the driver is reflected here. It is therefore not useful to
		read this before writing a value to the size attribute.

What:		/sys/bus/cxl/devices/regionZ/target[0..N]
Date:		May, 2022
KernelVersion:	v5.20
Contact:	linux-cxl@vger.kernel.org
Description:
		(RW) Write an endpoint decoder object name to 'targetX' where X
		is the intended position of the endpoint device in the region
		interleave and N is the 'interleave_ways' setting for the
		region. ENXIO is returned if the write results in an impossible
		to map decode scenario, like the endpoint is unreachable at that
		position relative to the root decoder interleave. EBUSY is
		returned if the position in the region is already occupied, or
		if the region is not in a state to accept interleave
		configuration changes. EINVAL is returned if the object name is
		not an endpoint decoder. Once all positions have been
		successfully written a final validation for decode conflicts is
		performed before activating the region.

What:		/sys/bus/cxl/devices/regionZ/commit
Date:		May, 2022
KernelVersion:	v5.20
Contact:	linux-cxl@vger.kernel.org
Description:
		(RW) Write a boolean 'true' string value to this attribute to
		trigger the region to transition from the software programmed
		state to the actively decoding in hardware state. The commit
		operation in addition to validating that the region is in proper
		configured state, validates that the decoders are being
		committed in spec mandated order (last committed decoder id +
		1), and checks that the hardware accepts the commit request.
		Reading this value indicates whether the region is committed or
		not.

path: Documentation/ABI/testing/sysfs-bus-cxl


code:
What:		/sys/bus/dfl/devices/dfl_dev.X/type
Date:		Aug 2020
KernelVersion:	5.10
Contact:	Xu Yilun <yilun.xu@intel.com>
Description:	Read-only. It returns type of DFL FIU of the device. Now DFL
		supports 2 FIU types, 0 for FME, 1 for PORT.

		Format: 0x%x

What:		/sys/bus/dfl/devices/dfl_dev.X/feature_id
Date:		Aug 2020
KernelVersion:	5.10
Contact:	Xu Yilun <yilun.xu@intel.com>
Description:	Read-only. It returns feature identifier local to its DFL FIU
		type.

		Format: 0x%x

path: Documentation/ABI/testing/sysfs-bus-dfl


code:
What:		/sys/bus/dfl/devices/dfl_dev.X/infX_cal_fail
Date:		Oct 2020
KernelVersion:	5.12
Contact:	Xu Yilun <yilun.xu@intel.com>
Description:	Read-only. It indicates if the calibration failed on this
		memory interface. "1" for calibration failure, "0" for OK.
		Format: %u

What:		/sys/bus/dfl/devices/dfl_dev.X/infX_init_done
Date:		Oct 2020
KernelVersion:	5.12
Contact:	Xu Yilun <yilun.xu@intel.com>
Description:	Read-only. It indicates if the initialization completed on
		this memory interface. "1" for initialization complete, "0"
		for not yet.
		Format: %u

What:		/sys/bus/dfl/devices/dfl_dev.X/infX_clear
Date:		Oct 2020
KernelVersion:	5.12
Contact:	Xu Yilun <yilun.xu@intel.com>
Description:	Write-only. Writing "1" to this file will zero out all memory
		data in this memory interface. Writing of other values is
		invalid.
		Format: %u


code:
What:		/sys/bus/dfl/devices/dfl_dev.X/fec_mode
Date:		Oct 2020
KernelVersion:	5.12
Contact:	Xu Yilun <yilun.xu@intel.com>
Description:	Read-only. Returns the FEC mode of the 25G links of the
		ethernet retimers configured by Nios firmware. "rs" for Reed
		Solomon FEC, "kr" for Fire Code FEC, "no" for NO FEC.
		"not supported" if the FEC mode setting is not supported, this
		happens when the Nios firmware version major < 3, or no link is
		configured to 25G.
		Format: string

What:		/sys/bus/dfl/devices/dfl_dev.X/retimer_A_mode
Date:		Oct 2020
KernelVersion:	5.12
Contact:	Xu Yilun <yilun.xu@intel.com>
Description:	Read-only. Returns the enumeration value of the working mode of
		the retimer A configured by the Nios firmware. The value is
		read out from shared registers filled by the Nios firmware. Now
		the values could be:

		- "0": Reset
		- "1": 4x10G
		- "2": 4x25G
		- "3": 2x25G
		- "4": 2x25G+2x10G
		- "5": 1x25G

		If the Nios firmware is updated in future to support more
		retimer modes, more enumeration value is expected.
		Format: 0x%x

What:		/sys/bus/dfl/devices/dfl_dev.X/retimer_B_mode
Date:		Oct 2020
KernelVersion:	5.12
Contact:	Xu Yilun <yilun.xu@intel.com>
Description:	Read-only. Returns the enumeration value of the working mode of
		the retimer B configured by the Nios firmware. The value format
		is the same as retimer_A_mode.

What:		/sys/bus/dfl/devices/dfl_dev.X/nios_fw_version
Date:		Oct 2020
KernelVersion:	5.12
Contact:	Xu Yilun <yilun.xu@intel.com>
Description:	Read-only. Returns the version of the Nios firmware in the
		FPGA. Its format is "major.minor.patch".
		Format: %x.%x.%x


code:
What:		/sys/bus/event_source/devices/<dev>/caps
Date:		May 2022
KernelVersion:	5.19
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:
		Attribute group to describe the capabilities exposed
		for a particular pmu. Each attribute of this group can
		expose information specific to a PMU, say pmu_name, so that
		userspace can understand some of the feature which the
		platform specific PMU supports.

		One of the example available capability in supported platform
		like Intel is pmu_name, which exposes underlying CPU name known
		to the PMU driver.

		Example output in powerpc:
		grep . /sys/bus/event_source/devices/cpu/caps/*
		/sys/bus/event_source/devices/cpu/caps/pmu_name:POWER9


code:
What:		/sys/bus/event_source/devices/dfl_fmeX/format
Date:		April 2020
KernelVersion:  5.8
Contact:	Wu Hao <hao.wu@intel.com>
Description:	Read-only. Attribute group to describe the magic bits
		that go into perf_event_attr.config for a particular pmu.
		(See ABI/testing/sysfs-bus-event_source-devices-format).

		Each attribute under this group defines a bit range of the
		perf_event_attr.config. All supported attributes are listed
		below::

		    event  = "config:0-11"  - event ID
		    evtype = "config:12-15" - event type
		    portid = "config:16-23" - event source

		For example::

		    fab_mmio_read = "event=0x06,evtype=0x02,portid=0xff"

		It shows this fab_mmio_read is a fabric type (0x02) event with
		0x06 local event id for overall monitoring (portid=0xff).

What:		/sys/bus/event_source/devices/dfl_fmeX/cpumask
Date:		April 2020
KernelVersion:  5.8
Contact:	Wu Hao <hao.wu@intel.com>
Description:	Read-only. This file always returns cpu which the PMU is bound
		for access to all fme pmu performance monitoring events.

What:		/sys/bus/event_source/devices/dfl_fmeX/events
Date:		April 2020
KernelVersion:  5.8
Contact:	Wu Hao <hao.wu@intel.com>
Description:	Read-only. Attribute group to describe performance monitoring
		events specific to fme. Each attribute in this group describes
		a single performance monitoring event supported by this fme pmu.
		The name of the file is the name of the event.
		(See ABI/testing/sysfs-bus-event_source-devices-events).

		All supported performance monitoring events are listed below.

		Basic events (evtype=0x00)::

		    clock = "event=0x00,evtype=0x00,portid=0xff"

		Cache events (evtype=0x01)::

		    cache_read_hit      = "event=0x00,evtype=0x01,portid=0xff"
		    cache_read_miss     = "event=0x01,evtype=0x01,portid=0xff"
		    cache_write_hit     = "event=0x02,evtype=0x01,portid=0xff"
		    cache_write_miss    = "event=0x03,evtype=0x01,portid=0xff"
		    cache_hold_request  = "event=0x05,evtype=0x01,portid=0xff"
		    cache_data_write_port_contention =
		                          "event=0x06,evtype=0x01,portid=0xff"
		    cache_tag_write_port_contention =
		                          "event=0x07,evtype=0x01,portid=0xff"
		    cache_tx_req_stall  = "event=0x08,evtype=0x01,portid=0xff"
		    cache_rx_req_stall  = "event=0x09,evtype=0x01,portid=0xff"
		    cache_eviction      = "event=0x0a,evtype=0x01,portid=0xff"

		Fabric events (evtype=0x02)::

		    fab_pcie0_read       = "event=0x00,evtype=0x02,portid=0xff"
		    fab_pcie0_write      = "event=0x01,evtype=0x02,portid=0xff"
		    fab_pcie1_read       = "event=0x02,evtype=0x02,portid=0xff"
		    fab_pcie1_write      = "event=0x03,evtype=0x02,portid=0xff"
		    fab_upi_read         = "event=0x04,evtype=0x02,portid=0xff"
		    fab_upi_write        = "event=0x05,evtype=0x02,portid=0xff"
		    fab_mmio_read        = "event=0x06,evtype=0x02,portid=0xff"
		    fab_mmio_write       = "event=0x07,evtype=0x02,portid=0xff"
		    fab_port_pcie0_read  = "event=0x00,evtype=0x02,portid=?"
		    fab_port_pcie0_write = "event=0x01,evtype=0x02,portid=?"
		    fab_port_pcie1_read  = "event=0x02,evtype=0x02,portid=?"
		    fab_port_pcie1_write = "event=0x03,evtype=0x02,portid=?"
		    fab_port_upi_read    = "event=0x04,evtype=0x02,portid=?"
		    fab_port_upi_write   = "event=0x05,evtype=0x02,portid=?"
		    fab_port_mmio_read   = "event=0x06,evtype=0x02,portid=?"
		    fab_port_mmio_write  = "event=0x07,evtype=0x02,portid=?"

		VTD events (evtype=0x03)::

		    vtd_port_read_transaction  = "event=0x00,evtype=0x03,portid=?"
		    vtd_port_write_transaction = "event=0x01,evtype=0x03,portid=?"
		    vtd_port_devtlb_read_hit   = "event=0x02,evtype=0x03,portid=?"
		    vtd_port_devtlb_write_hit  = "event=0x03,evtype=0x03,portid=?"
		    vtd_port_devtlb_4k_fill    = "event=0x04,evtype=0x03,portid=?"
		    vtd_port_devtlb_2m_fill    = "event=0x05,evtype=0x03,portid=?"
		    vtd_port_devtlb_1g_fill    = "event=0x06,evtype=0x03,portid=?"

		VTD SIP events (evtype=0x04)::

		    vtd_sip_iotlb_4k_hit  = "event=0x00,evtype=0x04,portid=0xff"
		    vtd_sip_iotlb_2m_hit  = "event=0x01,evtype=0x04,portid=0xff"
		    vtd_sip_iotlb_1g_hit  = "event=0x02,evtype=0x04,portid=0xff"
		    vtd_sip_slpwc_l3_hit  = "event=0x03,evtype=0x04,portid=0xff"
		    vtd_sip_slpwc_l4_hit  = "event=0x04,evtype=0x04,portid=0xff"
		    vtd_sip_rcc_hit       = "event=0x05,evtype=0x04,portid=0xff"
		    vtd_sip_iotlb_4k_miss = "event=0x06,evtype=0x04,portid=0xff"
		    vtd_sip_iotlb_2m_miss = "event=0x07,evtype=0x04,portid=0xff"
		    vtd_sip_iotlb_1g_miss = "event=0x08,evtype=0x04,portid=0xff"
		    vtd_sip_slpwc_l3_miss = "event=0x09,evtype=0x04,portid=0xff"
		    vtd_sip_slpwc_l4_miss = "event=0x0a,evtype=0x04,portid=0xff"
		    vtd_sip_rcc_miss      = "event=0x0b,evtype=0x04,portid=0xff"


code:
What:		/sys/bus/event_source/devices/dsa*/format
Date:		April 2021
KernelVersion:  5.13
Contact:	Tom Zanussi <tom.zanussi@linux.intel.com>
Description:	Read-only.  Attribute group to describe the magic bits
		that go into perf_event_attr.config or
		perf_event_attr.config1 for the IDXD DSA pmu.  (See also
		ABI/testing/sysfs-bus-event_source-devices-format).

		Each attribute in this group defines a bit range in
		perf_event_attr.config or perf_event_attr.config1.
		All supported attributes are listed below (See the
		IDXD DSA Spec for possible attribute values)::

		    event_category = "config:0-3"    - event category
		    event          = "config:4-31"   - event ID

		    filter_wq      = "config1:0-31"  - workqueue filter
		    filter_tc      = "config1:32-39" - traffic class filter
		    filter_pgsz    = "config1:40-43" - page size filter
		    filter_sz      = "config1:44-51" - transfer size filter
		    filter_eng     = "config1:52-59" - engine filter

What:		/sys/bus/event_source/devices/dsa*/cpumask
Date:		April 2021
KernelVersion:  5.13
Contact:	Tom Zanussi <tom.zanussi@linux.intel.com>
Description:    Read-only.  This file always returns the cpu to which the
                IDXD DSA pmu is bound for access to all dsa pmu
		performance monitoring events.


code:
What:		/sys/devices/cpu/events/
		/sys/devices/cpu/events/branch-misses
		/sys/devices/cpu/events/cache-references
		/sys/devices/cpu/events/cache-misses
		/sys/devices/cpu/events/stalled-cycles-frontend
		/sys/devices/cpu/events/branch-instructions
		/sys/devices/cpu/events/stalled-cycles-backend
		/sys/devices/cpu/events/instructions
		/sys/devices/cpu/events/cpu-cycles

Date:		2013/01/08

Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>

Description:	Generic performance monitoring events

		A collection of performance monitoring events that may be
		supported by many/most CPUs. These events can be monitored
		using the 'perf(1)' tool.

		The contents of each file would look like:

			event=0xNNNN

		where 'N' is a hex digit and the number '0xNNNN' shows the
		"raw code" for the perf event identified by the file's
		"basename".

What: /sys/bus/event_source/devices/<pmu>/events/<event>
Date: 2014/02/24
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:	Per-pmu performance monitoring events specific to the running system

		Each file (except for some of those with a '.' in them, '.unit'
		and '.scale') in the 'events' directory describes a single
		performance monitoring event supported by the <pmu>. The name
		of the file is the name of the event.

		File contents:

			<term>[=<value>][,<term>[=<value>]]...

		Where <term> is one of the terms listed under
		/sys/bus/event_source/devices/<pmu>/format/ and <value> is
		a number is base-16 format with a '0x' prefix (lowercase only).
		If a <term> is specified alone (without an assigned value), it
		is implied that 0x1 is assigned to that <term>.

		Examples (each of these lines would be in a seperate file):

			event=0x2abc
			event=0x423,inv,cmask=0x3
			domain=0x1,offset=0x8,starting_index=0xffff
			domain=0x1,offset=0x8,core=?

		Each of the assignments indicates a value to be assigned to a
		particular set of bits (as defined by the format file
		corresponding to the <term>) in the perf_event structure passed
		to the perf_open syscall.

		In the case of the last example, a value replacing "?" would
		need to be provided by the user selecting the particular event.
		This is referred to as "event parameterization". Event
		parameters have the format 'param=?'.

What: /sys/bus/event_source/devices/<pmu>/events/<event>.unit
Date: 2014/02/24
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:	Perf event units

		A string specifying the English plural numerical unit that <event>
		(once multiplied by <event>.scale) represents.

		Example:

			Joules

What: /sys/bus/event_source/devices/<pmu>/events/<event>.scale
Date: 2014/02/24
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:	Perf event scaling factors

		A string representing a floating point value expressed in
		scientific notation to be multiplied by the event count
		recieved from the kernel to match the unit specified in the
		<event>.unit file.

		Example:

			2.3283064365386962890625e-10

		This is provided to avoid performing floating point arithmetic
		in the kernel.


code:
What:		/sys/bus/event_source/devices/<dev>/format
Date:		January 2012
KernelVersion: 3.3
Contact:	Jiri Olsa <jolsa@redhat.com>
Description:
		Attribute group to describe the magic bits that go into
		perf_event_attr::config[012] for a particular pmu.
		Each attribute of this group defines the 'hardware' bitmask
		we want to export, so that userspace can deal with sane
		name/value pairs.

		Userspace must be prepared for the possibility that attributes
		define overlapping bit ranges. For example::

			attr1 = 'config:0-23'
			attr2 = 'config:0-7'
			attr3 = 'config:12-35'

		Example: 'config1:1,6-10,44'
		Defines contents of attribute that occupies bits 1,6-10,44 of
		perf_event_attr::config1.


code:
What:           /sys/bus/event_source/devices/hv_24x7/format
Date:           September 2020
Contact:        Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
Description:    Read-only. Attribute group to describe the magic bits
                that go into perf_event_attr.config for a particular pmu.
                (See ABI/testing/sysfs-bus-event_source-devices-format).

                Each attribute under this group defines a bit range of the
                perf_event_attr.config. All supported attributes are listed
                below::

				chip = "config:16-31"
				core  = "config:16-31"
				domain = "config:0-3"
				lpar = "config:0-15"
				offset = "config:32-63"
				vcpu = "config:16-31"

                For example::

		  PM_PB_CYC =  "domain=1,offset=0x80,chip=?,lpar=0x0"

		In this event, '?' after chip specifies that
		this value will be provided by user while running this event.

What:		/sys/bus/event_source/devices/hv_24x7/interface/catalog
Date:		February 2014
Contact:	Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
Description:
		Provides access to the binary "24x7 catalog" provided by the
		hypervisor on POWER7 and 8 systems. This catalog lists events
		available from the powerpc "hv_24x7" pmu. Its format is
		documented here:
		https://raw.githubusercontent.com/jmesmon/catalog-24x7/master/hv-24x7-catalog.h

What:		/sys/bus/event_source/devices/hv_24x7/interface/catalog_length
Date:		February 2014
Contact:	Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
Description:
		A number equal to the length in bytes of the catalog. This is
		also extractable from the provided binary "catalog" sysfs entry.

What:		/sys/bus/event_source/devices/hv_24x7/interface/catalog_version
Date:		February 2014
Contact:	Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
Description:
		Exposes the "version" field of the 24x7 catalog. This is also
		extractable from the provided binary "catalog" sysfs entry.

What:		/sys/devices/hv_24x7/interface/sockets
Date:		May 2020
Contact:	Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
Description:	read only
		This sysfs interface exposes the number of sockets present in the
		system.

What:		/sys/devices/hv_24x7/interface/chipspersocket
Date:		May 2020
Contact:	Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
Description:	read only
		This sysfs interface exposes the number of chips per socket
		present in the system.

What:		/sys/devices/hv_24x7/interface/coresperchip
Date:		May 2020
Contact:	Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
Description:	read only
		This sysfs interface exposes the number of cores per chip
		present in the system.

What:		/sys/devices/hv_24x7/cpumask
Date:		July 2020
Contact:	Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
Description:	read only
		This sysfs file exposes the cpumask which is designated to make
		HCALLs to retrieve hv-24x7 pmu event counter data.

What:		/sys/bus/event_source/devices/hv_24x7/event_descs/<event-name>
Date:		February 2014
Contact:	Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
Description:
		Provides the description of a particular event as provided by
		the firmware. If firmware does not provide a description, no
		file will be created.

		Note that the event-name lacks the domain suffix appended for
		events in the events/ dir.

What:		/sys/bus/event_source/devices/hv_24x7/event_long_descs/<event-name>
Date:		February 2014
Contact:	Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
Description:
		Provides the "long" description of a particular event as
		provided by the firmware. If firmware does not provide a
		description, no file will be created.

		Note that the event-name lacks the domain suffix appended for
		events in the events/ dir.


code:
What:           /sys/bus/event_source/devices/hv_gpci/format
Date:           September 2020
Contact:        Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
Description:    Read-only. Attribute group to describe the magic bits
                that go into perf_event_attr.config for a particular pmu.
                (See ABI/testing/sysfs-bus-event_source-devices-format).

                Each attribute under this group defines a bit range of the
                perf_event_attr.config. All supported attributes are listed
                below::

				counter_info_version  = "config:16-23"
				length  = "config:24-31"
				partition_id  = "config:32-63"
				request = "config:0-31"
				sibling_part_id = "config:32-63"
				hw_chip_id = "config:32-63"
				offset = "config:32-63"
				phys_processor_idx = "config:32-63"
				secondary_index = "config:0-15"
				starting_index = "config:32-63"

                For example::

		  processor_core_utilization_instructions_completed = "request=0x94,
					phys_processor_idx=?,counter_info_version=0x8,
					length=8,offset=0x18"

		In this event, '?' after phys_processor_idx specifies this value
		this value will be provided by user while running this event.

What:		/sys/bus/event_source/devices/hv_gpci/interface/collect_privileged
Date:		February 2014
Contact:	Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
Description:
		'0' if the hypervisor is configured to forbid access to event
		counters being accumulated by other guests and to physical
		domain event counters.

		'1' if that access is allowed.

What:		/sys/bus/event_source/devices/hv_gpci/interface/ga
Date:		February 2014
Contact:	Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
Description:
		0 or 1. Indicates whether we have access to "GA" events (listed
		in arch/powerpc/perf/hv-gpci.h).

What:		/sys/bus/event_source/devices/hv_gpci/interface/expanded
Date:		February 2014
Contact:	Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
Description:
		0 or 1. Indicates whether we have access to "EXPANDED" events (listed
		in arch/powerpc/perf/hv-gpci.h).

What:		/sys/bus/event_source/devices/hv_gpci/interface/lab
Date:		February 2014
Contact:	Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
Description:
		0 or 1. Indicates whether we have access to "LAB" events (listed
		in arch/powerpc/perf/hv-gpci.h).

What:		/sys/bus/event_source/devices/hv_gpci/interface/version
Date:		February 2014
Contact:	Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
Description:
		A number indicating the version of the gpci interface that the
		hypervisor reports supporting.

What:		/sys/bus/event_source/devices/hv_gpci/interface/kernel_version
Date:		February 2014
Contact:	Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
Description:
		A number indicating the latest version of the gpci interface
		that the kernel is aware of.

What:		/sys/devices/hv_gpci/cpumask
Date:		October 2020
Contact:	Linux on PowerPC Developer List <linuxppc-dev@lists.ozlabs.org>
Description:	read only
		This sysfs file exposes the cpumask which is designated to make
		HCALLs to retrieve hv-gpci pmu event counter data.


code:
What:		/sys/bus/event_source/devices/uncore_*/alias
Date:		June 2021
KernelVersion:	5.15
Contact:	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description:	Read-only.  An attribute to describe the alias name of
		the uncore PMU if an alias exists on some platforms.
		The 'perf(1)' tool should treat both names the same.
		They both can be used to access the uncore PMU.

		Example:

		$ cat /sys/devices/uncore_cha_2/alias
		uncore_type_0_2


code:
What:		/sys/bus/fcoe/
Date:		August 2012
KernelVersion:	TBD
Contact:	Robert Love <robert.w.love@intel.com>, devel@open-fcoe.org
Description:	The FCoE bus. Attributes in this directory are control interfaces.

Attributes:

	ctlr_create:
		     'FCoE Controller' instance creation interface. Writing an
		     <ifname> to this file will allocate and populate sysfs with a
		     fcoe_ctlr_device (ctlr_X). The user can then configure any
		     per-port settings and finally write to the fcoe_ctlr_device's
		     'start' attribute to begin the kernel's discovery and login
		     process.

	ctlr_destroy:
		       'FCoE Controller' instance removal interface. Writing a
		       fcoe_ctlr_device's sysfs name to this file will log the
		       fcoe_ctlr_device out of the fabric or otherwise connected
		       FCoE devices. It will also free all kernel memory allocated
		       for this fcoe_ctlr_device and any structures associated
		       with it, this includes the scsi_host.

What:		/sys/bus/fcoe/devices/ctlr_X
Date:		March 2012
KernelVersion:	TBD
Contact:	Robert Love <robert.w.love@intel.com>, devel@open-fcoe.org
Description:	'FCoE Controller' instances on the fcoe bus.
		The FCoE Controller now has a three stage creation process.
		1) Write interface name to ctlr_create 2) Configure the FCoE
		Controller (ctlr_X) 3) Enable the FCoE Controller to begin
		discovery and login. The FCoE Controller is destroyed by
		writing its name, i.e. ctlr_X to the ctlr_delete file.

Attributes:

	fcf_dev_loss_tmo:
			  Device loss timeout period (see below). Changing
			  this value will change the dev_loss_tmo for all
			  FCFs discovered by this controller.

	mode:
			  Display or change the FCoE Controller's mode. Possible
			  modes are 'Fabric' and 'VN2VN'. If a FCoE Controller
			  is started in 'Fabric' mode then FIP FCF discovery is
			  initiated and ultimately a fabric login is attempted.
			  If a FCoE Controller is started in 'VN2VN' mode then
			  FIP VN2VN discovery and login is performed. A FCoE
			  Controller only supports one mode at a time.

	enabled:
			  Whether an FCoE controller is enabled or disabled.
			  0 if disabled, 1 if enabled. Writing either 0 or 1
			  to this file will enable or disable the FCoE controller.

	lesb/link_fail:
			  Link Error Status Block (LESB) link failure count.

	lesb/vlink_fail:
		          Link Error Status Block (LESB) virtual link
			  failure count.

	lesb/miss_fka:
			  Link Error Status Block (LESB) missed FCoE
			  Initialization Protocol (FIP) Keep-Alives (FKA).

	lesb/symb_err:
			  Link Error Status Block (LESB) symbolic error count.

	lesb/err_block:
			  Link Error Status Block (LESB) block error count.

	lesb/fcs_error:
			  Link Error Status Block (LESB) Fibre Channel
			  Services error count.

Notes: ctlr_X (global increment starting at 0)

What:		/sys/bus/fcoe/devices/fcf_X
Date:		March 2012
KernelVersion:	TBD
Contact:	Robert Love <robert.w.love@intel.com>, devel@open-fcoe.org
Description:	'FCoE FCF' instances on the fcoe bus. A FCF is a Fibre Channel
		Forwarder, which is a FCoE switch that can accept FCoE
		(Ethernet) packets, unpack them, and forward the embedded
		Fibre Channel frames into a FC fabric. It can also take
		outbound FC frames and pack them in Ethernet packets to
		be sent to their destination on the Ethernet segment.

Attributes:

	fabric_name:
		     Identifies the fabric that the FCF services.

	switch_name:
		     Identifies the FCF.

	priority:
		     The switch's priority amongst other FCFs on the same
		     fabric.

	selected:
		     1 indicates that the switch has been selected for use;
		     0 indicates that the switch will not be used.

	fc_map:
		     The Fibre Channel MAP

	vfid:
		     The Virtual Fabric ID

	mac:
		     The FCF's MAC address

	fka_period:
		     The FIP Keep-Alive period

	fabric_state: The internal kernel state

		      - "Unknown" - Initialization value
		      - "Disconnected" - No link to the FCF/fabric
		      - "Connected" - Host is connected to the FCF
		      - "Deleted" - FCF is being removed from the system

	dev_loss_tmo: The device loss timeout period for this FCF.

Notes: A device loss infrastructure similar to the FC Transport's
       is present in fcoe_sysfs. It is nice to have so that a
       link flapping adapter doesn't continually advance the count
       used to identify the discovered FCF. FCFs will exist in a
       "Disconnected" state until either the timer expires and the
       FCF becomes "Deleted" or the FCF is rediscovered and becomes
       "Connected."

Users: The first user of this interface will be the fcoeadm application,
       which is commonly packaged in the fcoe-utils package.


code:
What:           /sys/bus/platform/devices/../fsi-master/fsi0/rescan
Date:		May 2017
KernelVersion:  4.12
Contact:        linux-fsi@lists.ozlabs.org
Description:
                Initiates a FSI master scan for all connected slave devices
		on its links.

What:           /sys/bus/platform/devices/../fsi-master/fsi0/break
Date:		May 2017
KernelVersion:  4.12
Contact:        linux-fsi@lists.ozlabs.org
Description:
		Sends an FSI BREAK command on a master's communication
		link to any connected slaves.  A BREAK resets connected
		device's logic and preps it to receive further commands
		from the master.

What:           /sys/bus/platform/devices/../fsi-master/fsi0/slave@00:00/term
Date:		May 2017
KernelVersion:  4.12
Contact:        linux-fsi@lists.ozlabs.org
Description:
		Sends an FSI terminate command from the master to its
		connected slave. A terminate resets the slave's state machines
		that control access to the internally connected engines.  In
		addition the slave freezes its internal error register for
		debugging purposes.  This command is also needed to abort any
		ongoing operation in case of an expired 'Master Time Out'
		timer.

What:           /sys/bus/platform/devices/../fsi-master/fsi0/slave@00:00/raw
Date:		May 2017
KernelVersion:  4.12
Contact:        linux-fsi@lists.ozlabs.org
Description:
		Provides a means of reading/writing a 32 bit value from/to a
		specified FSI bus address.

What:           /sys/bus/platform/devices/../cfam_reset
Date:		Sept 2020
KernelVersion:  5.10
Contact:        linux-fsi@lists.ozlabs.org
Description:
		Provides a means of resetting the cfam that is attached to the
		FSI device.

path: Documentation/ABI/testing/sysfs-bus-fsi


code:
What:		/sys/bus/fsi/devices/XX.XX.00:06/sbefifoX/timeout
KernelVersion:	5.15
Contact:	eajames@linux.ibm.com
Description:
		Indicates whether or not this SBE device has experienced a
		timeout; i.e. the SBE did not respond within the time allotted
		by the driver. A value of 1 indicates that a timeout has
		ocurred and no transfers have completed since the timeout. A
		value of 0 indicates that no timeout has ocurred, or if one
		has, more recent transfers have completed successful.


code:
What:		/sys/bus/fsl-mc/drivers/.../bind
Date:		December 2016
Contact:	stuart.yoder@nxp.com
Description:
		Writing a device location to this file will cause
		the driver to attempt to bind to the device found at
		this location. The format for the location is Object.Id
		and is the same as found in /sys/bus/fsl-mc/devices/.

                For example::

		  # echo dpni.2 > /sys/bus/fsl-mc/drivers/fsl_dpaa2_eth/bind

What:		/sys/bus/fsl-mc/drivers/.../unbind
Date:		December 2016
Contact:	stuart.yoder@nxp.com
Description:
		Writing a device location to this file will cause the
		driver to attempt to unbind from the device found at
		this location. The format for the location is Object.Id
		and is the same as found in /sys/bus/fsl-mc/devices/.

                For example::

		  # echo dpni.2 > /sys/bus/fsl-mc/drivers/fsl_dpaa2_eth/unbind


code:
What:		/sys/bus/hsi
Date:		April 2012
KernelVersion:	3.4
Contact:	Carlos Chinea <carlos.chinea@nokia.com>
Description:
		High Speed Synchronous Serial Interface (HSI) is a
		serial interface mainly used for connecting application
		engines (APE) with cellular modem engines (CMT) in cellular
		handsets.
		The bus will be populated with devices (hsi_clients) representing
		the protocols available in the system. Bus drivers implement
		those protocols.

What:		/sys/bus/hsi/devices/.../modalias
Date:		April 2012
KernelVersion:	3.4
Contact:	Carlos Chinea <carlos.chinea@nokia.com>
Description:	Stores the same MODALIAS value emitted by uevent
		Format: hsi:<hsi_client device name>

path: Documentation/ABI/testing/sysfs-bus-hsi


code:
What:		/sys/bus/i2c/devices/.../trickle_charge_bypass
Date:		Jan 2017
KernelVersion:	4.11
Contact:	Enric Balletbo i Serra <eballetbo@gmail.com>
Description:    Attribute for enable/disable the trickle charge bypass
		The trickle_charge_bypass attribute allows the userspace to
                enable/disable the Trickle charge FET bypass.


code:
What:		/sys/bus/i2c/devices/.../device
Date:		February 2011
Contact:	Minkyu Kang <mk7.kang@samsung.com>
Description:
		show what device is attached

		=======  ======================
		NONE     no device
		USB      USB device is attached
		UART     UART is attached
		CHARGER  Charger is attaced
		JIG      JIG is attached
		=======  ======================

What:		/sys/bus/i2c/devices/.../switch
Date:		February 2011
Contact:	Minkyu Kang <mk7.kang@samsung.com>
Description:
		show or set the state of manual switch

		=======  ==============================
		VAUDIO   switch to VAUDIO path
		UART     switch to UART path
		AUDIO    switch to AUDIO path
		DHOST    switch to DHOST path
		AUTO     switch automatically by device
		=======  ==============================


code:
What:		/sys/bus/i2c/devices/.../heading0_input
Date:		April 2010
KernelVersion: 2.6.36?
Contact:	alan.cox@intel.com
Description:	Reports the current heading from the compass as a floating
		point value in degrees.

What:		/sys/bus/i2c/devices/.../power_state
Date:		April 2010
KernelVersion: 2.6.36?
Contact:	alan.cox@intel.com
Description:	Sets the power state of the device. 0 sets the device into
		sleep mode, 1 wakes it up.

What:		/sys/bus/i2c/devices/.../calibration
Date:		April 2010
KernelVersion: 2.6.36?
Contact:	alan.cox@intel.com
Description:	Sets the calibration on or off (1 = on, 0 = off). See the
		chip data sheet.


code:
What:		/sys/bus/i2c/devices/.../output_hvled[n]
Date:		April 2012
KernelVersion:	3.5
Contact:	Johan Hovold <jhovold@gmail.com>
Description:
		Set the controlling backlight device for high-voltage current
		sink HVLED[n] (n = 1, 2) (0, 1).

What:		/sys/bus/i2c/devices/.../output_lvled[n]
Date:		April 2012
KernelVersion:	3.5
Contact:	Johan Hovold <jhovold@gmail.com>
Description:
		Set the controlling led device for low-voltage current sink
		LVLED[n] (n = 1..5) (0..3).


code:
What:		/sys/bus/i2c/.../idle_state
Date:		January 2019
KernelVersion:	5.2
Contact:	Robert Shearman <robert.shearman@att.com>
Description:
		Value that exists only for mux devices that can be
		written to control the behaviour of the multiplexer on
		idle. Possible values:

		===========  ===============================================
		-2	     disconnect on idle, i.e. deselect the last used
			     channel, which is useful when there is a device
			     with an address that conflicts with another
			     device on another mux on the same parent bus.
		-1	     leave the mux as-is, which is the most optimal
			     setting in terms of I2C operations and is the
			     default mode.
		0..<nchans>  set the mux to a predetermined channel,
			     which is useful if there is one channel that is
			     used almost always, and you want to reduce the
			     latency for normal operations after rare
			     transactions on other channels
		===========  ===============================================


code:
What:		/sys/bus/i3c/devices/i3c-<bus-id>
KernelVersion:  5.0
Contact:	linux-i3c@vger.kernel.org
Description:
		An I3C bus. This directory will contain one sub-directory per
		I3C device present on the bus.

What:		/sys/bus/i3c/devices/i3c-<bus-id>/current_master
KernelVersion:  5.0
Contact:	linux-i3c@vger.kernel.org
Description:
		Expose the master that owns the bus (<bus-id>-<master-pid>) at
		the time this file is read. Note that bus ownership can change
		overtime, so there's no guarantee that when the read() call
		returns, the value returned is still valid.

What:		/sys/bus/i3c/devices/i3c-<bus-id>/mode
KernelVersion:  5.0
Contact:	linux-i3c@vger.kernel.org
Description:
		I3C bus mode. Can be "pure", "mixed-fast" or "mixed-slow". See
		the I3C specification for a detailed description of what each
		of these modes implies.

What:		/sys/bus/i3c/devices/i3c-<bus-id>/i3c_scl_frequency
KernelVersion:  5.0
Contact:	linux-i3c@vger.kernel.org
Description:
		The frequency (expressed in Hz) of the SCL signal when
		operating in I3C SDR mode.

What:		/sys/bus/i3c/devices/i3c-<bus-id>/i2c_scl_frequency
KernelVersion:  5.0
Contact:	linux-i3c@vger.kernel.org
Description:
		The frequency (expressed in Hz) of the SCL signal when
		operating in I2C mode.

What:		/sys/bus/i3c/devices/i3c-<bus-id>/dynamic_address
KernelVersion:  5.0
Contact:	linux-i3c@vger.kernel.org
Description:
		Dynamic address assigned to the master controller. This
		address may change if the bus is re-initialized.

What:		/sys/bus/i3c/devices/i3c-<bus-id>/bcr
KernelVersion:  5.0
Contact:	linux-i3c@vger.kernel.org
Description:
		BCR stands for Bus Characteristics Register and express the
		device capabilities in term of speed, maximum read/write
		length, etc. See the I3C specification for more details.
		This entry describes the BCR of the master controller driving
		the bus.

What:		/sys/bus/i3c/devices/i3c-<bus-id>/dcr
KernelVersion:  5.0
Contact:	linux-i3c@vger.kernel.org
Description:
		DCR stands for Device Characteristics Register and express the
		device capabilities in term of exposed features. See the I3C
		specification for more details.
		This entry describes the DCR of the master controller driving
		the bus.

What:		/sys/bus/i3c/devices/i3c-<bus-id>/pid
KernelVersion:  5.0
Contact:	linux-i3c@vger.kernel.org
Description:
		PID stands for Provisional ID and is used to uniquely identify
		a device on a bus. This PID contains information about the
		vendor, the part and an instance ID so that several devices of
		the same type can be connected on the same bus.
		See the I3C specification for more details.
		This entry describes the PID of the master controller driving
		the bus.

What:		/sys/bus/i3c/devices/i3c-<bus-id>/hdrcap
KernelVersion:  5.0
Contact:	linux-i3c@vger.kernel.org
Description:
		Expose the HDR (High Data Rate) capabilities of a device.
		Returns a list of supported HDR mode, each element is separated
		by space. Modes can be "hdr-ddr", "hdr-tsp" and "hdr-tsl".
		See the I3C specification for more details about these HDR
		modes.

		This entry describes the HDRCAP of the master controller
		driving the bus.

What:		/sys/bus/i3c/devices/i3c-<bus-id>/<bus-id>-<device-pid>
KernelVersion:  5.0
Contact:	linux-i3c@vger.kernel.org
Description:
		An I3C device present on I3C bus identified by <bus-id>. Note
		that all devices are represented including the master driving
		the bus.

What:		/sys/bus/i3c/devices/i3c-<bus-id>/<bus-id>-<device-pid>/dynamic_address
KernelVersion:  5.0
Contact:	linux-i3c@vger.kernel.org
Description:
		Dynamic address assigned to device <bus-id>-<device-pid>. This
		address may change if the bus is re-initialized.

What:		/sys/bus/i3c/devices/i3c-<bus-id>/<bus-id>-<device-pid>/bcr
KernelVersion:  5.0
Contact:	linux-i3c@vger.kernel.org
Description:
		BCR stands for Bus Characteristics Register and express the
		device capabilities in term of speed, maximum read/write
		length, etc. See the I3C specification for more details.

What:		/sys/bus/i3c/devices/i3c-<bus-id>/<bus-id>-<device-pid>/dcr
KernelVersion:  5.0
Contact:	linux-i3c@vger.kernel.org
Description:
		DCR stands for Device Characteristics Register and express the
		device capabilities in term of exposed features. See the I3C
		specification for more details.

What:		/sys/bus/i3c/devices/i3c-<bus-id>/<bus-id>-<device-pid>/pid
KernelVersion:  5.0
Contact:	linux-i3c@vger.kernel.org
Description:
		PID stands for Provisional ID and is used to uniquely identify
		a device on a bus. This PID contains information about the
		vendor, the part and an instance ID so that several devices of
		the same type can be connected on the same bus.
		See the I3C specification for more details.

What:		/sys/bus/i3c/devices/i3c-<bus-id>/<bus-id>-<device-pid>/hdrcap
KernelVersion:  5.0
Contact:	linux-i3c@vger.kernel.org
Description:
		Expose the HDR (High Data Rate) capabilities of a device.
		Returns a list of supported HDR mode, each element is separated
		by space. Modes can be "hdr-ddr", "hdr-tsp" and "hdr-tsl".

		See the I3C specification for more details about these HDR
		modes.

What:		/sys/bus/i3c/devices/<bus-id>-<device-pid>
KernelVersion:  5.0
Contact:	linux-i3c@vger.kernel.org
Description:
		These directories are just symbolic links to
		/sys/bus/i3c/devices/i3c-<bus-id>/<bus-id>-<device-pid>.