mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-02-05 02:38:20 +00:00
Merge branch 'master' into upstream
Sync with Linus' tree so that we don't have build falures due to Quanta 3001 ID reshuffling.
This commit is contained in:
commit
66a61fc0b2
@ -0,0 +1,5 @@
|
|||||||
|
What: /proc/sys/vm/nr_pdflush_threads
|
||||||
|
Date: June 2012
|
||||||
|
Contact: Wanpeng Li <liwp@linux.vnet.ibm.com>
|
||||||
|
Description: Since pdflush is replaced by per-BDI flusher, the interface of old pdflush
|
||||||
|
exported in /proc/sys/vm/ should be removed.
|
@ -39,6 +39,17 @@ Users: udev rules to set ownership and access permissions or ACLs of
|
|||||||
/dev/fw[0-9]+ character device files
|
/dev/fw[0-9]+ character device files
|
||||||
|
|
||||||
|
|
||||||
|
What: /sys/bus/firewire/devices/fw[0-9]+/is_local
|
||||||
|
Date: July 2012
|
||||||
|
KernelVersion: 3.6
|
||||||
|
Contact: linux1394-devel@lists.sourceforge.net
|
||||||
|
Description:
|
||||||
|
IEEE 1394 node device attribute.
|
||||||
|
Read-only and immutable.
|
||||||
|
Values: 1: The sysfs entry represents a local node (a controller card).
|
||||||
|
0: The sysfs entry represents a remote node.
|
||||||
|
|
||||||
|
|
||||||
What: /sys/bus/firewire/devices/fw[0-9]+[.][0-9]+/
|
What: /sys/bus/firewire/devices/fw[0-9]+[.][0-9]+/
|
||||||
Date: May 2007
|
Date: May 2007
|
||||||
KernelVersion: 2.6.22
|
KernelVersion: 2.6.22
|
||||||
|
15
Documentation/ABI/stable/sysfs-driver-w1_ds28e04
Normal file
15
Documentation/ABI/stable/sysfs-driver-w1_ds28e04
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
What: /sys/bus/w1/devices/.../pio
|
||||||
|
Date: May 2012
|
||||||
|
Contact: Markus Franke <franm@hrz.tu-chemnitz.de>
|
||||||
|
Description: read/write the contents of the two PIO's of the DS28E04-100
|
||||||
|
see Documentation/w1/slaves/w1_ds28e04 for detailed information
|
||||||
|
Users: any user space application which wants to communicate with DS28E04-100
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
What: /sys/bus/w1/devices/.../eeprom
|
||||||
|
Date: May 2012
|
||||||
|
Contact: Markus Franke <franm@hrz.tu-chemnitz.de>
|
||||||
|
Description: read/write the contents of the EEPROM memory of the DS28E04-100
|
||||||
|
see Documentation/w1/slaves/w1_ds28e04 for detailed information
|
||||||
|
Users: any user space application which wants to communicate with DS28E04-100
|
@ -58,16 +58,18 @@ Description: The /dev/kmsg character device node provides userspace access
|
|||||||
|
|
||||||
The output format consists of a prefix carrying the syslog
|
The output format consists of a prefix carrying the syslog
|
||||||
prefix including priority and facility, the 64 bit message
|
prefix including priority and facility, the 64 bit message
|
||||||
sequence number and the monotonic timestamp in microseconds.
|
sequence number and the monotonic timestamp in microseconds,
|
||||||
The values are separated by a ','. Future extensions might
|
and a flag field. All fields are separated by a ','.
|
||||||
add more comma separated values before the terminating ';'.
|
|
||||||
Unknown values should be gracefully ignored.
|
Future extensions might add more comma separated values before
|
||||||
|
the terminating ';'. Unknown fields and values should be
|
||||||
|
gracefully ignored.
|
||||||
|
|
||||||
The human readable text string starts directly after the ';'
|
The human readable text string starts directly after the ';'
|
||||||
and is terminated by a '\n'. Untrusted values derived from
|
and is terminated by a '\n'. Untrusted values derived from
|
||||||
hardware or other facilities are printed, therefore
|
hardware or other facilities are printed, therefore
|
||||||
all non-printable characters in the log message are escaped
|
all non-printable characters and '\' itself in the log message
|
||||||
by "\x00" C-style hex encoding.
|
are escaped by "\x00" C-style hex encoding.
|
||||||
|
|
||||||
A line starting with ' ', is a continuation line, adding
|
A line starting with ' ', is a continuation line, adding
|
||||||
key/value pairs to the log message, which provide the machine
|
key/value pairs to the log message, which provide the machine
|
||||||
@ -75,11 +77,11 @@ Description: The /dev/kmsg character device node provides userspace access
|
|||||||
userspace.
|
userspace.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
7,160,424069;pci_root PNP0A03:00: host bridge window [io 0x0000-0x0cf7] (ignored)
|
7,160,424069,-;pci_root PNP0A03:00: host bridge window [io 0x0000-0x0cf7] (ignored)
|
||||||
SUBSYSTEM=acpi
|
SUBSYSTEM=acpi
|
||||||
DEVICE=+acpi:PNP0A03:00
|
DEVICE=+acpi:PNP0A03:00
|
||||||
6,339,5140900;NET: Registered protocol family 10
|
6,339,5140900,-;NET: Registered protocol family 10
|
||||||
30,340,5690716;udevd[80]: starting version 181
|
30,340,5690716,-;udevd[80]: starting version 181
|
||||||
|
|
||||||
The DEVICE= key uniquely identifies devices the following way:
|
The DEVICE= key uniquely identifies devices the following way:
|
||||||
b12:8 - block dev_t
|
b12:8 - block dev_t
|
||||||
@ -87,4 +89,13 @@ Description: The /dev/kmsg character device node provides userspace access
|
|||||||
n8 - netdev ifindex
|
n8 - netdev ifindex
|
||||||
+sound:card0 - subsystem:devname
|
+sound:card0 - subsystem:devname
|
||||||
|
|
||||||
|
The flags field carries '-' by default. A 'c' indicates a
|
||||||
|
fragment of a line. All following fragments are flagged with
|
||||||
|
'+'. Note, that these hints about continuation lines are not
|
||||||
|
neccessarily correct, and the stream could be interleaved with
|
||||||
|
unrelated messages, but merging the lines in the output
|
||||||
|
usually produces better human readable results. A similar
|
||||||
|
logic is used internally when messages are printed to the
|
||||||
|
console, /proc/kmsg or the syslog() syscall.
|
||||||
|
|
||||||
Users: dmesg(1), userspace kernel log consumers
|
Users: dmesg(1), userspace kernel log consumers
|
||||||
|
@ -40,9 +40,9 @@ Contact: linux-iio@vger.kernel.org
|
|||||||
Description:
|
Description:
|
||||||
Some devices have internal clocks. This parameter sets the
|
Some devices have internal clocks. This parameter sets the
|
||||||
resulting sampling frequency. In many devices this
|
resulting sampling frequency. In many devices this
|
||||||
parameter has an effect on input filters etc rather than
|
parameter has an effect on input filters etc. rather than
|
||||||
simply controlling when the input is sampled. As this
|
simply controlling when the input is sampled. As this
|
||||||
effects datardy triggers, hardware buffers and the sysfs
|
effects data ready triggers, hardware buffers and the sysfs
|
||||||
direct access interfaces, it may be found in any of the
|
direct access interfaces, it may be found in any of the
|
||||||
relevant directories. If it effects all of the above
|
relevant directories. If it effects all of the above
|
||||||
then it is to be found in the base device directory.
|
then it is to be found in the base device directory.
|
||||||
@ -74,7 +74,7 @@ What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_supply_raw
|
|||||||
KernelVersion: 2.6.35
|
KernelVersion: 2.6.35
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
Raw (unscaled no bias removal etc) voltage measurement from
|
Raw (unscaled no bias removal etc.) voltage measurement from
|
||||||
channel Y. In special cases where the channel does not
|
channel Y. In special cases where the channel does not
|
||||||
correspond to externally available input one of the named
|
correspond to externally available input one of the named
|
||||||
versions may be used. The number must always be specified and
|
versions may be used. The number must always be specified and
|
||||||
@ -118,11 +118,11 @@ What: /sys/bus/iio/devices/iio:deviceX/in_temp_z_raw
|
|||||||
KernelVersion: 2.6.35
|
KernelVersion: 2.6.35
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
Raw (unscaled no bias removal etc) temperature measurement.
|
Raw (unscaled no bias removal etc.) temperature measurement.
|
||||||
If an axis is specified it generally means that the temperature
|
If an axis is specified it generally means that the temperature
|
||||||
sensor is associated with one part of a compound device (e.g.
|
sensor is associated with one part of a compound device (e.g.
|
||||||
a gyroscope axis). Units after application of scale and offset
|
a gyroscope axis). Units after application of scale and offset
|
||||||
are milli degrees Celsuis.
|
are milli degrees Celsius.
|
||||||
|
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_tempX_input
|
What: /sys/bus/iio/devices/iio:deviceX/in_tempX_input
|
||||||
KernelVersion: 2.6.38
|
KernelVersion: 2.6.38
|
||||||
@ -148,10 +148,9 @@ KernelVersion: 2.6.35
|
|||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
Angular velocity about axis x, y or z (may be arbitrarily
|
Angular velocity about axis x, y or z (may be arbitrarily
|
||||||
assigned) Data converted by application of offset then scale to
|
assigned). Has all the equivalent parameters as per voltageY.
|
||||||
radians per second. Has all the equivalent parameters as
|
Units after application of scale and offset are radians per
|
||||||
per voltageY. Units after application of scale and offset are
|
second.
|
||||||
radians per second.
|
|
||||||
|
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_incli_x_raw
|
What: /sys/bus/iio/devices/iio:deviceX/in_incli_x_raw
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_incli_y_raw
|
What: /sys/bus/iio/devices/iio:deviceX/in_incli_y_raw
|
||||||
@ -161,7 +160,7 @@ Contact: linux-iio@vger.kernel.org
|
|||||||
Description:
|
Description:
|
||||||
Inclination raw reading about axis x, y or z (may be
|
Inclination raw reading about axis x, y or z (may be
|
||||||
arbitrarily assigned). Data converted by application of offset
|
arbitrarily assigned). Data converted by application of offset
|
||||||
and scale to Degrees.
|
and scale to degrees.
|
||||||
|
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_magn_x_raw
|
What: /sys/bus/iio/devices/iio:deviceX/in_magn_x_raw
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_magn_y_raw
|
What: /sys/bus/iio/devices/iio:deviceX/in_magn_y_raw
|
||||||
@ -203,7 +202,7 @@ Contact: linux-iio@vger.kernel.org
|
|||||||
Description:
|
Description:
|
||||||
If known for a device, offset to be added to <type>[Y]_raw prior
|
If known for a device, offset to be added to <type>[Y]_raw prior
|
||||||
to scaling by <type>[Y]_scale in order to obtain value in the
|
to scaling by <type>[Y]_scale in order to obtain value in the
|
||||||
<type> units as specified in <type>[y]_raw documentation.
|
<type> units as specified in <type>[Y]_raw documentation.
|
||||||
Not present if the offset is always 0 or unknown. If Y or
|
Not present if the offset is always 0 or unknown. If Y or
|
||||||
axis <x|y|z> is not present, then the offset applies to all
|
axis <x|y|z> is not present, then the offset applies to all
|
||||||
in channels of <type>.
|
in channels of <type>.
|
||||||
@ -249,7 +248,7 @@ What: /sys/bus/iio/devices/iio:deviceX/in_proximity0_calibbias
|
|||||||
KernelVersion: 2.6.35
|
KernelVersion: 2.6.35
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
Hardware applied calibration offset. (assumed to fix production
|
Hardware applied calibration offset (assumed to fix production
|
||||||
inaccuracies).
|
inaccuracies).
|
||||||
|
|
||||||
What /sys/bus/iio/devices/iio:deviceX/in_voltageY_calibscale
|
What /sys/bus/iio/devices/iio:deviceX/in_voltageY_calibscale
|
||||||
@ -266,7 +265,7 @@ what /sys/bus/iio/devices/iio:deviceX/in_proximity0_calibscale
|
|||||||
KernelVersion: 2.6.35
|
KernelVersion: 2.6.35
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
Hardware applied calibration scale factor. (assumed to fix
|
Hardware applied calibration scale factor (assumed to fix
|
||||||
production inaccuracies). If shared across all channels,
|
production inaccuracies). If shared across all channels,
|
||||||
<type>_calibscale is used.
|
<type>_calibscale is used.
|
||||||
|
|
||||||
@ -276,10 +275,10 @@ What: /sys/.../iio:deviceX/in_voltage-voltage_scale_available
|
|||||||
What: /sys/.../iio:deviceX/out_voltageX_scale_available
|
What: /sys/.../iio:deviceX/out_voltageX_scale_available
|
||||||
What: /sys/.../iio:deviceX/out_altvoltageX_scale_available
|
What: /sys/.../iio:deviceX/out_altvoltageX_scale_available
|
||||||
What: /sys/.../iio:deviceX/in_capacitance_scale_available
|
What: /sys/.../iio:deviceX/in_capacitance_scale_available
|
||||||
KernelVersion: 2.635
|
KernelVersion: 2.6.35
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
If a discrete set of scale values are available, they
|
If a discrete set of scale values is available, they
|
||||||
are listed in this attribute.
|
are listed in this attribute.
|
||||||
|
|
||||||
What /sys/bus/iio/devices/iio:deviceX/out_voltageY_hardwaregain
|
What /sys/bus/iio/devices/iio:deviceX/out_voltageY_hardwaregain
|
||||||
@ -330,9 +329,11 @@ Contact: linux-iio@vger.kernel.org
|
|||||||
Description:
|
Description:
|
||||||
Specifies the output powerdown mode.
|
Specifies the output powerdown mode.
|
||||||
DAC output stage is disconnected from the amplifier and
|
DAC output stage is disconnected from the amplifier and
|
||||||
1kohm_to_gnd: connected to ground via an 1kOhm resistor
|
1kohm_to_gnd: connected to ground via an 1kOhm resistor,
|
||||||
100kohm_to_gnd: connected to ground via an 100kOhm resistor
|
6kohm_to_gnd: connected to ground via a 6kOhm resistor,
|
||||||
three_state: left floating
|
20kohm_to_gnd: connected to ground via a 20kOhm resistor,
|
||||||
|
100kohm_to_gnd: connected to ground via an 100kOhm resistor,
|
||||||
|
three_state: left floating.
|
||||||
For a list of available output power down options read
|
For a list of available output power down options read
|
||||||
outX_powerdown_mode_available. If Y is not present the
|
outX_powerdown_mode_available. If Y is not present the
|
||||||
mode is shared across all outputs.
|
mode is shared across all outputs.
|
||||||
@ -355,9 +356,10 @@ KernelVersion: 2.6.38
|
|||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
Writing 1 causes output Y to enter the power down mode specified
|
Writing 1 causes output Y to enter the power down mode specified
|
||||||
by the corresponding outY_powerdown_mode. Clearing returns to
|
by the corresponding outY_powerdown_mode. DAC output stage is
|
||||||
normal operation. Y may be suppressed if all outputs are
|
disconnected from the amplifier. Clearing returns to normal
|
||||||
controlled together.
|
operation. Y may be suppressed if all outputs are controlled
|
||||||
|
together.
|
||||||
|
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/out_altvoltageY_frequency
|
What: /sys/bus/iio/devices/iio:deviceX/out_altvoltageY_frequency
|
||||||
KernelVersion: 3.4.0
|
KernelVersion: 3.4.0
|
||||||
@ -421,12 +423,12 @@ Description:
|
|||||||
different values, but the device can only enable both thresholds
|
different values, but the device can only enable both thresholds
|
||||||
or neither.
|
or neither.
|
||||||
Note the driver will assume the last p events requested are
|
Note the driver will assume the last p events requested are
|
||||||
to be enabled where p is however many it supports (which may
|
to be enabled where p is how many it supports (which may vary
|
||||||
vary depending on the exact set requested. So if you want to be
|
depending on the exact set requested. So if you want to be
|
||||||
sure you have set what you think you have, check the contents of
|
sure you have set what you think you have, check the contents of
|
||||||
these attributes after everything is configured. Drivers may
|
these attributes after everything is configured. Drivers may
|
||||||
have to buffer any parameters so that they are consistent when
|
have to buffer any parameters so that they are consistent when
|
||||||
a given event type is enabled a future point (and not those for
|
a given event type is enabled at a future point (and not those for
|
||||||
whatever event was previously enabled).
|
whatever event was previously enabled).
|
||||||
|
|
||||||
What: /sys/.../iio:deviceX/events/in_accel_x_roc_rising_en
|
What: /sys/.../iio:deviceX/events/in_accel_x_roc_rising_en
|
||||||
@ -702,7 +704,7 @@ What: /sys/.../buffer/scan_elements/in_anglvel_type
|
|||||||
What: /sys/.../buffer/scan_elements/in_magn_type
|
What: /sys/.../buffer/scan_elements/in_magn_type
|
||||||
What: /sys/.../buffer/scan_elements/in_incli_type
|
What: /sys/.../buffer/scan_elements/in_incli_type
|
||||||
What: /sys/.../buffer/scan_elements/in_voltageY_type
|
What: /sys/.../buffer/scan_elements/in_voltageY_type
|
||||||
What: /sys/.../buffer/scan_elements/in_voltage-in_type
|
What: /sys/.../buffer/scan_elements/in_voltage_type
|
||||||
What: /sys/.../buffer/scan_elements/in_voltageY_supply_type
|
What: /sys/.../buffer/scan_elements/in_voltageY_supply_type
|
||||||
What: /sys/.../buffer/scan_elements/in_timestamp_type
|
What: /sys/.../buffer/scan_elements/in_timestamp_type
|
||||||
KernelVersion: 2.6.37
|
KernelVersion: 2.6.37
|
||||||
@ -723,7 +725,7 @@ Description:
|
|||||||
the buffer output value appropriately. The storagebits value
|
the buffer output value appropriately. The storagebits value
|
||||||
also specifies the data alignment. So s48/64>>2 will be a
|
also specifies the data alignment. So s48/64>>2 will be a
|
||||||
signed 48 bit integer stored in a 64 bit location aligned to
|
signed 48 bit integer stored in a 64 bit location aligned to
|
||||||
a a64 bit boundary. To obtain the clean value, shift right 2
|
a 64 bit boundary. To obtain the clean value, shift right 2
|
||||||
and apply a mask to zero the top 16 bits of the result.
|
and apply a mask to zero the top 16 bits of the result.
|
||||||
For other storage combinations this attribute will be extended
|
For other storage combinations this attribute will be extended
|
||||||
appropriately.
|
appropriately.
|
||||||
|
37
Documentation/ABI/testing/sysfs-bus-iio-frequency-ad9523
Normal file
37
Documentation/ABI/testing/sysfs-bus-iio-frequency-ad9523
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
What: /sys/bus/iio/devices/iio:deviceX/pll2_feedback_clk_present
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/pll2_reference_clk_present
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/pll1_reference_clk_a_present
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/pll1_reference_clk_b_present
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/pll1_reference_clk_test_present
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/vcxo_clk_present
|
||||||
|
KernelVersion: 3.4.0
|
||||||
|
Contact: linux-iio@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reading returns either '1' or '0'.
|
||||||
|
'1' means that the clock in question is present.
|
||||||
|
'0' means that the clock is missing.
|
||||||
|
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/pllY_locked
|
||||||
|
KernelVersion: 3.4.0
|
||||||
|
Contact: linux-iio@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Reading returns either '1' or '0'. '1' means that the
|
||||||
|
pllY is locked.
|
||||||
|
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/store_eeprom
|
||||||
|
KernelVersion: 3.4.0
|
||||||
|
Contact: linux-iio@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Writing '1' stores the current device configuration into
|
||||||
|
on-chip EEPROM. After power-up or chip reset the device will
|
||||||
|
automatically load the saved configuration.
|
||||||
|
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/sync_dividers
|
||||||
|
KernelVersion: 3.4.0
|
||||||
|
Contact: linux-iio@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Writing '1' triggers the clock distribution synchronization
|
||||||
|
functionality. All dividers are reset and the channels start
|
||||||
|
with their predefined phase offsets (out_altvoltageY_phase).
|
||||||
|
Writing this file has the effect as driving the external
|
||||||
|
/SYNC pin low.
|
21
Documentation/ABI/testing/sysfs-bus-iio-frequency-adf4350
Normal file
21
Documentation/ABI/testing/sysfs-bus-iio-frequency-adf4350
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
What: /sys/bus/iio/devices/iio:deviceX/out_altvoltageY_frequency_resolution
|
||||||
|
KernelVersion: 3.4.0
|
||||||
|
Contact: linux-iio@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Stores channel Y frequency resolution/channel spacing in Hz.
|
||||||
|
The value given directly influences the MODULUS used by
|
||||||
|
the fractional-N PLL. It is assumed that the algorithm
|
||||||
|
that is used to compute the various dividers, is able to
|
||||||
|
generate proper values for multiples of channel spacing.
|
||||||
|
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/out_altvoltageY_refin_frequency
|
||||||
|
KernelVersion: 3.4.0
|
||||||
|
Contact: linux-iio@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Sets channel Y REFin frequency in Hz. In some clock chained
|
||||||
|
applications, the reference frequency used by the PLL may
|
||||||
|
change during runtime. This attribute allows the user to
|
||||||
|
adjust the reference frequency accordingly.
|
||||||
|
The value written has no effect until out_altvoltageY_frequency
|
||||||
|
is updated. Consider to use out_altvoltageY_powerdown to power
|
||||||
|
down the PLL and it's RFOut buffers during REFin changes.
|
61
Documentation/ABI/testing/sysfs-bus-iio-light-lm3533-als
Normal file
61
Documentation/ABI/testing/sysfs-bus-iio-light-lm3533-als
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
What: /sys/.../events/in_illuminance0_thresh_either_en
|
||||||
|
Date: April 2012
|
||||||
|
KernelVersion: 3.5
|
||||||
|
Contact: Johan Hovold <jhovold@gmail.com>
|
||||||
|
Description:
|
||||||
|
Event generated when channel passes one of the four thresholds
|
||||||
|
in each direction (rising|falling) and a zone change occurs.
|
||||||
|
The corresponding light zone can be read from
|
||||||
|
in_illuminance0_zone.
|
||||||
|
|
||||||
|
What: /sys/.../events/in_illuminance0_threshY_hysteresis
|
||||||
|
Date: May 2012
|
||||||
|
KernelVersion: 3.5
|
||||||
|
Contact: Johan Hovold <jhovold@gmail.com>
|
||||||
|
Description:
|
||||||
|
Get the hysteresis for thresholds Y, that is,
|
||||||
|
threshY_hysteresis = threshY_raising - threshY_falling
|
||||||
|
|
||||||
|
What: /sys/.../events/illuminance_threshY_falling_value
|
||||||
|
What: /sys/.../events/illuminance_threshY_raising_value
|
||||||
|
Date: April 2012
|
||||||
|
KernelVersion: 3.5
|
||||||
|
Contact: Johan Hovold <jhovold@gmail.com>
|
||||||
|
Description:
|
||||||
|
Specifies the value of threshold that the device is comparing
|
||||||
|
against for the events enabled by
|
||||||
|
in_illuminance0_thresh_either_en (0..255), where Y in 0..3.
|
||||||
|
|
||||||
|
Note that threshY_falling must be less than or equal to
|
||||||
|
threshY_raising.
|
||||||
|
|
||||||
|
These thresholds correspond to the eight zone-boundary
|
||||||
|
registers (boundaryY_{low,high}) and define the five light
|
||||||
|
zones.
|
||||||
|
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/in_illuminance0_zone
|
||||||
|
Date: April 2012
|
||||||
|
KernelVersion: 3.5
|
||||||
|
Contact: Johan Hovold <jhovold@gmail.com>
|
||||||
|
Description:
|
||||||
|
Get the current light zone (0..4) as defined by the
|
||||||
|
in_illuminance0_threshY_{falling,rising} thresholds.
|
||||||
|
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/out_currentY_raw
|
||||||
|
Date: May 2012
|
||||||
|
KernelVersion: 3.5
|
||||||
|
Contact: Johan Hovold <jhovold@gmail.com>
|
||||||
|
Description:
|
||||||
|
Get output current for channel Y (0..255), that is,
|
||||||
|
out_currentY_currentZ_raw, where Z is the current zone.
|
||||||
|
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/out_currentY_currentZ_raw
|
||||||
|
Date: May 2012
|
||||||
|
KernelVersion: 3.5
|
||||||
|
Contact: Johan Hovold <jhovold@gmail.com>
|
||||||
|
Description:
|
||||||
|
Set the output current for channel out_currentY when in zone
|
||||||
|
Z (0..255), where Y in 0..2 and Z in 0..4.
|
||||||
|
|
||||||
|
These values correspond to the ALS-mapper target registers for
|
||||||
|
ALS-mapper Y + 1.
|
@ -35,8 +35,14 @@ name
|
|||||||
|
|
||||||
pool
|
pool
|
||||||
|
|
||||||
The pool where this rbd image resides. The pool-name pair is unique
|
The name of the storage pool where this rbd image resides.
|
||||||
per rados system.
|
An rbd image name is unique within its pool.
|
||||||
|
|
||||||
|
pool_id
|
||||||
|
|
||||||
|
The unique identifier for the rbd image's pool. This is
|
||||||
|
a permanent attribute of the pool. A pool's id will never
|
||||||
|
change.
|
||||||
|
|
||||||
size
|
size
|
||||||
|
|
||||||
|
@ -208,3 +208,15 @@ Description:
|
|||||||
such as ACPI. This file will read either "removable" or
|
such as ACPI. This file will read either "removable" or
|
||||||
"fixed" if the information is available, and "unknown"
|
"fixed" if the information is available, and "unknown"
|
||||||
otherwise.
|
otherwise.
|
||||||
|
|
||||||
|
What: /sys/bus/usb/devices/.../ltm_capable
|
||||||
|
Date: July 2012
|
||||||
|
Contact: Sarah Sharp <sarah.a.sharp@linux.intel.com>
|
||||||
|
Description:
|
||||||
|
USB 3.0 devices may optionally support Latency Tolerance
|
||||||
|
Messaging (LTM). They indicate their support by setting a bit
|
||||||
|
in the bmAttributes field of their SuperSpeed BOS descriptors.
|
||||||
|
If that bit is set for the device, ltm_capable will read "yes".
|
||||||
|
If the device doesn't support LTM, the file will read "no".
|
||||||
|
The file will be present for all speeds of USB devices, and will
|
||||||
|
always read "no" for USB 1.1 and USB 2.0 devices.
|
||||||
|
140
Documentation/ABI/testing/sysfs-devices-edac
Normal file
140
Documentation/ABI/testing/sysfs-devices-edac
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
What: /sys/devices/system/edac/mc/mc*/reset_counters
|
||||||
|
Date: January 2006
|
||||||
|
Contact: linux-edac@vger.kernel.org
|
||||||
|
Description: This write-only control file will zero all the statistical
|
||||||
|
counters for UE and CE errors on the given memory controller.
|
||||||
|
Zeroing the counters will also reset the timer indicating how
|
||||||
|
long since the last counter were reset. This is useful for
|
||||||
|
computing errors/time. Since the counters are always reset
|
||||||
|
at driver initialization time, no module/kernel parameter
|
||||||
|
is available.
|
||||||
|
|
||||||
|
What: /sys/devices/system/edac/mc/mc*/seconds_since_reset
|
||||||
|
Date: January 2006
|
||||||
|
Contact: linux-edac@vger.kernel.org
|
||||||
|
Description: This attribute file displays how many seconds have elapsed
|
||||||
|
since the last counter reset. This can be used with the error
|
||||||
|
counters to measure error rates.
|
||||||
|
|
||||||
|
What: /sys/devices/system/edac/mc/mc*/mc_name
|
||||||
|
Date: January 2006
|
||||||
|
Contact: linux-edac@vger.kernel.org
|
||||||
|
Description: This attribute file displays the type of memory controller
|
||||||
|
that is being utilized.
|
||||||
|
|
||||||
|
What: /sys/devices/system/edac/mc/mc*/size_mb
|
||||||
|
Date: January 2006
|
||||||
|
Contact: linux-edac@vger.kernel.org
|
||||||
|
Description: This attribute file displays, in count of megabytes, of memory
|
||||||
|
that this memory controller manages.
|
||||||
|
|
||||||
|
What: /sys/devices/system/edac/mc/mc*/ue_count
|
||||||
|
Date: January 2006
|
||||||
|
Contact: linux-edac@vger.kernel.org
|
||||||
|
Description: This attribute file displays the total count of uncorrectable
|
||||||
|
errors that have occurred on this memory controller. If
|
||||||
|
panic_on_ue is set, this counter will not have a chance to
|
||||||
|
increment, since EDAC will panic the system
|
||||||
|
|
||||||
|
What: /sys/devices/system/edac/mc/mc*/ue_noinfo_count
|
||||||
|
Date: January 2006
|
||||||
|
Contact: linux-edac@vger.kernel.org
|
||||||
|
Description: This attribute file displays the number of UEs that have
|
||||||
|
occurred on this memory controller with no information as to
|
||||||
|
which DIMM slot is having errors.
|
||||||
|
|
||||||
|
What: /sys/devices/system/edac/mc/mc*/ce_count
|
||||||
|
Date: January 2006
|
||||||
|
Contact: linux-edac@vger.kernel.org
|
||||||
|
Description: This attribute file displays the total count of correctable
|
||||||
|
errors that have occurred on this memory controller. This
|
||||||
|
count is very important to examine. CEs provide early
|
||||||
|
indications that a DIMM is beginning to fail. This count
|
||||||
|
field should be monitored for non-zero values and report
|
||||||
|
such information to the system administrator.
|
||||||
|
|
||||||
|
What: /sys/devices/system/edac/mc/mc*/ce_noinfo_count
|
||||||
|
Date: January 2006
|
||||||
|
Contact: linux-edac@vger.kernel.org
|
||||||
|
Description: This attribute file displays the number of CEs that
|
||||||
|
have occurred on this memory controller wherewith no
|
||||||
|
information as to which DIMM slot is having errors. Memory is
|
||||||
|
handicapped, but operational, yet no information is available
|
||||||
|
to indicate which slot the failing memory is in. This count
|
||||||
|
field should be also be monitored for non-zero values.
|
||||||
|
|
||||||
|
What: /sys/devices/system/edac/mc/mc*/sdram_scrub_rate
|
||||||
|
Date: February 2007
|
||||||
|
Contact: linux-edac@vger.kernel.org
|
||||||
|
Description: Read/Write attribute file that controls memory scrubbing.
|
||||||
|
The scrubbing rate used by the memory controller is set by
|
||||||
|
writing a minimum bandwidth in bytes/sec to the attribute file.
|
||||||
|
The rate will be translated to an internal value that gives at
|
||||||
|
least the specified rate.
|
||||||
|
Reading the file will return the actual scrubbing rate employed.
|
||||||
|
If configuration fails or memory scrubbing is not implemented,
|
||||||
|
the value of the attribute file will be -1.
|
||||||
|
|
||||||
|
What: /sys/devices/system/edac/mc/mc*/max_location
|
||||||
|
Date: April 2012
|
||||||
|
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||||
|
linux-edac@vger.kernel.org
|
||||||
|
Description: This attribute file displays the information about the last
|
||||||
|
available memory slot in this memory controller. It is used by
|
||||||
|
userspace tools in order to display the memory filling layout.
|
||||||
|
|
||||||
|
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/size
|
||||||
|
Date: April 2012
|
||||||
|
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||||
|
linux-edac@vger.kernel.org
|
||||||
|
Description: This attribute file will display the size of dimm or rank.
|
||||||
|
For dimm*/size, this is the size, in MB of the DIMM memory
|
||||||
|
stick. For rank*/size, this is the size, in MB for one rank
|
||||||
|
of the DIMM memory stick. On single rank memories (1R), this
|
||||||
|
is also the total size of the dimm. On dual rank (2R) memories,
|
||||||
|
this is half the size of the total DIMM memories.
|
||||||
|
|
||||||
|
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_dev_type
|
||||||
|
Date: April 2012
|
||||||
|
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||||
|
linux-edac@vger.kernel.org
|
||||||
|
Description: This attribute file will display what type of DRAM device is
|
||||||
|
being utilized on this DIMM (x1, x2, x4, x8, ...).
|
||||||
|
|
||||||
|
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_edac_mode
|
||||||
|
Date: April 2012
|
||||||
|
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||||
|
linux-edac@vger.kernel.org
|
||||||
|
Description: This attribute file will display what type of Error detection
|
||||||
|
and correction is being utilized. For example: S4ECD4ED would
|
||||||
|
mean a Chipkill with x4 DRAM.
|
||||||
|
|
||||||
|
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_label
|
||||||
|
Date: April 2012
|
||||||
|
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||||
|
linux-edac@vger.kernel.org
|
||||||
|
Description: This control file allows this DIMM to have a label assigned
|
||||||
|
to it. With this label in the module, when errors occur
|
||||||
|
the output can provide the DIMM label in the system log.
|
||||||
|
This becomes vital for panic events to isolate the
|
||||||
|
cause of the UE event.
|
||||||
|
DIMM Labels must be assigned after booting, with information
|
||||||
|
that correctly identifies the physical slot with its
|
||||||
|
silk screen label. This information is currently very
|
||||||
|
motherboard specific and determination of this information
|
||||||
|
must occur in userland at this time.
|
||||||
|
|
||||||
|
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_location
|
||||||
|
Date: April 2012
|
||||||
|
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||||
|
linux-edac@vger.kernel.org
|
||||||
|
Description: This attribute file will display the location (csrow/channel,
|
||||||
|
branch/channel/slot or channel/slot) of the dimm or rank.
|
||||||
|
|
||||||
|
What: /sys/devices/system/edac/mc/mc*/(dimm|rank)*/dimm_mem_type
|
||||||
|
Date: April 2012
|
||||||
|
Contact: Mauro Carvalho Chehab <mchehab@redhat.com>
|
||||||
|
linux-edac@vger.kernel.org
|
||||||
|
Description: This attribute file will display what type of memory is
|
||||||
|
currently on this csrow. Normally, either buffered or
|
||||||
|
unbuffered memory (for example, Unbuffered-DDR3).
|
@ -0,0 +1,44 @@
|
|||||||
|
What: /sys/devices/platform/sh_mobile_lcdc_fb.[0-3]/graphics/fb[0-9]/ovl_alpha
|
||||||
|
Date: May 2012
|
||||||
|
Contact: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||||
|
Description:
|
||||||
|
This file is only available on fb[0-9] devices corresponding
|
||||||
|
to overlay planes.
|
||||||
|
|
||||||
|
Stores the alpha blending value for the overlay. Values range
|
||||||
|
from 0 (transparent) to 255 (opaque). The value is ignored if
|
||||||
|
the mode is not set to Alpha Blending.
|
||||||
|
|
||||||
|
What: /sys/devices/platform/sh_mobile_lcdc_fb.[0-3]/graphics/fb[0-9]/ovl_mode
|
||||||
|
Date: May 2012
|
||||||
|
Contact: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||||
|
Description:
|
||||||
|
This file is only available on fb[0-9] devices corresponding
|
||||||
|
to overlay planes.
|
||||||
|
|
||||||
|
Selects the composition mode for the overlay. Possible values
|
||||||
|
are
|
||||||
|
|
||||||
|
0 - Alpha Blending
|
||||||
|
1 - ROP3
|
||||||
|
|
||||||
|
What: /sys/devices/platform/sh_mobile_lcdc_fb.[0-3]/graphics/fb[0-9]/ovl_position
|
||||||
|
Date: May 2012
|
||||||
|
Contact: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||||
|
Description:
|
||||||
|
This file is only available on fb[0-9] devices corresponding
|
||||||
|
to overlay planes.
|
||||||
|
|
||||||
|
Stores the x,y overlay position on the display in pixels. The
|
||||||
|
position format is `[0-9]+,[0-9]+'.
|
||||||
|
|
||||||
|
What: /sys/devices/platform/sh_mobile_lcdc_fb.[0-3]/graphics/fb[0-9]/ovl_rop3
|
||||||
|
Date: May 2012
|
||||||
|
Contact: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||||
|
Description:
|
||||||
|
This file is only available on fb[0-9] devices corresponding
|
||||||
|
to overlay planes.
|
||||||
|
|
||||||
|
Stores the raster operation (ROP3) for the overlay. Values
|
||||||
|
range from 0 to 255. The value is ignored if the mode is not
|
||||||
|
set to ROP3.
|
14
Documentation/ABI/testing/sysfs-kernel-iommu_groups
Normal file
14
Documentation/ABI/testing/sysfs-kernel-iommu_groups
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
What: /sys/kernel/iommu_groups/
|
||||||
|
Date: May 2012
|
||||||
|
KernelVersion: v3.5
|
||||||
|
Contact: Alex Williamson <alex.williamson@redhat.com>
|
||||||
|
Description: /sys/kernel/iommu_groups/ contains a number of sub-
|
||||||
|
directories, each representing an IOMMU group. The
|
||||||
|
name of the sub-directory matches the iommu_group_id()
|
||||||
|
for the group, which is an integer value. Within each
|
||||||
|
subdirectory is another directory named "devices" with
|
||||||
|
links to the sysfs devices contained in this group.
|
||||||
|
The group directory also optionally contains a "name"
|
||||||
|
file if the IOMMU driver has chosen to register a more
|
||||||
|
common name for the group.
|
||||||
|
Users:
|
@ -29,3 +29,10 @@ KernelVersion: 2.6.39
|
|||||||
Contact: "Corentin Chary" <corentincj@iksaif.net>
|
Contact: "Corentin Chary" <corentincj@iksaif.net>
|
||||||
Description:
|
Description:
|
||||||
Control the card touchpad. 1 means on, 0 means off.
|
Control the card touchpad. 1 means on, 0 means off.
|
||||||
|
|
||||||
|
What: /sys/devices/platform/<platform>/lid_resume
|
||||||
|
Date: May 2012
|
||||||
|
KernelVersion: 3.5
|
||||||
|
Contact: "AceLan Kao" <acelan.kao@canonical.com>
|
||||||
|
Description:
|
||||||
|
Resume on lid open. 1 means on, 0 means off.
|
||||||
|
@ -5,4 +5,15 @@ Contact: "Ike Panhc <ike.pan@canonical.com>"
|
|||||||
Description:
|
Description:
|
||||||
Control the power of camera module. 1 means on, 0 means off.
|
Control the power of camera module. 1 means on, 0 means off.
|
||||||
|
|
||||||
|
What: /sys/devices/platform/ideapad/fan_mode
|
||||||
|
Date: June 2012
|
||||||
|
KernelVersion: 3.6
|
||||||
|
Contact: "Maxim Mikityanskiy <maxtram95@gmail.com>"
|
||||||
|
Description:
|
||||||
|
Change fan mode
|
||||||
|
There are four available modes:
|
||||||
|
* 0 -> Super Silent Mode
|
||||||
|
* 1 -> Standard Mode
|
||||||
|
* 2 -> Dust Cleaning
|
||||||
|
* 4 -> Efficient Thermal Dissipation Mode
|
||||||
|
|
||||||
|
@ -49,3 +49,45 @@ DMA_ATTR_NON_CONSISTENT lets the platform to choose to return either
|
|||||||
consistent or non-consistent memory as it sees fit. By using this API,
|
consistent or non-consistent memory as it sees fit. By using this API,
|
||||||
you are guaranteeing to the platform that you have all the correct and
|
you are guaranteeing to the platform that you have all the correct and
|
||||||
necessary sync points for this memory in the driver.
|
necessary sync points for this memory in the driver.
|
||||||
|
|
||||||
|
DMA_ATTR_NO_KERNEL_MAPPING
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
DMA_ATTR_NO_KERNEL_MAPPING lets the platform to avoid creating a kernel
|
||||||
|
virtual mapping for the allocated buffer. On some architectures creating
|
||||||
|
such mapping is non-trivial task and consumes very limited resources
|
||||||
|
(like kernel virtual address space or dma consistent address space).
|
||||||
|
Buffers allocated with this attribute can be only passed to user space
|
||||||
|
by calling dma_mmap_attrs(). By using this API, you are guaranteeing
|
||||||
|
that you won't dereference the pointer returned by dma_alloc_attr(). You
|
||||||
|
can threat it as a cookie that must be passed to dma_mmap_attrs() and
|
||||||
|
dma_free_attrs(). Make sure that both of these also get this attribute
|
||||||
|
set on each call.
|
||||||
|
|
||||||
|
Since it is optional for platforms to implement
|
||||||
|
DMA_ATTR_NO_KERNEL_MAPPING, those that do not will simply ignore the
|
||||||
|
attribute and exhibit default behavior.
|
||||||
|
|
||||||
|
DMA_ATTR_SKIP_CPU_SYNC
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
By default dma_map_{single,page,sg} functions family transfer a given
|
||||||
|
buffer from CPU domain to device domain. Some advanced use cases might
|
||||||
|
require sharing a buffer between more than one device. This requires
|
||||||
|
having a mapping created separately for each device and is usually
|
||||||
|
performed by calling dma_map_{single,page,sg} function more than once
|
||||||
|
for the given buffer with device pointer to each device taking part in
|
||||||
|
the buffer sharing. The first call transfers a buffer from 'CPU' domain
|
||||||
|
to 'device' domain, what synchronizes CPU caches for the given region
|
||||||
|
(usually it means that the cache has been flushed or invalidated
|
||||||
|
depending on the dma direction). However, next calls to
|
||||||
|
dma_map_{single,page,sg}() for other devices will perform exactly the
|
||||||
|
same sychronization operation on the CPU cache. CPU cache sychronization
|
||||||
|
might be a time consuming operation, especially if the buffers are
|
||||||
|
large, so it is highly recommended to avoid it if possible.
|
||||||
|
DMA_ATTR_SKIP_CPU_SYNC allows platform code to skip synchronization of
|
||||||
|
the CPU cache for the given buffer assuming that it has been already
|
||||||
|
transferred to 'device' domain. This attribute can be also used for
|
||||||
|
dma_unmap_{single,page,sg} functions family to force buffer to stay in
|
||||||
|
device domain after releasing a mapping for it. Use this attribute with
|
||||||
|
care!
|
||||||
|
@ -224,8 +224,8 @@ all your transactions.
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Then at umount time , in your put_super() (2.4) or write_super() (2.5)
|
Then at umount time , in your put_super() you can then call journal_destroy()
|
||||||
you can then call journal_destroy() to clean up your in-core journal object.
|
to clean up your in-core journal object.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
@ -194,7 +194,7 @@ in the frequency range from 87,5 to 108,0 MHz</title>
|
|||||||
<corpauthor>National Radio Systems Committee
|
<corpauthor>National Radio Systems Committee
|
||||||
(<ulink url="http://www.nrscstandards.org">http://www.nrscstandards.org</ulink>)</corpauthor>
|
(<ulink url="http://www.nrscstandards.org">http://www.nrscstandards.org</ulink>)</corpauthor>
|
||||||
</authorgroup>
|
</authorgroup>
|
||||||
<title>NTSC-4: United States RBDS Standard</title>
|
<title>NRSC-4: United States RBDS Standard</title>
|
||||||
</biblioentry>
|
</biblioentry>
|
||||||
|
|
||||||
<biblioentry id="iso12232">
|
<biblioentry id="iso12232">
|
||||||
|
@ -464,14 +464,14 @@ The <structfield>type</structfield> field of the respective
|
|||||||
<structfield>tuner</structfield> field contains the index number of
|
<structfield>tuner</structfield> field contains the index number of
|
||||||
the tuner.</para>
|
the tuner.</para>
|
||||||
|
|
||||||
<para>Radio devices have exactly one tuner with index zero, no
|
<para>Radio input devices have exactly one tuner with index zero, no
|
||||||
video inputs.</para>
|
video inputs.</para>
|
||||||
|
|
||||||
<para>To query and change tuner properties applications use the
|
<para>To query and change tuner properties applications use the
|
||||||
&VIDIOC-G-TUNER; and &VIDIOC-S-TUNER; ioctl, respectively. The
|
&VIDIOC-G-TUNER; and &VIDIOC-S-TUNER; ioctl, respectively. The
|
||||||
&v4l2-tuner; returned by <constant>VIDIOC_G_TUNER</constant> also
|
&v4l2-tuner; returned by <constant>VIDIOC_G_TUNER</constant> also
|
||||||
contains signal status information applicable when the tuner of the
|
contains signal status information applicable when the tuner of the
|
||||||
current video input, or a radio tuner is queried. Note that
|
current video or radio input is queried. Note that
|
||||||
<constant>VIDIOC_S_TUNER</constant> does not switch the current tuner,
|
<constant>VIDIOC_S_TUNER</constant> does not switch the current tuner,
|
||||||
when there is more than one at all. The tuner is solely determined by
|
when there is more than one at all. The tuner is solely determined by
|
||||||
the current video input. Drivers must support both ioctls and set the
|
the current video input. Drivers must support both ioctls and set the
|
||||||
@ -491,8 +491,17 @@ the modulator. The <structfield>type</structfield> field of the
|
|||||||
respective &v4l2-output; returned by the &VIDIOC-ENUMOUTPUT; ioctl is
|
respective &v4l2-output; returned by the &VIDIOC-ENUMOUTPUT; ioctl is
|
||||||
set to <constant>V4L2_OUTPUT_TYPE_MODULATOR</constant> and its
|
set to <constant>V4L2_OUTPUT_TYPE_MODULATOR</constant> and its
|
||||||
<structfield>modulator</structfield> field contains the index number
|
<structfield>modulator</structfield> field contains the index number
|
||||||
of the modulator. This specification does not define radio output
|
of the modulator.</para>
|
||||||
devices.</para>
|
|
||||||
|
<para>Radio output devices have exactly one modulator with index
|
||||||
|
zero, no video outputs.</para>
|
||||||
|
|
||||||
|
<para>A video or radio device cannot support both a tuner and a
|
||||||
|
modulator. Two separate device nodes will have to be used for such
|
||||||
|
hardware, one that supports the tuner functionality and one that supports
|
||||||
|
the modulator functionality. The reason is a limitation with the
|
||||||
|
&VIDIOC-S-FREQUENCY; ioctl where you cannot specify whether the frequency
|
||||||
|
is for a tuner or a modulator.</para>
|
||||||
|
|
||||||
<para>To query and change modulator properties applications use
|
<para>To query and change modulator properties applications use
|
||||||
the &VIDIOC-G-MODULATOR; and &VIDIOC-S-MODULATOR; ioctl. Note that
|
the &VIDIOC-G-MODULATOR; and &VIDIOC-S-MODULATOR; ioctl. Note that
|
||||||
|
@ -2377,10 +2377,11 @@ that used it. It was originally scheduled for removal in 2.6.35.
|
|||||||
<para>V4L2_CTRL_FLAG_VOLATILE was added to signal volatile controls to userspace.</para>
|
<para>V4L2_CTRL_FLAG_VOLATILE was added to signal volatile controls to userspace.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Add selection API for extended control over cropping and
|
<para>Add selection API for extended control over cropping
|
||||||
composing. Does not affect the compatibility of current drivers and
|
and composing. Does not affect the compatibility of current
|
||||||
applications. See <link linkend="selection-api"> selection API </link> for
|
drivers and applications. See <link
|
||||||
details.</para>
|
linkend="selection-api"> selection API </link> for
|
||||||
|
details.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</orderedlist>
|
</orderedlist>
|
||||||
</section>
|
</section>
|
||||||
@ -2458,6 +2459,36 @@ details.</para>
|
|||||||
</orderedlist>
|
</orderedlist>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<title>V4L2 in Linux 3.6</title>
|
||||||
|
<orderedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Replaced <structfield>input</structfield> in
|
||||||
|
<structname>v4l2_buffer</structname> by
|
||||||
|
<structfield>reserved2</structfield> and removed
|
||||||
|
<constant>V4L2_BUF_FLAG_INPUT</constant>.</para>
|
||||||
|
</listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<title>V4L2 in Linux 3.6</title>
|
||||||
|
<orderedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Added V4L2_CAP_VIDEO_M2M and V4L2_CAP_VIDEO_M2M_MPLANE capabilities.</para>
|
||||||
|
</listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<title>V4L2 in Linux 3.6</title>
|
||||||
|
<orderedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Added support for frequency band enumerations: &VIDIOC-ENUM-FREQ-BANDS;.</para>
|
||||||
|
</listitem>
|
||||||
|
</orderedlist>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section id="other">
|
<section id="other">
|
||||||
<title>Relation of V4L2 to other Linux multimedia APIs</title>
|
<title>Relation of V4L2 to other Linux multimedia APIs</title>
|
||||||
|
|
||||||
@ -2587,6 +2618,9 @@ ioctls.</para>
|
|||||||
<para><link linkend="v4l2-auto-focus-area"><constant>
|
<para><link linkend="v4l2-auto-focus-area"><constant>
|
||||||
V4L2_CID_AUTO_FOCUS_AREA</constant></link> control.</para>
|
V4L2_CID_AUTO_FOCUS_AREA</constant></link> control.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>Support for frequency band enumeration: &VIDIOC-ENUM-FREQ-BANDS; ioctl.</para>
|
||||||
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
@ -372,6 +372,11 @@ minimum value disables backlight compensation.</entry>
|
|||||||
Cr component, bits [15:8] as Cb component and bits [31:16] must be zero.
|
Cr component, bits [15:8] as Cb component and bits [31:16] must be zero.
|
||||||
</entry>
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry><constant>V4L2_CID_AUTOBRIGHTNESS</constant></entry>
|
||||||
|
<entry>boolean</entry>
|
||||||
|
<entry>Enable Automatic Brightness.</entry>
|
||||||
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry><constant>V4L2_CID_ROTATE</constant></entry>
|
<entry><constant>V4L2_CID_ROTATE</constant></entry>
|
||||||
<entry>integer</entry>
|
<entry>integer</entry>
|
||||||
|
@ -276,7 +276,7 @@
|
|||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section>
|
<section id="v4l2-subdev-selections">
|
||||||
<title>Selections: cropping, scaling and composition</title>
|
<title>Selections: cropping, scaling and composition</title>
|
||||||
|
|
||||||
<para>Many sub-devices support cropping frames on their input or output
|
<para>Many sub-devices support cropping frames on their input or output
|
||||||
@ -290,8 +290,8 @@
|
|||||||
size. Both the coordinates and sizes are expressed in pixels.</para>
|
size. Both the coordinates and sizes are expressed in pixels.</para>
|
||||||
|
|
||||||
<para>As for pad formats, drivers store try and active
|
<para>As for pad formats, drivers store try and active
|
||||||
rectangles for the selection targets of ACTUAL type <xref
|
rectangles for the selection targets <xref
|
||||||
linkend="v4l2-subdev-selection-targets">.</xref></para>
|
linkend="v4l2-selections-common" />.</para>
|
||||||
|
|
||||||
<para>On sink pads, cropping is applied relative to the
|
<para>On sink pads, cropping is applied relative to the
|
||||||
current pad format. The pad format represents the image size as
|
current pad format. The pad format represents the image size as
|
||||||
@ -308,7 +308,7 @@
|
|||||||
<para>Scaling support is optional. When supported by a subdev,
|
<para>Scaling support is optional. When supported by a subdev,
|
||||||
the crop rectangle on the subdev's sink pad is scaled to the
|
the crop rectangle on the subdev's sink pad is scaled to the
|
||||||
size configured using the &VIDIOC-SUBDEV-S-SELECTION; IOCTL
|
size configured using the &VIDIOC-SUBDEV-S-SELECTION; IOCTL
|
||||||
using <constant>V4L2_SUBDEV_SEL_COMPOSE_ACTUAL</constant>
|
using <constant>V4L2_SEL_TGT_COMPOSE</constant>
|
||||||
selection target on the same pad. If the subdev supports scaling
|
selection target on the same pad. If the subdev supports scaling
|
||||||
but not composing, the top and left values are not used and must
|
but not composing, the top and left values are not used and must
|
||||||
always be set to zero.</para>
|
always be set to zero.</para>
|
||||||
@ -323,32 +323,32 @@
|
|||||||
<para>The drivers should always use the closest possible
|
<para>The drivers should always use the closest possible
|
||||||
rectangle the user requests on all selection targets, unless
|
rectangle the user requests on all selection targets, unless
|
||||||
specifically told otherwise.
|
specifically told otherwise.
|
||||||
<constant>V4L2_SUBDEV_SEL_FLAG_SIZE_GE</constant> and
|
<constant>V4L2_SEL_FLAG_GE</constant> and
|
||||||
<constant>V4L2_SUBDEV_SEL_FLAG_SIZE_LE</constant> flags may be
|
<constant>V4L2_SEL_FLAG_LE</constant> flags may be
|
||||||
used to round the image size either up or down. <xref
|
used to round the image size either up or down. <xref
|
||||||
linkend="v4l2-subdev-selection-flags"></xref></para>
|
linkend="v4l2-selection-flags" /></para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<title>Types of selection targets</title>
|
<title>Types of selection targets</title>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<title>ACTUAL targets</title>
|
<title>Actual targets</title>
|
||||||
|
|
||||||
<para>ACTUAL targets reflect the actual hardware configuration
|
<para>Actual targets (without a postfix) reflect the actual
|
||||||
at any point of time. There is a BOUNDS target
|
hardware configuration at any point of time. There is a BOUNDS
|
||||||
corresponding to every ACTUAL.</para>
|
target corresponding to every actual target.</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<title>BOUNDS targets</title>
|
<title>BOUNDS targets</title>
|
||||||
|
|
||||||
<para>BOUNDS targets is the smallest rectangle that contains
|
<para>BOUNDS targets is the smallest rectangle that contains all
|
||||||
all valid ACTUAL rectangles. It may not be possible to set the
|
valid actual rectangles. It may not be possible to set the actual
|
||||||
ACTUAL rectangle as large as the BOUNDS rectangle, however.
|
rectangle as large as the BOUNDS rectangle, however. This may be
|
||||||
This may be because e.g. a sensor's pixel array is not
|
because e.g. a sensor's pixel array is not rectangular but
|
||||||
rectangular but cross-shaped or round. The maximum size may
|
cross-shaped or round. The maximum size may also be smaller than the
|
||||||
also be smaller than the BOUNDS rectangle.</para>
|
BOUNDS rectangle.</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
@ -362,7 +362,7 @@
|
|||||||
performed by the user: the changes made will be propagated to
|
performed by the user: the changes made will be propagated to
|
||||||
any subsequent stages. If this behaviour is not desired, the
|
any subsequent stages. If this behaviour is not desired, the
|
||||||
user must set
|
user must set
|
||||||
<constant>V4L2_SUBDEV_SEL_FLAG_KEEP_CONFIG</constant> flag. This
|
<constant>V4L2_SEL_FLAG_KEEP_CONFIG</constant> flag. This
|
||||||
flag causes no propagation of the changes are allowed in any
|
flag causes no propagation of the changes are allowed in any
|
||||||
circumstances. This may also cause the accessed rectangle to be
|
circumstances. This may also cause the accessed rectangle to be
|
||||||
adjusted by the driver, depending on the properties of the
|
adjusted by the driver, depending on the properties of the
|
||||||
|
@ -683,14 +683,12 @@ memory, set by the application. See <xref linkend="userp" /> for details.
|
|||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>__u32</entry>
|
<entry>__u32</entry>
|
||||||
<entry><structfield>input</structfield></entry>
|
<entry><structfield>reserved2</structfield></entry>
|
||||||
<entry></entry>
|
<entry></entry>
|
||||||
<entry>Some video capture drivers support rapid and
|
<entry>A place holder for future extensions and custom
|
||||||
synchronous video input changes, a function useful for example in
|
(driver defined) buffer types
|
||||||
video surveillance applications. For this purpose applications set the
|
<constant>V4L2_BUF_TYPE_PRIVATE</constant> and higher. Applications
|
||||||
<constant>V4L2_BUF_FLAG_INPUT</constant> flag, and this field to the
|
should set this to 0.</entry>
|
||||||
number of a video input as in &v4l2-input; field
|
|
||||||
<structfield>index</structfield>.</entry>
|
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>__u32</entry>
|
<entry>__u32</entry>
|
||||||
@ -921,13 +919,6 @@ previous key frame.</entry>
|
|||||||
<entry>The <structfield>timecode</structfield> field is valid.
|
<entry>The <structfield>timecode</structfield> field is valid.
|
||||||
Drivers set or clear this flag when the <constant>VIDIOC_DQBUF</constant>
|
Drivers set or clear this flag when the <constant>VIDIOC_DQBUF</constant>
|
||||||
ioctl is called.</entry>
|
ioctl is called.</entry>
|
||||||
</row>
|
|
||||||
<row>
|
|
||||||
<entry><constant>V4L2_BUF_FLAG_INPUT</constant></entry>
|
|
||||||
<entry>0x0200</entry>
|
|
||||||
<entry>The <structfield>input</structfield> field is valid.
|
|
||||||
Applications set or clear this flag before calling the
|
|
||||||
<constant>VIDIOC_QBUF</constant> ioctl.</entry>
|
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry><constant>V4L2_BUF_FLAG_PREPARED</constant></entry>
|
<entry><constant>V4L2_BUF_FLAG_PREPARED</constant></entry>
|
||||||
|
@ -53,11 +53,11 @@ cropping and composing rectangles have the same size.</para>
|
|||||||
</mediaobject>
|
</mediaobject>
|
||||||
</figure>
|
</figure>
|
||||||
|
|
||||||
For complete list of the available selection targets see table <xref
|
|
||||||
linkend="v4l2-sel-target"/>
|
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
See <xref linkend="v4l2-selection-targets" /> for more
|
||||||
|
information.
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
|
|
||||||
<title>Configuration</title>
|
<title>Configuration</title>
|
||||||
@ -74,7 +74,7 @@ cropping/composing rectangles may have to be aligned, and both the source and
|
|||||||
the sink may have arbitrary upper and lower size limits. Therefore, as usual,
|
the sink may have arbitrary upper and lower size limits. Therefore, as usual,
|
||||||
drivers are expected to adjust the requested parameters and return the actual
|
drivers are expected to adjust the requested parameters and return the actual
|
||||||
values selected. An application can control the rounding behaviour using <link
|
values selected. An application can control the rounding behaviour using <link
|
||||||
linkend="v4l2-sel-flags"> constraint flags </link>.</para>
|
linkend="v4l2-selection-flags"> constraint flags </link>.</para>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ top/left corner at position <constant> (0,0) </constant>. The rectangle's
|
|||||||
coordinates are expressed in pixels.</para>
|
coordinates are expressed in pixels.</para>
|
||||||
|
|
||||||
<para>The top left corner, width and height of the source rectangle, that is
|
<para>The top left corner, width and height of the source rectangle, that is
|
||||||
the area actually sampled, is given by the <constant> V4L2_SEL_TGT_CROP_ACTIVE
|
the area actually sampled, is given by the <constant> V4L2_SEL_TGT_CROP
|
||||||
</constant> target. It uses the same coordinate system as <constant>
|
</constant> target. It uses the same coordinate system as <constant>
|
||||||
V4L2_SEL_TGT_CROP_BOUNDS </constant>. The active cropping area must lie
|
V4L2_SEL_TGT_CROP_BOUNDS </constant>. The active cropping area must lie
|
||||||
completely inside the capture boundaries. The driver may further adjust the
|
completely inside the capture boundaries. The driver may further adjust the
|
||||||
@ -111,13 +111,13 @@ height are equal to the image size set by <constant> VIDIOC_S_FMT </constant>.
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>The part of a buffer into which the image is inserted by the hardware is
|
<para>The part of a buffer into which the image is inserted by the hardware is
|
||||||
controlled by the <constant> V4L2_SEL_TGT_COMPOSE_ACTIVE </constant> target.
|
controlled by the <constant> V4L2_SEL_TGT_COMPOSE </constant> target.
|
||||||
The rectangle's coordinates are also expressed in the same coordinate system as
|
The rectangle's coordinates are also expressed in the same coordinate system as
|
||||||
the bounds rectangle. The composing rectangle must lie completely inside bounds
|
the bounds rectangle. The composing rectangle must lie completely inside bounds
|
||||||
rectangle. The driver must adjust the composing rectangle to fit to the
|
rectangle. The driver must adjust the composing rectangle to fit to the
|
||||||
bounding limits. Moreover, the driver can perform other adjustments according
|
bounding limits. Moreover, the driver can perform other adjustments according
|
||||||
to hardware limitations. The application can control rounding behaviour using
|
to hardware limitations. The application can control rounding behaviour using
|
||||||
<link linkend="v4l2-sel-flags"> constraint flags </link>.</para>
|
<link linkend="v4l2-selection-flags"> constraint flags </link>.</para>
|
||||||
|
|
||||||
<para>For capture devices the default composing rectangle is queried using
|
<para>For capture devices the default composing rectangle is queried using
|
||||||
<constant> V4L2_SEL_TGT_COMPOSE_DEFAULT </constant>. It is usually equal to the
|
<constant> V4L2_SEL_TGT_COMPOSE_DEFAULT </constant>. It is usually equal to the
|
||||||
@ -125,7 +125,7 @@ bounding rectangle.</para>
|
|||||||
|
|
||||||
<para>The part of a buffer that is modified by the hardware is given by
|
<para>The part of a buffer that is modified by the hardware is given by
|
||||||
<constant> V4L2_SEL_TGT_COMPOSE_PADDED </constant>. It contains all pixels
|
<constant> V4L2_SEL_TGT_COMPOSE_PADDED </constant>. It contains all pixels
|
||||||
defined using <constant> V4L2_SEL_TGT_COMPOSE_ACTIVE </constant> plus all
|
defined using <constant> V4L2_SEL_TGT_COMPOSE </constant> plus all
|
||||||
padding data modified by hardware during insertion process. All pixels outside
|
padding data modified by hardware during insertion process. All pixels outside
|
||||||
this rectangle <emphasis>must not</emphasis> be changed by the hardware. The
|
this rectangle <emphasis>must not</emphasis> be changed by the hardware. The
|
||||||
content of pixels that lie inside the padded area but outside active area is
|
content of pixels that lie inside the padded area but outside active area is
|
||||||
@ -153,7 +153,7 @@ specified using <constant> VIDIOC_S_FMT </constant> ioctl.</para>
|
|||||||
|
|
||||||
<para>The top left corner, width and height of the source rectangle, that is
|
<para>The top left corner, width and height of the source rectangle, that is
|
||||||
the area from which image date are processed by the hardware, is given by the
|
the area from which image date are processed by the hardware, is given by the
|
||||||
<constant> V4L2_SEL_TGT_CROP_ACTIVE </constant>. Its coordinates are expressed
|
<constant> V4L2_SEL_TGT_CROP </constant>. Its coordinates are expressed
|
||||||
in in the same coordinate system as the bounds rectangle. The active cropping
|
in in the same coordinate system as the bounds rectangle. The active cropping
|
||||||
area must lie completely inside the crop boundaries and the driver may further
|
area must lie completely inside the crop boundaries and the driver may further
|
||||||
adjust the requested size and/or position according to hardware
|
adjust the requested size and/or position according to hardware
|
||||||
@ -165,7 +165,7 @@ bounding rectangle.</para>
|
|||||||
|
|
||||||
<para>The part of a video signal or graphics display where the image is
|
<para>The part of a video signal or graphics display where the image is
|
||||||
inserted by the hardware is controlled by <constant>
|
inserted by the hardware is controlled by <constant>
|
||||||
V4L2_SEL_TGT_COMPOSE_ACTIVE </constant> target. The rectangle's coordinates
|
V4L2_SEL_TGT_COMPOSE </constant> target. The rectangle's coordinates
|
||||||
are expressed in pixels. The composing rectangle must lie completely inside the
|
are expressed in pixels. The composing rectangle must lie completely inside the
|
||||||
bounds rectangle. The driver must adjust the area to fit to the bounding
|
bounds rectangle. The driver must adjust the area to fit to the bounding
|
||||||
limits. Moreover, the driver can perform other adjustments according to
|
limits. Moreover, the driver can perform other adjustments according to
|
||||||
@ -184,7 +184,7 @@ such a padded area is driver-dependent feature not covered by this document.
|
|||||||
Driver developers are encouraged to keep padded rectangle equal to active one.
|
Driver developers are encouraged to keep padded rectangle equal to active one.
|
||||||
The padded target is accessed by the <constant> V4L2_SEL_TGT_COMPOSE_PADDED
|
The padded target is accessed by the <constant> V4L2_SEL_TGT_COMPOSE_PADDED
|
||||||
</constant> identifier. It must contain all pixels from the <constant>
|
</constant> identifier. It must contain all pixels from the <constant>
|
||||||
V4L2_SEL_TGT_COMPOSE_ACTIVE </constant> target.</para>
|
V4L2_SEL_TGT_COMPOSE </constant> target.</para>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@ -193,8 +193,8 @@ V4L2_SEL_TGT_COMPOSE_ACTIVE </constant> target.</para>
|
|||||||
<title>Scaling control</title>
|
<title>Scaling control</title>
|
||||||
|
|
||||||
<para>An application can detect if scaling is performed by comparing the width
|
<para>An application can detect if scaling is performed by comparing the width
|
||||||
and the height of rectangles obtained using <constant> V4L2_SEL_TGT_CROP_ACTIVE
|
and the height of rectangles obtained using <constant> V4L2_SEL_TGT_CROP
|
||||||
</constant> and <constant> V4L2_SEL_TGT_COMPOSE_ACTIVE </constant> targets. If
|
</constant> and <constant> V4L2_SEL_TGT_COMPOSE </constant> targets. If
|
||||||
these are not equal then the scaling is applied. The application can compute
|
these are not equal then the scaling is applied. The application can compute
|
||||||
the scaling ratios using these values.</para>
|
the scaling ratios using these values.</para>
|
||||||
|
|
||||||
@ -252,7 +252,7 @@ area)</para>
|
|||||||
ret = ioctl(fd, &VIDIOC-G-SELECTION;, &sel);
|
ret = ioctl(fd, &VIDIOC-G-SELECTION;, &sel);
|
||||||
if (ret)
|
if (ret)
|
||||||
exit(-1);
|
exit(-1);
|
||||||
sel.target = V4L2_SEL_TGT_CROP_ACTIVE;
|
sel.target = V4L2_SEL_TGT_CROP;
|
||||||
ret = ioctl(fd, &VIDIOC-S-SELECTION;, &sel);
|
ret = ioctl(fd, &VIDIOC-S-SELECTION;, &sel);
|
||||||
if (ret)
|
if (ret)
|
||||||
exit(-1);
|
exit(-1);
|
||||||
@ -281,7 +281,7 @@ area)</para>
|
|||||||
r.left = sel.r.width / 4;
|
r.left = sel.r.width / 4;
|
||||||
r.top = sel.r.height / 4;
|
r.top = sel.r.height / 4;
|
||||||
sel.r = r;
|
sel.r = r;
|
||||||
sel.target = V4L2_SEL_TGT_COMPOSE_ACTIVE;
|
sel.target = V4L2_SEL_TGT_COMPOSE;
|
||||||
sel.flags = V4L2_SEL_FLAG_LE;
|
sel.flags = V4L2_SEL_FLAG_LE;
|
||||||
ret = ioctl(fd, &VIDIOC-S-SELECTION;, &sel);
|
ret = ioctl(fd, &VIDIOC-S-SELECTION;, &sel);
|
||||||
if (ret)
|
if (ret)
|
||||||
@ -298,11 +298,11 @@ V4L2_BUF_TYPE_VIDEO_OUTPUT </constant> for other devices</para>
|
|||||||
|
|
||||||
&v4l2-selection; compose = {
|
&v4l2-selection; compose = {
|
||||||
.type = V4L2_BUF_TYPE_VIDEO_OUTPUT,
|
.type = V4L2_BUF_TYPE_VIDEO_OUTPUT,
|
||||||
.target = V4L2_SEL_TGT_COMPOSE_ACTIVE,
|
.target = V4L2_SEL_TGT_COMPOSE,
|
||||||
};
|
};
|
||||||
&v4l2-selection; crop = {
|
&v4l2-selection; crop = {
|
||||||
.type = V4L2_BUF_TYPE_VIDEO_OUTPUT,
|
.type = V4L2_BUF_TYPE_VIDEO_OUTPUT,
|
||||||
.target = V4L2_SEL_TGT_CROP_ACTIVE,
|
.target = V4L2_SEL_TGT_CROP,
|
||||||
};
|
};
|
||||||
double hscale, vscale;
|
double hscale, vscale;
|
||||||
|
|
||||||
|
164
Documentation/DocBook/media/v4l/selections-common.xml
Normal file
164
Documentation/DocBook/media/v4l/selections-common.xml
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
<section id="v4l2-selections-common">
|
||||||
|
|
||||||
|
<title>Common selection definitions</title>
|
||||||
|
|
||||||
|
<para>While the <link linkend="selection-api">V4L2 selection
|
||||||
|
API</link> and <link linkend="v4l2-subdev-selections">V4L2 subdev
|
||||||
|
selection APIs</link> are very similar, there's one fundamental
|
||||||
|
difference between the two. On sub-device API, the selection
|
||||||
|
rectangle refers to the media bus format, and is bound to a
|
||||||
|
sub-device's pad. On the V4L2 interface the selection rectangles
|
||||||
|
refer to the in-memory pixel format.</para>
|
||||||
|
|
||||||
|
<para>This section defines the common definitions of the
|
||||||
|
selection interfaces on the two APIs.</para>
|
||||||
|
|
||||||
|
<section id="v4l2-selection-targets">
|
||||||
|
|
||||||
|
<title>Selection targets</title>
|
||||||
|
|
||||||
|
<para>The precise meaning of the selection targets may be
|
||||||
|
dependent on which of the two interfaces they are used.</para>
|
||||||
|
|
||||||
|
<table pgwide="1" frame="none" id="v4l2-selection-targets-table">
|
||||||
|
<title>Selection target definitions</title>
|
||||||
|
<tgroup cols="5">
|
||||||
|
<colspec colname="c1" />
|
||||||
|
<colspec colname="c2" />
|
||||||
|
<colspec colname="c3" />
|
||||||
|
<colspec colname="c4" />
|
||||||
|
<colspec colname="c5" />
|
||||||
|
&cs-def;
|
||||||
|
<thead>
|
||||||
|
<row rowsep="1">
|
||||||
|
<entry align="left">Target name</entry>
|
||||||
|
<entry align="left">id</entry>
|
||||||
|
<entry align="left">Definition</entry>
|
||||||
|
<entry align="left">Valid for V4L2</entry>
|
||||||
|
<entry align="left">Valid for V4L2 subdev</entry>
|
||||||
|
</row>
|
||||||
|
</thead>
|
||||||
|
<tbody valign="top">
|
||||||
|
<row>
|
||||||
|
<entry><constant>V4L2_SEL_TGT_CROP</constant></entry>
|
||||||
|
<entry>0x0000</entry>
|
||||||
|
<entry>Crop rectangle. Defines the cropped area.</entry>
|
||||||
|
<entry>Yes</entry>
|
||||||
|
<entry>Yes</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry><constant>V4L2_SEL_TGT_CROP_DEFAULT</constant></entry>
|
||||||
|
<entry>0x0001</entry>
|
||||||
|
<entry>Suggested cropping rectangle that covers the "whole picture".</entry>
|
||||||
|
<entry>Yes</entry>
|
||||||
|
<entry>No</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry><constant>V4L2_SEL_TGT_CROP_BOUNDS</constant></entry>
|
||||||
|
<entry>0x0002</entry>
|
||||||
|
<entry>Bounds of the crop rectangle. All valid crop
|
||||||
|
rectangles fit inside the crop bounds rectangle.
|
||||||
|
</entry>
|
||||||
|
<entry>Yes</entry>
|
||||||
|
<entry>Yes</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry><constant>V4L2_SEL_TGT_COMPOSE</constant></entry>
|
||||||
|
<entry>0x0100</entry>
|
||||||
|
<entry>Compose rectangle. Used to configure scaling
|
||||||
|
and composition.</entry>
|
||||||
|
<entry>Yes</entry>
|
||||||
|
<entry>Yes</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry><constant>V4L2_SEL_TGT_COMPOSE_DEFAULT</constant></entry>
|
||||||
|
<entry>0x0101</entry>
|
||||||
|
<entry>Suggested composition rectangle that covers the "whole picture".</entry>
|
||||||
|
<entry>Yes</entry>
|
||||||
|
<entry>No</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry><constant>V4L2_SEL_TGT_COMPOSE_BOUNDS</constant></entry>
|
||||||
|
<entry>0x0102</entry>
|
||||||
|
<entry>Bounds of the compose rectangle. All valid compose
|
||||||
|
rectangles fit inside the compose bounds rectangle.</entry>
|
||||||
|
<entry>Yes</entry>
|
||||||
|
<entry>Yes</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry><constant>V4L2_SEL_TGT_COMPOSE_PADDED</constant></entry>
|
||||||
|
<entry>0x0103</entry>
|
||||||
|
<entry>The active area and all padding pixels that are inserted or
|
||||||
|
modified by hardware.</entry>
|
||||||
|
<entry>Yes</entry>
|
||||||
|
<entry>No</entry>
|
||||||
|
</row>
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="v4l2-selection-flags">
|
||||||
|
|
||||||
|
<title>Selection flags</title>
|
||||||
|
|
||||||
|
<table pgwide="1" frame="none" id="v4l2-selection-flags-table">
|
||||||
|
<title>Selection flag definitions</title>
|
||||||
|
<tgroup cols="5">
|
||||||
|
<colspec colname="c1" />
|
||||||
|
<colspec colname="c2" />
|
||||||
|
<colspec colname="c3" />
|
||||||
|
<colspec colname="c4" />
|
||||||
|
<colspec colname="c5" />
|
||||||
|
&cs-def;
|
||||||
|
<thead>
|
||||||
|
<row rowsep="1">
|
||||||
|
<entry align="left">Flag name</entry>
|
||||||
|
<entry align="left">id</entry>
|
||||||
|
<entry align="left">Definition</entry>
|
||||||
|
<entry align="left">Valid for V4L2</entry>
|
||||||
|
<entry align="left">Valid for V4L2 subdev</entry>
|
||||||
|
</row>
|
||||||
|
</thead>
|
||||||
|
<tbody valign="top">
|
||||||
|
<row>
|
||||||
|
<entry><constant>V4L2_SEL_FLAG_GE</constant></entry>
|
||||||
|
<entry>(1 << 0)</entry>
|
||||||
|
<entry>Suggest the driver it should choose greater or
|
||||||
|
equal rectangle (in size) than was requested. Albeit the
|
||||||
|
driver may choose a lesser size, it will only do so due to
|
||||||
|
hardware limitations. Without this flag (and
|
||||||
|
<constant>V4L2_SEL_FLAG_LE</constant>) the
|
||||||
|
behaviour is to choose the closest possible
|
||||||
|
rectangle.</entry>
|
||||||
|
<entry>Yes</entry>
|
||||||
|
<entry>Yes</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry><constant>V4L2_SEL_FLAG_LE</constant></entry>
|
||||||
|
<entry>(1 << 1)</entry>
|
||||||
|
<entry>Suggest the driver it
|
||||||
|
should choose lesser or equal rectangle (in size) than was
|
||||||
|
requested. Albeit the driver may choose a greater size, it
|
||||||
|
will only do so due to hardware limitations.</entry>
|
||||||
|
<entry>Yes</entry>
|
||||||
|
<entry>Yes</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry><constant>V4L2_SEL_FLAG_KEEP_CONFIG</constant></entry>
|
||||||
|
<entry>(1 << 2)</entry>
|
||||||
|
<entry>The configuration must not be propagated to any
|
||||||
|
further processing steps. If this flag is not given, the
|
||||||
|
configuration is propagated inside the subdevice to all
|
||||||
|
further processing steps.</entry>
|
||||||
|
<entry>No</entry>
|
||||||
|
<entry>Yes</entry>
|
||||||
|
</row>
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</section>
|
@ -140,6 +140,11 @@ structs, ioctls) must be noted in more detail in the history chapter
|
|||||||
applications. -->
|
applications. -->
|
||||||
|
|
||||||
<revision>
|
<revision>
|
||||||
|
<revnumber>3.6</revnumber>
|
||||||
|
<date>2012-07-02</date>
|
||||||
|
<authorinitials>hv</authorinitials>
|
||||||
|
<revremark>Added VIDIOC_ENUM_FREQ_BANDS.
|
||||||
|
</revremark>
|
||||||
<revnumber>3.5</revnumber>
|
<revnumber>3.5</revnumber>
|
||||||
<date>2012-05-07</date>
|
<date>2012-05-07</date>
|
||||||
<authorinitials>sa, sn</authorinitials>
|
<authorinitials>sa, sn</authorinitials>
|
||||||
@ -534,6 +539,7 @@ and discussions on the V4L mailing list.</revremark>
|
|||||||
&sub-enum-fmt;
|
&sub-enum-fmt;
|
||||||
&sub-enum-framesizes;
|
&sub-enum-framesizes;
|
||||||
&sub-enum-frameintervals;
|
&sub-enum-frameintervals;
|
||||||
|
&sub-enum-freq-bands;
|
||||||
&sub-enuminput;
|
&sub-enuminput;
|
||||||
&sub-enumoutput;
|
&sub-enumoutput;
|
||||||
&sub-enumstd;
|
&sub-enumstd;
|
||||||
@ -589,6 +595,11 @@ and discussions on the V4L mailing list.</revremark>
|
|||||||
&sub-write;
|
&sub-write;
|
||||||
</appendix>
|
</appendix>
|
||||||
|
|
||||||
|
<appendix>
|
||||||
|
<title>Common definitions for V4L2 and V4L2 subdev interfaces</title>
|
||||||
|
&sub-selections-common;
|
||||||
|
</appendix>
|
||||||
|
|
||||||
<appendix id="videodev">
|
<appendix id="videodev">
|
||||||
<title>Video For Linux Two Header File</title>
|
<title>Video For Linux Two Header File</title>
|
||||||
&sub-videodev2-h;
|
&sub-videodev2-h;
|
||||||
|
@ -64,7 +64,7 @@ different sizes.</para>
|
|||||||
<para>To allocate device buffers applications initialize relevant fields of
|
<para>To allocate device buffers applications initialize relevant fields of
|
||||||
the <structname>v4l2_create_buffers</structname> structure. They set the
|
the <structname>v4l2_create_buffers</structname> structure. They set the
|
||||||
<structfield>type</structfield> field in the
|
<structfield>type</structfield> field in the
|
||||||
<structname>v4l2_format</structname> structure, embedded in this
|
&v4l2-format; structure, embedded in this
|
||||||
structure, to the respective stream or buffer type.
|
structure, to the respective stream or buffer type.
|
||||||
<structfield>count</structfield> must be set to the number of required buffers.
|
<structfield>count</structfield> must be set to the number of required buffers.
|
||||||
<structfield>memory</structfield> specifies the required I/O method. The
|
<structfield>memory</structfield> specifies the required I/O method. The
|
||||||
@ -97,7 +97,13 @@ information.</para>
|
|||||||
<row>
|
<row>
|
||||||
<entry>__u32</entry>
|
<entry>__u32</entry>
|
||||||
<entry><structfield>count</structfield></entry>
|
<entry><structfield>count</structfield></entry>
|
||||||
<entry>The number of buffers requested or granted.</entry>
|
<entry>The number of buffers requested or granted. If count == 0, then
|
||||||
|
<constant>VIDIOC_CREATE_BUFS</constant> will set <structfield>index</structfield>
|
||||||
|
to the current number of created buffers, and it will check the validity of
|
||||||
|
<structfield>memory</structfield> and <structfield>format.type</structfield>.
|
||||||
|
If those are invalid -1 is returned and errno is set to &EINVAL;,
|
||||||
|
otherwise <constant>VIDIOC_CREATE_BUFS</constant> returns 0. It will
|
||||||
|
never set errno to &EBUSY; in this particular case.</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>__u32</entry>
|
<entry>__u32</entry>
|
||||||
@ -108,7 +114,7 @@ information.</para>
|
|||||||
/></entry>
|
/></entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>struct v4l2_format</entry>
|
<entry>&v4l2-format;</entry>
|
||||||
<entry><structfield>format</structfield></entry>
|
<entry><structfield>format</structfield></entry>
|
||||||
<entry>Filled in by the application, preserved by the driver.</entry>
|
<entry>Filled in by the application, preserved by the driver.</entry>
|
||||||
</row>
|
</row>
|
||||||
|
@ -54,15 +54,9 @@
|
|||||||
interface and may change in the future.</para>
|
interface and may change in the future.</para>
|
||||||
</note>
|
</note>
|
||||||
|
|
||||||
<para>To query the available timings, applications initialize the
|
<para>To query the capabilities of the DV receiver/transmitter applications can call
|
||||||
<structfield>index</structfield> field and zero the reserved array of &v4l2-dv-timings-cap;
|
this ioctl and the driver will fill in the structure. Note that drivers may return
|
||||||
and call the <constant>VIDIOC_DV_TIMINGS_CAP</constant> ioctl with a pointer to this
|
different values after switching the video input or output.</para>
|
||||||
structure. Drivers fill the rest of the structure or return an
|
|
||||||
&EINVAL; when the index is out of bounds. To enumerate all supported DV timings,
|
|
||||||
applications shall begin at index zero, incrementing by one until the
|
|
||||||
driver returns <errorcode>EINVAL</errorcode>. Note that drivers may enumerate a
|
|
||||||
different set of DV timings after switching the video input or
|
|
||||||
output.</para>
|
|
||||||
|
|
||||||
<table pgwide="1" frame="none" id="v4l2-bt-timings-cap">
|
<table pgwide="1" frame="none" id="v4l2-bt-timings-cap">
|
||||||
<title>struct <structname>v4l2_bt_timings_cap</structname></title>
|
<title>struct <structname>v4l2_bt_timings_cap</structname></title>
|
||||||
@ -115,7 +109,7 @@ output.</para>
|
|||||||
<row>
|
<row>
|
||||||
<entry>__u32</entry>
|
<entry>__u32</entry>
|
||||||
<entry><structfield>reserved</structfield>[16]</entry>
|
<entry><structfield>reserved</structfield>[16]</entry>
|
||||||
<entry></entry>
|
<entry>Reserved for future extensions. Drivers must set the array to zero.</entry>
|
||||||
</row>
|
</row>
|
||||||
</tbody>
|
</tbody>
|
||||||
</tgroup>
|
</tgroup>
|
||||||
|
179
Documentation/DocBook/media/v4l/vidioc-enum-freq-bands.xml
Normal file
179
Documentation/DocBook/media/v4l/vidioc-enum-freq-bands.xml
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
<refentry id="vidioc-enum-freq-bands">
|
||||||
|
<refmeta>
|
||||||
|
<refentrytitle>ioctl VIDIOC_ENUM_FREQ_BANDS</refentrytitle>
|
||||||
|
&manvol;
|
||||||
|
</refmeta>
|
||||||
|
|
||||||
|
<refnamediv>
|
||||||
|
<refname>VIDIOC_ENUM_FREQ_BANDS</refname>
|
||||||
|
<refpurpose>Enumerate supported frequency bands</refpurpose>
|
||||||
|
</refnamediv>
|
||||||
|
|
||||||
|
<refsynopsisdiv>
|
||||||
|
<funcsynopsis>
|
||||||
|
<funcprototype>
|
||||||
|
<funcdef>int <function>ioctl</function></funcdef>
|
||||||
|
<paramdef>int <parameter>fd</parameter></paramdef>
|
||||||
|
<paramdef>int <parameter>request</parameter></paramdef>
|
||||||
|
<paramdef>struct v4l2_frequency_band
|
||||||
|
*<parameter>argp</parameter></paramdef>
|
||||||
|
</funcprototype>
|
||||||
|
</funcsynopsis>
|
||||||
|
</refsynopsisdiv>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>Arguments</title>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term><parameter>fd</parameter></term>
|
||||||
|
<listitem>
|
||||||
|
<para>&fd;</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term><parameter>request</parameter></term>
|
||||||
|
<listitem>
|
||||||
|
<para>VIDIOC_ENUM_FREQ_BANDS</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term><parameter>argp</parameter></term>
|
||||||
|
<listitem>
|
||||||
|
<para></para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>Description</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Experimental</title>
|
||||||
|
<para>This is an <link linkend="experimental"> experimental </link>
|
||||||
|
interface and may change in the future.</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>Enumerates the frequency bands that a tuner or modulator supports.
|
||||||
|
To do this applications initialize the <structfield>tuner</structfield>,
|
||||||
|
<structfield>type</structfield> and <structfield>index</structfield> fields,
|
||||||
|
and zero out the <structfield>reserved</structfield> array of a &v4l2-frequency-band; and
|
||||||
|
call the <constant>VIDIOC_ENUM_FREQ_BANDS</constant> ioctl with a pointer
|
||||||
|
to this structure.</para>
|
||||||
|
|
||||||
|
<para>This ioctl is supported if the <constant>V4L2_TUNER_CAP_FREQ_BANDS</constant> capability
|
||||||
|
of the corresponding tuner/modulator is set.</para>
|
||||||
|
|
||||||
|
<table pgwide="1" frame="none" id="v4l2-frequency-band">
|
||||||
|
<title>struct <structname>v4l2_frequency_band</structname></title>
|
||||||
|
<tgroup cols="3">
|
||||||
|
&cs-str;
|
||||||
|
<tbody valign="top">
|
||||||
|
<row>
|
||||||
|
<entry>__u32</entry>
|
||||||
|
<entry><structfield>tuner</structfield></entry>
|
||||||
|
<entry>The tuner or modulator index number. This is the
|
||||||
|
same value as in the &v4l2-input; <structfield>tuner</structfield>
|
||||||
|
field and the &v4l2-tuner; <structfield>index</structfield> field, or
|
||||||
|
the &v4l2-output; <structfield>modulator</structfield> field and the
|
||||||
|
&v4l2-modulator; <structfield>index</structfield> field.</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>__u32</entry>
|
||||||
|
<entry><structfield>type</structfield></entry>
|
||||||
|
<entry>The tuner type. This is the same value as in the
|
||||||
|
&v4l2-tuner; <structfield>type</structfield> field. The type must be set
|
||||||
|
to <constant>V4L2_TUNER_RADIO</constant> for <filename>/dev/radioX</filename>
|
||||||
|
device nodes, and to <constant>V4L2_TUNER_ANALOG_TV</constant>
|
||||||
|
for all others. Set this field to <constant>V4L2_TUNER_RADIO</constant> for
|
||||||
|
modulators (currently only radio modulators are supported).
|
||||||
|
See <xref linkend="v4l2-tuner-type" /></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>__u32</entry>
|
||||||
|
<entry><structfield>index</structfield></entry>
|
||||||
|
<entry>Identifies the frequency band, set by the application.</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>__u32</entry>
|
||||||
|
<entry><structfield>capability</structfield></entry>
|
||||||
|
<entry spanname="hspan">The tuner/modulator capability flags for
|
||||||
|
this frequency band, see <xref linkend="tuner-capability" />. The <constant>V4L2_TUNER_CAP_LOW</constant>
|
||||||
|
capability must be the same for all frequency bands of the selected tuner/modulator.
|
||||||
|
So either all bands have that capability set, or none of them have that capability.</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>__u32</entry>
|
||||||
|
<entry><structfield>rangelow</structfield></entry>
|
||||||
|
<entry spanname="hspan">The lowest tunable frequency in
|
||||||
|
units of 62.5 kHz, or if the <structfield>capability</structfield>
|
||||||
|
flag <constant>V4L2_TUNER_CAP_LOW</constant> is set, in units of 62.5
|
||||||
|
Hz, for this frequency band.</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>__u32</entry>
|
||||||
|
<entry><structfield>rangehigh</structfield></entry>
|
||||||
|
<entry spanname="hspan">The highest tunable frequency in
|
||||||
|
units of 62.5 kHz, or if the <structfield>capability</structfield>
|
||||||
|
flag <constant>V4L2_TUNER_CAP_LOW</constant> is set, in units of 62.5
|
||||||
|
Hz, for this frequency band.</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>__u32</entry>
|
||||||
|
<entry><structfield>modulation</structfield></entry>
|
||||||
|
<entry spanname="hspan">The supported modulation systems of this frequency band.
|
||||||
|
See <xref linkend="band-modulation" />. Note that currently only one
|
||||||
|
modulation system per frequency band is supported. More work will need to
|
||||||
|
be done if multiple modulation systems are possible. Contact the
|
||||||
|
linux-media mailing list (&v4l-ml;) if you need that functionality.</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>__u32</entry>
|
||||||
|
<entry><structfield>reserved</structfield>[9]</entry>
|
||||||
|
<entry>Reserved for future extensions. Applications and drivers
|
||||||
|
must set the array to zero.</entry>
|
||||||
|
</row>
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<table pgwide="1" frame="none" id="band-modulation">
|
||||||
|
<title>Band Modulation Systems</title>
|
||||||
|
<tgroup cols="3">
|
||||||
|
&cs-def;
|
||||||
|
<tbody valign="top">
|
||||||
|
<row>
|
||||||
|
<entry><constant>V4L2_BAND_MODULATION_VSB</constant></entry>
|
||||||
|
<entry>0x02</entry>
|
||||||
|
<entry>Vestigial Sideband modulation, used for analog TV.</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry><constant>V4L2_BAND_MODULATION_FM</constant></entry>
|
||||||
|
<entry>0x04</entry>
|
||||||
|
<entry>Frequency Modulation, commonly used for analog radio.</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry><constant>V4L2_BAND_MODULATION_AM</constant></entry>
|
||||||
|
<entry>0x08</entry>
|
||||||
|
<entry>Amplitude Modulation, commonly used for analog radio.</entry>
|
||||||
|
</row>
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</table>
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
&return-value;
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term><errorcode>EINVAL</errorcode></term>
|
||||||
|
<listitem>
|
||||||
|
<para>The <structfield>tuner</structfield> or <structfield>index</structfield>
|
||||||
|
is out of bounds or the <structfield>type</structfield> field is wrong.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
</refsect1>
|
||||||
|
</refentry>
|
@ -98,11 +98,12 @@ the &v4l2-output; <structfield>modulator</structfield> field and the
|
|||||||
<entry>__u32</entry>
|
<entry>__u32</entry>
|
||||||
<entry><structfield>type</structfield></entry>
|
<entry><structfield>type</structfield></entry>
|
||||||
<entry>The tuner type. This is the same value as in the
|
<entry>The tuner type. This is the same value as in the
|
||||||
&v4l2-tuner; <structfield>type</structfield> field. See The type must be set
|
&v4l2-tuner; <structfield>type</structfield> field. The type must be set
|
||||||
to <constant>V4L2_TUNER_RADIO</constant> for <filename>/dev/radioX</filename>
|
to <constant>V4L2_TUNER_RADIO</constant> for <filename>/dev/radioX</filename>
|
||||||
device nodes, and to <constant>V4L2_TUNER_ANALOG_TV</constant>
|
device nodes, and to <constant>V4L2_TUNER_ANALOG_TV</constant>
|
||||||
for all others. The field is not applicable to modulators, &ie; ignored
|
for all others. Set this field to <constant>V4L2_TUNER_RADIO</constant> for
|
||||||
by drivers. See <xref linkend="v4l2-tuner-type" /></entry>
|
modulators (currently only radio modulators are supported).
|
||||||
|
See <xref linkend="v4l2-tuner-type" /></entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>__u32</entry>
|
<entry>__u32</entry>
|
||||||
@ -135,6 +136,12 @@ bounds or the value in the <structfield>type</structfield> field is
|
|||||||
wrong.</para>
|
wrong.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term><errorcode>EBUSY</errorcode></term>
|
||||||
|
<listitem>
|
||||||
|
<para>A hardware seek is in progress.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
</variablelist>
|
</variablelist>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
</refentry>
|
</refentry>
|
||||||
|
@ -65,9 +65,9 @@ Do not use multiplanar buffers. Use <constant> V4L2_BUF_TYPE_VIDEO_CAPTURE
|
|||||||
</constant>. Use <constant> V4L2_BUF_TYPE_VIDEO_OUTPUT </constant> instead of
|
</constant>. Use <constant> V4L2_BUF_TYPE_VIDEO_OUTPUT </constant> instead of
|
||||||
<constant> V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE </constant>. The next step is
|
<constant> V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE </constant>. The next step is
|
||||||
setting the value of &v4l2-selection; <structfield>target</structfield> field
|
setting the value of &v4l2-selection; <structfield>target</structfield> field
|
||||||
to <constant> V4L2_SEL_TGT_CROP_ACTIVE </constant> (<constant>
|
to <constant> V4L2_SEL_TGT_CROP </constant> (<constant>
|
||||||
V4L2_SEL_TGT_COMPOSE_ACTIVE </constant>). Please refer to table <xref
|
V4L2_SEL_TGT_COMPOSE </constant>). Please refer to table <xref
|
||||||
linkend="v4l2-sel-target" /> or <xref linkend="selection-api" /> for additional
|
linkend="v4l2-selections-common" /> or <xref linkend="selection-api" /> for additional
|
||||||
targets. The <structfield>flags</structfield> and <structfield>reserved
|
targets. The <structfield>flags</structfield> and <structfield>reserved
|
||||||
</structfield> fields of &v4l2-selection; are ignored and they must be filled
|
</structfield> fields of &v4l2-selection; are ignored and they must be filled
|
||||||
with zeros. The driver fills the rest of the structure or
|
with zeros. The driver fills the rest of the structure or
|
||||||
@ -86,9 +86,9 @@ use multiplanar buffers. Use <constant> V4L2_BUF_TYPE_VIDEO_CAPTURE
|
|||||||
</constant>. Use <constant> V4L2_BUF_TYPE_VIDEO_OUTPUT </constant> instead of
|
</constant>. Use <constant> V4L2_BUF_TYPE_VIDEO_OUTPUT </constant> instead of
|
||||||
<constant> V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE </constant>. The next step is
|
<constant> V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE </constant>. The next step is
|
||||||
setting the value of &v4l2-selection; <structfield>target</structfield> to
|
setting the value of &v4l2-selection; <structfield>target</structfield> to
|
||||||
<constant>V4L2_SEL_TGT_CROP_ACTIVE</constant> (<constant>
|
<constant>V4L2_SEL_TGT_CROP</constant> (<constant>
|
||||||
V4L2_SEL_TGT_COMPOSE_ACTIVE </constant>). Please refer to table <xref
|
V4L2_SEL_TGT_COMPOSE </constant>). Please refer to table <xref
|
||||||
linkend="v4l2-sel-target" /> or <xref linkend="selection-api" /> for additional
|
linkend="v4l2-selections-common" /> or <xref linkend="selection-api" /> for additional
|
||||||
targets. The &v4l2-rect; <structfield>r</structfield> rectangle need to be
|
targets. The &v4l2-rect; <structfield>r</structfield> rectangle need to be
|
||||||
set to the desired active area. Field &v4l2-selection; <structfield> reserved
|
set to the desired active area. Field &v4l2-selection; <structfield> reserved
|
||||||
</structfield> is ignored and must be filled with zeros. The driver may adjust
|
</structfield> is ignored and must be filled with zeros. The driver may adjust
|
||||||
@ -154,74 +154,8 @@ exist no rectangle </emphasis> that satisfies the constraints.</para>
|
|||||||
|
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
<refsect1>
|
<para>Selection targets and flags are documented in <xref
|
||||||
<table frame="none" pgwide="1" id="v4l2-sel-target">
|
linkend="v4l2-selections-common"/>.</para>
|
||||||
<title>Selection targets.</title>
|
|
||||||
<tgroup cols="3">
|
|
||||||
&cs-def;
|
|
||||||
<tbody valign="top">
|
|
||||||
<row>
|
|
||||||
<entry><constant>V4L2_SEL_TGT_CROP_ACTIVE</constant></entry>
|
|
||||||
<entry>0x0000</entry>
|
|
||||||
<entry>The area that is currently cropped by hardware.</entry>
|
|
||||||
</row>
|
|
||||||
<row>
|
|
||||||
<entry><constant>V4L2_SEL_TGT_CROP_DEFAULT</constant></entry>
|
|
||||||
<entry>0x0001</entry>
|
|
||||||
<entry>Suggested cropping rectangle that covers the "whole picture".</entry>
|
|
||||||
</row>
|
|
||||||
<row>
|
|
||||||
<entry><constant>V4L2_SEL_TGT_CROP_BOUNDS</constant></entry>
|
|
||||||
<entry>0x0002</entry>
|
|
||||||
<entry>Limits for the cropping rectangle.</entry>
|
|
||||||
</row>
|
|
||||||
<row>
|
|
||||||
<entry><constant>V4L2_SEL_TGT_COMPOSE_ACTIVE</constant></entry>
|
|
||||||
<entry>0x0100</entry>
|
|
||||||
<entry>The area to which data is composed by hardware.</entry>
|
|
||||||
</row>
|
|
||||||
<row>
|
|
||||||
<entry><constant>V4L2_SEL_TGT_COMPOSE_DEFAULT</constant></entry>
|
|
||||||
<entry>0x0101</entry>
|
|
||||||
<entry>Suggested composing rectangle that covers the "whole picture".</entry>
|
|
||||||
</row>
|
|
||||||
<row>
|
|
||||||
<entry><constant>V4L2_SEL_TGT_COMPOSE_BOUNDS</constant></entry>
|
|
||||||
<entry>0x0102</entry>
|
|
||||||
<entry>Limits for the composing rectangle.</entry>
|
|
||||||
</row>
|
|
||||||
<row>
|
|
||||||
<entry><constant>V4L2_SEL_TGT_COMPOSE_PADDED</constant></entry>
|
|
||||||
<entry>0x0103</entry>
|
|
||||||
<entry>The active area and all padding pixels that are inserted or modified by hardware.</entry>
|
|
||||||
</row>
|
|
||||||
</tbody>
|
|
||||||
</tgroup>
|
|
||||||
</table>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<table frame="none" pgwide="1" id="v4l2-sel-flags">
|
|
||||||
<title>Selection constraint flags</title>
|
|
||||||
<tgroup cols="3">
|
|
||||||
&cs-def;
|
|
||||||
<tbody valign="top">
|
|
||||||
<row>
|
|
||||||
<entry><constant>V4L2_SEL_FLAG_GE</constant></entry>
|
|
||||||
<entry>0x00000001</entry>
|
|
||||||
<entry>Indicates that the adjusted rectangle must contain the original
|
|
||||||
&v4l2-selection; <structfield>r</structfield> rectangle.</entry>
|
|
||||||
</row>
|
|
||||||
<row>
|
|
||||||
<entry><constant>V4L2_SEL_FLAG_LE</constant></entry>
|
|
||||||
<entry>0x00000002</entry>
|
|
||||||
<entry>Indicates that the adjusted rectangle must be inside the original
|
|
||||||
&v4l2-rect; <structfield>r</structfield> rectangle.</entry>
|
|
||||||
</row>
|
|
||||||
</tbody>
|
|
||||||
</tgroup>
|
|
||||||
</table>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<figure id="sel-const-adjust">
|
<figure id="sel-const-adjust">
|
||||||
@ -252,14 +186,14 @@ exist no rectangle </emphasis> that satisfies the constraints.</para>
|
|||||||
<row>
|
<row>
|
||||||
<entry>__u32</entry>
|
<entry>__u32</entry>
|
||||||
<entry><structfield>target</structfield></entry>
|
<entry><structfield>target</structfield></entry>
|
||||||
<entry>Used to select between <link linkend="v4l2-sel-target"> cropping
|
<entry>Used to select between <link linkend="v4l2-selections-common"> cropping
|
||||||
and composing rectangles</link>.</entry>
|
and composing rectangles</link>.</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>__u32</entry>
|
<entry>__u32</entry>
|
||||||
<entry><structfield>flags</structfield></entry>
|
<entry><structfield>flags</structfield></entry>
|
||||||
<entry>Flags controlling the selection rectangle adjustments, refer to
|
<entry>Flags controlling the selection rectangle adjustments, refer to
|
||||||
<link linkend="v4l2-sel-flags">selection flags</link>.</entry>
|
<link linkend="v4l2-selection-flags">selection flags</link>.</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>&v4l2-rect;</entry>
|
<entry>&v4l2-rect;</entry>
|
||||||
|
@ -119,10 +119,14 @@ field is not quite clear.--></para></entry>
|
|||||||
<xref linkend="tuner-capability" />. Audio flags indicate the ability
|
<xref linkend="tuner-capability" />. Audio flags indicate the ability
|
||||||
to decode audio subprograms. They will <emphasis>not</emphasis>
|
to decode audio subprograms. They will <emphasis>not</emphasis>
|
||||||
change, for example with the current video standard.</para><para>When
|
change, for example with the current video standard.</para><para>When
|
||||||
the structure refers to a radio tuner only the
|
the structure refers to a radio tuner the
|
||||||
<constant>V4L2_TUNER_CAP_LOW</constant>,
|
<constant>V4L2_TUNER_CAP_LANG1</constant>,
|
||||||
<constant>V4L2_TUNER_CAP_STEREO</constant> and
|
<constant>V4L2_TUNER_CAP_LANG2</constant> and
|
||||||
<constant>V4L2_TUNER_CAP_RDS</constant> flags can be set.</para></entry>
|
<constant>V4L2_TUNER_CAP_NORM</constant> flags can't be used.</para>
|
||||||
|
<para>If multiple frequency bands are supported, then
|
||||||
|
<structfield>capability</structfield> is the union of all
|
||||||
|
<structfield>capability</structfield> fields of each &v4l2-frequency-band;.
|
||||||
|
</para></entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>__u32</entry>
|
<entry>__u32</entry>
|
||||||
@ -130,7 +134,9 @@ the structure refers to a radio tuner only the
|
|||||||
<entry spanname="hspan">The lowest tunable frequency in
|
<entry spanname="hspan">The lowest tunable frequency in
|
||||||
units of 62.5 kHz, or if the <structfield>capability</structfield>
|
units of 62.5 kHz, or if the <structfield>capability</structfield>
|
||||||
flag <constant>V4L2_TUNER_CAP_LOW</constant> is set, in units of 62.5
|
flag <constant>V4L2_TUNER_CAP_LOW</constant> is set, in units of 62.5
|
||||||
Hz.</entry>
|
Hz. If multiple frequency bands are supported, then
|
||||||
|
<structfield>rangelow</structfield> is the lowest frequency
|
||||||
|
of all the frequency bands.</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>__u32</entry>
|
<entry>__u32</entry>
|
||||||
@ -138,7 +144,9 @@ Hz.</entry>
|
|||||||
<entry spanname="hspan">The highest tunable frequency in
|
<entry spanname="hspan">The highest tunable frequency in
|
||||||
units of 62.5 kHz, or if the <structfield>capability</structfield>
|
units of 62.5 kHz, or if the <structfield>capability</structfield>
|
||||||
flag <constant>V4L2_TUNER_CAP_LOW</constant> is set, in units of 62.5
|
flag <constant>V4L2_TUNER_CAP_LOW</constant> is set, in units of 62.5
|
||||||
Hz.</entry>
|
Hz. If multiple frequency bands are supported, then
|
||||||
|
<structfield>rangehigh</structfield> is the highest frequency
|
||||||
|
of all the frequency bands.</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>__u32</entry>
|
<entry>__u32</entry>
|
||||||
@ -275,6 +283,18 @@ can or must be switched. (B/G PAL tuners for example are typically not
|
|||||||
see the description of ioctl &VIDIOC-ENUMINPUT; for details. Only
|
see the description of ioctl &VIDIOC-ENUMINPUT; for details. Only
|
||||||
<constant>V4L2_TUNER_ANALOG_TV</constant> tuners can have this capability.</entry>
|
<constant>V4L2_TUNER_ANALOG_TV</constant> tuners can have this capability.</entry>
|
||||||
</row>
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry><constant>V4L2_TUNER_CAP_HWSEEK_BOUNDED</constant></entry>
|
||||||
|
<entry>0x0004</entry>
|
||||||
|
<entry>If set, then this tuner supports the hardware seek functionality
|
||||||
|
where the seek stops when it reaches the end of the frequency range.</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry><constant>V4L2_TUNER_CAP_HWSEEK_WRAP</constant></entry>
|
||||||
|
<entry>0x0008</entry>
|
||||||
|
<entry>If set, then this tuner supports the hardware seek functionality
|
||||||
|
where the seek wraps around when it reaches the end of the frequency range.</entry>
|
||||||
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry><constant>V4L2_TUNER_CAP_STEREO</constant></entry>
|
<entry><constant>V4L2_TUNER_CAP_STEREO</constant></entry>
|
||||||
<entry>0x0010</entry>
|
<entry>0x0010</entry>
|
||||||
@ -328,6 +348,12 @@ radio tuners.</entry>
|
|||||||
<entry>0x0200</entry>
|
<entry>0x0200</entry>
|
||||||
<entry>The RDS data is parsed by the hardware and set via controls.</entry>
|
<entry>The RDS data is parsed by the hardware and set via controls.</entry>
|
||||||
</row>
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry><constant>V4L2_TUNER_CAP_FREQ_BANDS</constant></entry>
|
||||||
|
<entry>0x0400</entry>
|
||||||
|
<entry>The &VIDIOC-ENUM-FREQ-BANDS; ioctl can be used to enumerate
|
||||||
|
the available frequency bands.</entry>
|
||||||
|
</row>
|
||||||
</tbody>
|
</tbody>
|
||||||
</tgroup>
|
</tgroup>
|
||||||
</table>
|
</table>
|
||||||
|
@ -71,12 +71,9 @@ initialize the <structfield>bytesused</structfield>,
|
|||||||
<structfield>field</structfield> and
|
<structfield>field</structfield> and
|
||||||
<structfield>timestamp</structfield> fields, see <xref
|
<structfield>timestamp</structfield> fields, see <xref
|
||||||
linkend="buffer" /> for details.
|
linkend="buffer" /> for details.
|
||||||
Applications must also set <structfield>flags</structfield> to 0. If a driver
|
Applications must also set <structfield>flags</structfield> to 0.
|
||||||
supports capturing from specific video inputs and you want to specify a video
|
The <structfield>reserved2</structfield> and
|
||||||
input, then <structfield>flags</structfield> should be set to
|
<structfield>reserved</structfield> fields must be set to 0. When using
|
||||||
<constant>V4L2_BUF_FLAG_INPUT</constant> and the field
|
|
||||||
<structfield>input</structfield> must be initialized to the desired input.
|
|
||||||
The <structfield>reserved</structfield> field must be set to 0. When using
|
|
||||||
the <link linkend="planar-apis">multi-planar API</link>, the
|
the <link linkend="planar-apis">multi-planar API</link>, the
|
||||||
<structfield>m.planes</structfield> field must contain a userspace pointer
|
<structfield>m.planes</structfield> field must contain a userspace pointer
|
||||||
to a filled-in array of &v4l2-plane; and the <structfield>length</structfield>
|
to a filled-in array of &v4l2-plane; and the <structfield>length</structfield>
|
||||||
|
@ -191,6 +191,19 @@ linkend="output">Video Output</link> interface.</entry>
|
|||||||
<link linkend="planar-apis">multi-planar API</link> through the
|
<link linkend="planar-apis">multi-planar API</link> through the
|
||||||
<link linkend="output">Video Output</link> interface.</entry>
|
<link linkend="output">Video Output</link> interface.</entry>
|
||||||
</row>
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry><constant>V4L2_CAP_VIDEO_M2M</constant></entry>
|
||||||
|
<entry>0x00004000</entry>
|
||||||
|
<entry>The device supports the single-planar API through the
|
||||||
|
Video Memory-To-Memory interface.</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry><constant>V4L2_CAP_VIDEO_M2M_MPLANE</constant></entry>
|
||||||
|
<entry>0x00008000</entry>
|
||||||
|
<entry>The device supports the
|
||||||
|
<link linkend="planar-apis">multi-planar API</link> through the
|
||||||
|
Video Memory-To-Memory interface.</entry>
|
||||||
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry><constant>V4L2_CAP_VIDEO_OVERLAY</constant></entry>
|
<entry><constant>V4L2_CAP_VIDEO_OVERLAY</constant></entry>
|
||||||
<entry>0x00000004</entry>
|
<entry>0x00000004</entry>
|
||||||
|
@ -52,11 +52,26 @@
|
|||||||
<para>Start a hardware frequency seek from the current frequency.
|
<para>Start a hardware frequency seek from the current frequency.
|
||||||
To do this applications initialize the <structfield>tuner</structfield>,
|
To do this applications initialize the <structfield>tuner</structfield>,
|
||||||
<structfield>type</structfield>, <structfield>seek_upward</structfield>,
|
<structfield>type</structfield>, <structfield>seek_upward</structfield>,
|
||||||
<structfield>spacing</structfield> and
|
<structfield>wrap_around</structfield>, <structfield>spacing</structfield>,
|
||||||
<structfield>wrap_around</structfield> fields, and zero out the
|
<structfield>rangelow</structfield> and <structfield>rangehigh</structfield>
|
||||||
<structfield>reserved</structfield> array of a &v4l2-hw-freq-seek; and
|
fields, and zero out the <structfield>reserved</structfield> array of a
|
||||||
call the <constant>VIDIOC_S_HW_FREQ_SEEK</constant> ioctl with a pointer
|
&v4l2-hw-freq-seek; and call the <constant>VIDIOC_S_HW_FREQ_SEEK</constant>
|
||||||
to this structure.</para>
|
ioctl with a pointer to this structure.</para>
|
||||||
|
|
||||||
|
<para>The <structfield>rangelow</structfield> and
|
||||||
|
<structfield>rangehigh</structfield> fields can be set to a non-zero value to
|
||||||
|
tell the driver to search a specific band. If the &v4l2-tuner;
|
||||||
|
<structfield>capability</structfield> field has the
|
||||||
|
<constant>V4L2_TUNER_CAP_HWSEEK_PROG_LIM</constant> flag set, these values
|
||||||
|
must fall within one of the bands returned by &VIDIOC-ENUM-FREQ-BANDS;. If
|
||||||
|
the <constant>V4L2_TUNER_CAP_HWSEEK_PROG_LIM</constant> flag is not set,
|
||||||
|
then these values must exactly match those of one of the bands returned by
|
||||||
|
&VIDIOC-ENUM-FREQ-BANDS;. If the current frequency of the tuner does not fall
|
||||||
|
within the selected band it will be clamped to fit in the band before the
|
||||||
|
seek is started.</para>
|
||||||
|
|
||||||
|
<para>If an error is returned, then the original frequency will
|
||||||
|
be restored.</para>
|
||||||
|
|
||||||
<para>This ioctl is supported if the <constant>V4L2_CAP_HW_FREQ_SEEK</constant> capability is set.</para>
|
<para>This ioctl is supported if the <constant>V4L2_CAP_HW_FREQ_SEEK</constant> capability is set.</para>
|
||||||
|
|
||||||
@ -87,7 +102,10 @@ field and the &v4l2-tuner; <structfield>index</structfield> field.</entry>
|
|||||||
<row>
|
<row>
|
||||||
<entry>__u32</entry>
|
<entry>__u32</entry>
|
||||||
<entry><structfield>wrap_around</structfield></entry>
|
<entry><structfield>wrap_around</structfield></entry>
|
||||||
<entry>If non-zero, wrap around when at the end of the frequency range, else stop seeking.</entry>
|
<entry>If non-zero, wrap around when at the end of the frequency range, else stop seeking.
|
||||||
|
The &v4l2-tuner; <structfield>capability</structfield> field will tell you what the
|
||||||
|
hardware supports.
|
||||||
|
</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>__u32</entry>
|
<entry>__u32</entry>
|
||||||
@ -96,7 +114,27 @@ field and the &v4l2-tuner; <structfield>index</structfield> field.</entry>
|
|||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>__u32</entry>
|
<entry>__u32</entry>
|
||||||
<entry><structfield>reserved</structfield>[7]</entry>
|
<entry><structfield>rangelow</structfield></entry>
|
||||||
|
<entry>If non-zero, the lowest tunable frequency of the band to
|
||||||
|
search in units of 62.5 kHz, or if the &v4l2-tuner;
|
||||||
|
<structfield>capability</structfield> field has the
|
||||||
|
<constant>V4L2_TUNER_CAP_LOW</constant> flag set, in units of 62.5 Hz.
|
||||||
|
If <structfield>rangelow</structfield> is zero a reasonable default value
|
||||||
|
is used.</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>__u32</entry>
|
||||||
|
<entry><structfield>rangehigh</structfield></entry>
|
||||||
|
<entry>If non-zero, the highest tunable frequency of the band to
|
||||||
|
search in units of 62.5 kHz, or if the &v4l2-tuner;
|
||||||
|
<structfield>capability</structfield> field has the
|
||||||
|
<constant>V4L2_TUNER_CAP_LOW</constant> flag set, in units of 62.5 Hz.
|
||||||
|
If <structfield>rangehigh</structfield> is zero a reasonable default value
|
||||||
|
is used.</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>__u32</entry>
|
||||||
|
<entry><structfield>reserved</structfield>[5]</entry>
|
||||||
<entry>Reserved for future extensions. Applications
|
<entry>Reserved for future extensions. Applications
|
||||||
must set the array to zero.</entry>
|
must set the array to zero.</entry>
|
||||||
</row>
|
</row>
|
||||||
@ -113,14 +151,22 @@ field and the &v4l2-tuner; <structfield>index</structfield> field.</entry>
|
|||||||
<term><errorcode>EINVAL</errorcode></term>
|
<term><errorcode>EINVAL</errorcode></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>The <structfield>tuner</structfield> index is out of
|
<para>The <structfield>tuner</structfield> index is out of
|
||||||
bounds, the wrap_around value is not supported or the value in the <structfield>type</structfield> field is
|
bounds, the <structfield>wrap_around</structfield> value is not supported or
|
||||||
wrong.</para>
|
one of the values in the <structfield>type</structfield>,
|
||||||
|
<structfield>rangelow</structfield> or <structfield>rangehigh</structfield>
|
||||||
|
fields is wrong.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><errorcode>EAGAIN</errorcode></term>
|
<term><errorcode>ENODATA</errorcode></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>The ioctl timed-out. Try again.</para>
|
<para>The hardware seek found no channels.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term><errorcode>EBUSY</errorcode></term>
|
||||||
|
<listitem>
|
||||||
|
<para>Another hardware seek is already in progress.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
</variablelist>
|
</variablelist>
|
||||||
|
@ -72,10 +72,10 @@
|
|||||||
<section>
|
<section>
|
||||||
<title>Types of selection targets</title>
|
<title>Types of selection targets</title>
|
||||||
|
|
||||||
<para>There are two types of selection targets: actual and bounds.
|
<para>There are two types of selection targets: actual and bounds. The
|
||||||
The ACTUAL targets are the targets which configure the hardware.
|
actual targets are the targets which configure the hardware. The BOUNDS
|
||||||
The BOUNDS target will return a rectangle that contain all
|
target will return a rectangle that contain all possible actual
|
||||||
possible ACTUAL rectangles.</para>
|
rectangles.</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
@ -87,71 +87,8 @@
|
|||||||
<constant>EINVAL</constant>.</para>
|
<constant>EINVAL</constant>.</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<table pgwide="1" frame="none" id="v4l2-subdev-selection-targets">
|
<para>Selection targets and flags are documented in <xref
|
||||||
<title>V4L2 subdev selection targets</title>
|
linkend="v4l2-selections-common"/>.</para>
|
||||||
<tgroup cols="3">
|
|
||||||
&cs-def;
|
|
||||||
<tbody valign="top">
|
|
||||||
<row>
|
|
||||||
<entry><constant>V4L2_SUBDEV_SEL_TGT_CROP_ACTUAL</constant></entry>
|
|
||||||
<entry>0x0000</entry>
|
|
||||||
<entry>Actual crop. Defines the cropping
|
|
||||||
performed by the processing step.</entry>
|
|
||||||
</row>
|
|
||||||
<row>
|
|
||||||
<entry><constant>V4L2_SUBDEV_SEL_TGT_CROP_BOUNDS</constant></entry>
|
|
||||||
<entry>0x0002</entry>
|
|
||||||
<entry>Bounds of the crop rectangle.</entry>
|
|
||||||
</row>
|
|
||||||
<row>
|
|
||||||
<entry><constant>V4L2_SUBDEV_SEL_TGT_COMPOSE_ACTUAL</constant></entry>
|
|
||||||
<entry>0x0100</entry>
|
|
||||||
<entry>Actual compose rectangle. Used to configure scaling
|
|
||||||
on sink pads and composition on source pads.</entry>
|
|
||||||
</row>
|
|
||||||
<row>
|
|
||||||
<entry><constant>V4L2_SUBDEV_SEL_TGT_COMPOSE_BOUNDS</constant></entry>
|
|
||||||
<entry>0x0102</entry>
|
|
||||||
<entry>Bounds of the compose rectangle.</entry>
|
|
||||||
</row>
|
|
||||||
</tbody>
|
|
||||||
</tgroup>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<table pgwide="1" frame="none" id="v4l2-subdev-selection-flags">
|
|
||||||
<title>V4L2 subdev selection flags</title>
|
|
||||||
<tgroup cols="3">
|
|
||||||
&cs-def;
|
|
||||||
<tbody valign="top">
|
|
||||||
<row>
|
|
||||||
<entry><constant>V4L2_SUBDEV_SEL_FLAG_SIZE_GE</constant></entry>
|
|
||||||
<entry>(1 << 0)</entry> <entry>Suggest the driver it
|
|
||||||
should choose greater or equal rectangle (in size) than
|
|
||||||
was requested. Albeit the driver may choose a lesser size,
|
|
||||||
it will only do so due to hardware limitations. Without
|
|
||||||
this flag (and
|
|
||||||
<constant>V4L2_SUBDEV_SEL_FLAG_SIZE_LE</constant>) the
|
|
||||||
behaviour is to choose the closest possible
|
|
||||||
rectangle.</entry>
|
|
||||||
</row>
|
|
||||||
<row>
|
|
||||||
<entry><constant>V4L2_SUBDEV_SEL_FLAG_SIZE_LE</constant></entry>
|
|
||||||
<entry>(1 << 1)</entry> <entry>Suggest the driver it
|
|
||||||
should choose lesser or equal rectangle (in size) than was
|
|
||||||
requested. Albeit the driver may choose a greater size, it
|
|
||||||
will only do so due to hardware limitations.</entry>
|
|
||||||
</row>
|
|
||||||
<row>
|
|
||||||
<entry><constant>V4L2_SUBDEV_SEL_FLAG_KEEP_CONFIG</constant></entry>
|
|
||||||
<entry>(1 << 2)</entry>
|
|
||||||
<entry>The configuration should not be propagated to any
|
|
||||||
further processing steps. If this flag is not given, the
|
|
||||||
configuration is propagated inside the subdevice to all
|
|
||||||
further processing steps.</entry>
|
|
||||||
</row>
|
|
||||||
</tbody>
|
|
||||||
</tgroup>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<table pgwide="1" frame="none" id="v4l2-subdev-selection">
|
<table pgwide="1" frame="none" id="v4l2-subdev-selection">
|
||||||
<title>struct <structname>v4l2_subdev_selection</structname></title>
|
<title>struct <structname>v4l2_subdev_selection</structname></title>
|
||||||
@ -173,13 +110,13 @@
|
|||||||
<entry>__u32</entry>
|
<entry>__u32</entry>
|
||||||
<entry><structfield>target</structfield></entry>
|
<entry><structfield>target</structfield></entry>
|
||||||
<entry>Target selection rectangle. See
|
<entry>Target selection rectangle. See
|
||||||
<xref linkend="v4l2-subdev-selection-targets">.</xref>.</entry>
|
<xref linkend="v4l2-selections-common" />.</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>__u32</entry>
|
<entry>__u32</entry>
|
||||||
<entry><structfield>flags</structfield></entry>
|
<entry><structfield>flags</structfield></entry>
|
||||||
<entry>Flags. See
|
<entry>Flags. See
|
||||||
<xref linkend="v4l2-subdev-selection-flags">.</xref></entry>
|
<xref linkend="v4l2-selection-flags" />.</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>&v4l2-rect;</entry>
|
<entry>&v4l2-rect;</entry>
|
||||||
|
@ -93,6 +93,7 @@ Linux IRQ number into the hardware.
|
|||||||
Most drivers cannot use this mapping.
|
Most drivers cannot use this mapping.
|
||||||
|
|
||||||
==== Legacy ====
|
==== Legacy ====
|
||||||
|
irq_domain_add_simple()
|
||||||
irq_domain_add_legacy()
|
irq_domain_add_legacy()
|
||||||
irq_domain_add_legacy_isa()
|
irq_domain_add_legacy_isa()
|
||||||
|
|
||||||
@ -115,3 +116,7 @@ The legacy map should only be used if fixed IRQ mappings must be
|
|||||||
supported. For example, ISA controllers would use the legacy map for
|
supported. For example, ISA controllers would use the legacy map for
|
||||||
mapping Linux IRQs 0-15 so that existing ISA drivers get the correct IRQ
|
mapping Linux IRQs 0-15 so that existing ISA drivers get the correct IRQ
|
||||||
numbers.
|
numbers.
|
||||||
|
|
||||||
|
Most users of legacy mappings should use irq_domain_add_simple() which
|
||||||
|
will use a legacy domain only if an IRQ range is supplied by the
|
||||||
|
system and will otherwise use a linear domain mapping.
|
||||||
|
@ -178,7 +178,7 @@ sadly that you are one too, and that while we can all bask in the secure
|
|||||||
knowledge that we're better than the average person (let's face it,
|
knowledge that we're better than the average person (let's face it,
|
||||||
nobody ever believes that they're average or below-average), we should
|
nobody ever believes that they're average or below-average), we should
|
||||||
also admit that we're not the sharpest knife around, and there will be
|
also admit that we're not the sharpest knife around, and there will be
|
||||||
other people that are less of an idiot that you are.
|
other people that are less of an idiot than you are.
|
||||||
|
|
||||||
Some people react badly to smart people. Others take advantage of them.
|
Some people react badly to smart people. Others take advantage of them.
|
||||||
|
|
||||||
|
@ -38,6 +38,13 @@ read or write requests. Note that the total allocated number may be twice
|
|||||||
this amount, since it applies only to reads or writes (not the accumulated
|
this amount, since it applies only to reads or writes (not the accumulated
|
||||||
sum).
|
sum).
|
||||||
|
|
||||||
|
To avoid priority inversion through request starvation, a request
|
||||||
|
queue maintains a separate request pool per each cgroup when
|
||||||
|
CONFIG_BLK_CGROUP is enabled, and this parameter applies to each such
|
||||||
|
per-block-cgroup request pool. IOW, if there are N block cgroups,
|
||||||
|
each request queue may have upto N request pools, each independently
|
||||||
|
regulated by nr_requests.
|
||||||
|
|
||||||
read_ahead_kb (RW)
|
read_ahead_kb (RW)
|
||||||
------------------
|
------------------
|
||||||
Maximum number of kilobytes to read-ahead for filesystems on this block
|
Maximum number of kilobytes to read-ahead for filesystems on this block
|
||||||
|
@ -370,15 +370,12 @@ To mount a cgroup hierarchy with just the cpuset and memory
|
|||||||
subsystems, type:
|
subsystems, type:
|
||||||
# mount -t cgroup -o cpuset,memory hier1 /sys/fs/cgroup/rg1
|
# mount -t cgroup -o cpuset,memory hier1 /sys/fs/cgroup/rg1
|
||||||
|
|
||||||
To change the set of subsystems bound to a mounted hierarchy, just
|
While remounting cgroups is currently supported, it is not recommend
|
||||||
remount with different options:
|
to use it. Remounting allows changing bound subsystems and
|
||||||
# mount -o remount,cpuset,blkio hier1 /sys/fs/cgroup/rg1
|
release_agent. Rebinding is hardly useful as it only works when the
|
||||||
|
hierarchy is empty and release_agent itself should be replaced with
|
||||||
Now memory is removed from the hierarchy and blkio is added.
|
conventional fsnotify. The support for remounting will be removed in
|
||||||
|
the future.
|
||||||
Note this will add blkio to the hierarchy but won't remove memory or
|
|
||||||
cpuset, because the new options are appended to the old ones:
|
|
||||||
# mount -o remount,blkio /sys/fs/cgroup/rg1
|
|
||||||
|
|
||||||
To Specify a hierarchy's release_agent:
|
To Specify a hierarchy's release_agent:
|
||||||
# mount -t cgroup -o cpuset,release_agent="/sbin/cpuset_release_agent" \
|
# mount -t cgroup -o cpuset,release_agent="/sbin/cpuset_release_agent" \
|
||||||
@ -637,16 +634,6 @@ void exit(struct task_struct *task)
|
|||||||
|
|
||||||
Called during task exit.
|
Called during task exit.
|
||||||
|
|
||||||
int populate(struct cgroup *cgrp)
|
|
||||||
(cgroup_mutex held by caller)
|
|
||||||
|
|
||||||
Called after creation of a cgroup to allow a subsystem to populate
|
|
||||||
the cgroup directory with file entries. The subsystem should make
|
|
||||||
calls to cgroup_add_file() with objects of type cftype (see
|
|
||||||
include/linux/cgroup.h for details). Note that although this
|
|
||||||
method can return an error code, the error code is currently not
|
|
||||||
always handled well.
|
|
||||||
|
|
||||||
void post_clone(struct cgroup *cgrp)
|
void post_clone(struct cgroup *cgrp)
|
||||||
(cgroup_mutex held by caller)
|
(cgroup_mutex held by caller)
|
||||||
|
|
||||||
@ -656,7 +643,7 @@ example in cpusets, no task may attach before 'cpus' and 'mems' are set
|
|||||||
up.
|
up.
|
||||||
|
|
||||||
void bind(struct cgroup *root)
|
void bind(struct cgroup *root)
|
||||||
(cgroup_mutex and ss->hierarchy_mutex held by caller)
|
(cgroup_mutex held by caller)
|
||||||
|
|
||||||
Called when a cgroup subsystem is rebound to a different hierarchy
|
Called when a cgroup subsystem is rebound to a different hierarchy
|
||||||
and root cgroup. Currently this will only involve movement between
|
and root cgroup. Currently this will only involve movement between
|
||||||
|
45
Documentation/cgroups/hugetlb.txt
Normal file
45
Documentation/cgroups/hugetlb.txt
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
HugeTLB Controller
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
The HugeTLB controller allows to limit the HugeTLB usage per control group and
|
||||||
|
enforces the controller limit during page fault. Since HugeTLB doesn't
|
||||||
|
support page reclaim, enforcing the limit at page fault time implies that,
|
||||||
|
the application will get SIGBUS signal if it tries to access HugeTLB pages
|
||||||
|
beyond its limit. This requires the application to know beforehand how much
|
||||||
|
HugeTLB pages it would require for its use.
|
||||||
|
|
||||||
|
HugeTLB controller can be created by first mounting the cgroup filesystem.
|
||||||
|
|
||||||
|
# mount -t cgroup -o hugetlb none /sys/fs/cgroup
|
||||||
|
|
||||||
|
With the above step, the initial or the parent HugeTLB group becomes
|
||||||
|
visible at /sys/fs/cgroup. At bootup, this group includes all the tasks in
|
||||||
|
the system. /sys/fs/cgroup/tasks lists the tasks in this cgroup.
|
||||||
|
|
||||||
|
New groups can be created under the parent group /sys/fs/cgroup.
|
||||||
|
|
||||||
|
# cd /sys/fs/cgroup
|
||||||
|
# mkdir g1
|
||||||
|
# echo $$ > g1/tasks
|
||||||
|
|
||||||
|
The above steps create a new group g1 and move the current shell
|
||||||
|
process (bash) into it.
|
||||||
|
|
||||||
|
Brief summary of control files
|
||||||
|
|
||||||
|
hugetlb.<hugepagesize>.limit_in_bytes # set/show limit of "hugepagesize" hugetlb usage
|
||||||
|
hugetlb.<hugepagesize>.max_usage_in_bytes # show max "hugepagesize" hugetlb usage recorded
|
||||||
|
hugetlb.<hugepagesize>.usage_in_bytes # show current res_counter usage for "hugepagesize" hugetlb
|
||||||
|
hugetlb.<hugepagesize>.failcnt # show the number of allocation failure due to HugeTLB limit
|
||||||
|
|
||||||
|
For a system supporting two hugepage size (16M and 16G) the control
|
||||||
|
files include:
|
||||||
|
|
||||||
|
hugetlb.16GB.limit_in_bytes
|
||||||
|
hugetlb.16GB.max_usage_in_bytes
|
||||||
|
hugetlb.16GB.usage_in_bytes
|
||||||
|
hugetlb.16GB.failcnt
|
||||||
|
hugetlb.16MB.limit_in_bytes
|
||||||
|
hugetlb.16MB.max_usage_in_bytes
|
||||||
|
hugetlb.16MB.usage_in_bytes
|
||||||
|
hugetlb.16MB.failcnt
|
@ -73,6 +73,8 @@ Brief summary of control files.
|
|||||||
|
|
||||||
memory.kmem.tcp.limit_in_bytes # set/show hard limit for tcp buf memory
|
memory.kmem.tcp.limit_in_bytes # set/show hard limit for tcp buf memory
|
||||||
memory.kmem.tcp.usage_in_bytes # show current tcp buf memory allocation
|
memory.kmem.tcp.usage_in_bytes # show current tcp buf memory allocation
|
||||||
|
memory.kmem.tcp.failcnt # show the number of tcp buf memory usage hits limits
|
||||||
|
memory.kmem.tcp.max_usage_in_bytes # show max tcp buf memory usage recorded
|
||||||
|
|
||||||
1. History
|
1. History
|
||||||
|
|
||||||
@ -187,12 +189,12 @@ the cgroup that brought it in -- this will happen on memory pressure).
|
|||||||
But see section 8.2: when moving a task to another cgroup, its pages may
|
But see section 8.2: when moving a task to another cgroup, its pages may
|
||||||
be recharged to the new cgroup, if move_charge_at_immigrate has been chosen.
|
be recharged to the new cgroup, if move_charge_at_immigrate has been chosen.
|
||||||
|
|
||||||
Exception: If CONFIG_CGROUP_CGROUP_MEM_RES_CTLR_SWAP is not used.
|
Exception: If CONFIG_CGROUP_CGROUP_MEMCG_SWAP is not used.
|
||||||
When you do swapoff and make swapped-out pages of shmem(tmpfs) to
|
When you do swapoff and make swapped-out pages of shmem(tmpfs) to
|
||||||
be backed into memory in force, charges for pages are accounted against the
|
be backed into memory in force, charges for pages are accounted against the
|
||||||
caller of swapoff rather than the users of shmem.
|
caller of swapoff rather than the users of shmem.
|
||||||
|
|
||||||
2.4 Swap Extension (CONFIG_CGROUP_MEM_RES_CTLR_SWAP)
|
2.4 Swap Extension (CONFIG_MEMCG_SWAP)
|
||||||
|
|
||||||
Swap Extension allows you to record charge for swap. A swapped-in page is
|
Swap Extension allows you to record charge for swap. A swapped-in page is
|
||||||
charged back to original page allocator if possible.
|
charged back to original page allocator if possible.
|
||||||
@ -259,7 +261,7 @@ When oom event notifier is registered, event will be delivered.
|
|||||||
per-zone-per-cgroup LRU (cgroup's private LRU) is just guarded by
|
per-zone-per-cgroup LRU (cgroup's private LRU) is just guarded by
|
||||||
zone->lru_lock, it has no lock of its own.
|
zone->lru_lock, it has no lock of its own.
|
||||||
|
|
||||||
2.7 Kernel Memory Extension (CONFIG_CGROUP_MEM_RES_CTLR_KMEM)
|
2.7 Kernel Memory Extension (CONFIG_MEMCG_KMEM)
|
||||||
|
|
||||||
With the Kernel memory extension, the Memory Controller is able to limit
|
With the Kernel memory extension, the Memory Controller is able to limit
|
||||||
the amount of kernel memory used by the system. Kernel memory is fundamentally
|
the amount of kernel memory used by the system. Kernel memory is fundamentally
|
||||||
@ -286,8 +288,8 @@ per cgroup, instead of globally.
|
|||||||
|
|
||||||
a. Enable CONFIG_CGROUPS
|
a. Enable CONFIG_CGROUPS
|
||||||
b. Enable CONFIG_RESOURCE_COUNTERS
|
b. Enable CONFIG_RESOURCE_COUNTERS
|
||||||
c. Enable CONFIG_CGROUP_MEM_RES_CTLR
|
c. Enable CONFIG_MEMCG
|
||||||
d. Enable CONFIG_CGROUP_MEM_RES_CTLR_SWAP (to use swap extension)
|
d. Enable CONFIG_MEMCG_SWAP (to use swap extension)
|
||||||
|
|
||||||
1. Prepare the cgroups (see cgroups.txt, Why are cgroups needed?)
|
1. Prepare the cgroups (see cgroups.txt, Why are cgroups needed?)
|
||||||
# mount -t tmpfs none /sys/fs/cgroup
|
# mount -t tmpfs none /sys/fs/cgroup
|
||||||
|
@ -27,6 +27,10 @@ The target is named "raid" and it accepts the following parameters:
|
|||||||
- rotating parity N (right-to-left) with data restart
|
- rotating parity N (right-to-left) with data restart
|
||||||
raid6_nc RAID6 N continue
|
raid6_nc RAID6 N continue
|
||||||
- rotating parity N (right-to-left) with data continuation
|
- rotating parity N (right-to-left) with data continuation
|
||||||
|
raid10 Various RAID10 inspired algorithms chosen by additional params
|
||||||
|
- RAID10: Striped Mirrors (aka 'Striping on top of mirrors')
|
||||||
|
- RAID1E: Integrated Adjacent Stripe Mirroring
|
||||||
|
- and other similar RAID10 variants
|
||||||
|
|
||||||
Reference: Chapter 4 of
|
Reference: Chapter 4 of
|
||||||
http://www.snia.org/sites/default/files/SNIA_DDF_Technical_Position_v2.0.pdf
|
http://www.snia.org/sites/default/files/SNIA_DDF_Technical_Position_v2.0.pdf
|
||||||
@ -59,6 +63,28 @@ The target is named "raid" and it accepts the following parameters:
|
|||||||
logical size of the array. The bitmap records the device
|
logical size of the array. The bitmap records the device
|
||||||
synchronisation state for each region.
|
synchronisation state for each region.
|
||||||
|
|
||||||
|
[raid10_copies <# copies>]
|
||||||
|
[raid10_format near]
|
||||||
|
These two options are used to alter the default layout of
|
||||||
|
a RAID10 configuration. The number of copies is can be
|
||||||
|
specified, but the default is 2. There are other variations
|
||||||
|
to how the copies are laid down - the default and only current
|
||||||
|
option is "near". Near copies are what most people think of
|
||||||
|
with respect to mirroring. If these options are left
|
||||||
|
unspecified, or 'raid10_copies 2' and/or 'raid10_format near'
|
||||||
|
are given, then the layouts for 2, 3 and 4 devices are:
|
||||||
|
2 drives 3 drives 4 drives
|
||||||
|
-------- ---------- --------------
|
||||||
|
A1 A1 A1 A1 A2 A1 A1 A2 A2
|
||||||
|
A2 A2 A2 A3 A3 A3 A3 A4 A4
|
||||||
|
A3 A3 A4 A4 A5 A5 A5 A6 A6
|
||||||
|
A4 A4 A5 A6 A6 A7 A7 A8 A8
|
||||||
|
.. .. .. .. .. .. .. .. ..
|
||||||
|
The 2-device layout is equivalent 2-way RAID1. The 4-device
|
||||||
|
layout is what a traditional RAID10 would look like. The
|
||||||
|
3-device layout is what might be called a 'RAID1E - Integrated
|
||||||
|
Adjacent Stripe Mirroring'.
|
||||||
|
|
||||||
<#raid_devs>: The number of devices composing the array.
|
<#raid_devs>: The number of devices composing the array.
|
||||||
Each device consists of two entries. The first is the device
|
Each device consists of two entries. The first is the device
|
||||||
containing the metadata (if any); the second is the one containing the
|
containing the metadata (if any); the second is the one containing the
|
||||||
|
@ -9,15 +9,14 @@ devices in parallel.
|
|||||||
|
|
||||||
Parameters: <num devs> <chunk size> [<dev path> <offset>]+
|
Parameters: <num devs> <chunk size> [<dev path> <offset>]+
|
||||||
<num devs>: Number of underlying devices.
|
<num devs>: Number of underlying devices.
|
||||||
<chunk size>: Size of each chunk of data. Must be a power-of-2 and at
|
<chunk size>: Size of each chunk of data. Must be at least as
|
||||||
least as large as the system's PAGE_SIZE.
|
large as the system's PAGE_SIZE.
|
||||||
<dev path>: Full pathname to the underlying block-device, or a
|
<dev path>: Full pathname to the underlying block-device, or a
|
||||||
"major:minor" device-number.
|
"major:minor" device-number.
|
||||||
<offset>: Starting sector within the device.
|
<offset>: Starting sector within the device.
|
||||||
|
|
||||||
One or more underlying devices can be specified. The striped device size must
|
One or more underlying devices can be specified. The striped device size must
|
||||||
be a multiple of the chunk size and a multiple of the number of underlying
|
be a multiple of the chunk size multiplied by the number of underlying devices.
|
||||||
devices.
|
|
||||||
|
|
||||||
|
|
||||||
Example scripts
|
Example scripts
|
||||||
|
@ -231,6 +231,9 @@ i) Constructor
|
|||||||
no_discard_passdown: Don't pass discards down to the underlying
|
no_discard_passdown: Don't pass discards down to the underlying
|
||||||
data device, but just remove the mapping.
|
data device, but just remove the mapping.
|
||||||
|
|
||||||
|
read_only: Don't allow any changes to be made to the pool
|
||||||
|
metadata.
|
||||||
|
|
||||||
Data block size must be between 64KB (128 sectors) and 1GB
|
Data block size must be between 64KB (128 sectors) and 1GB
|
||||||
(2097152 sectors) inclusive.
|
(2097152 sectors) inclusive.
|
||||||
|
|
||||||
@ -239,7 +242,7 @@ ii) Status
|
|||||||
|
|
||||||
<transaction id> <used metadata blocks>/<total metadata blocks>
|
<transaction id> <used metadata blocks>/<total metadata blocks>
|
||||||
<used data blocks>/<total data blocks> <held metadata root>
|
<used data blocks>/<total data blocks> <held metadata root>
|
||||||
|
[no_]discard_passdown ro|rw
|
||||||
|
|
||||||
transaction id:
|
transaction id:
|
||||||
A 64-bit number used by userspace to help synchronise with metadata
|
A 64-bit number used by userspace to help synchronise with metadata
|
||||||
@ -257,6 +260,21 @@ ii) Status
|
|||||||
held root. This feature is not yet implemented so '-' is
|
held root. This feature is not yet implemented so '-' is
|
||||||
always returned.
|
always returned.
|
||||||
|
|
||||||
|
discard_passdown|no_discard_passdown
|
||||||
|
Whether or not discards are actually being passed down to the
|
||||||
|
underlying device. When this is enabled when loading the table,
|
||||||
|
it can get disabled if the underlying device doesn't support it.
|
||||||
|
|
||||||
|
ro|rw
|
||||||
|
If the pool encounters certain types of device failures it will
|
||||||
|
drop into a read-only metadata mode in which no changes to
|
||||||
|
the pool metadata (like allocating new blocks) are permitted.
|
||||||
|
|
||||||
|
In serious cases where even a read-only mode is deemed unsafe
|
||||||
|
no further I/O will be permitted and the status will just
|
||||||
|
contain the string 'Fail'. The userspace recovery tools
|
||||||
|
should then be used.
|
||||||
|
|
||||||
iii) Messages
|
iii) Messages
|
||||||
|
|
||||||
create_thin <dev id>
|
create_thin <dev id>
|
||||||
@ -329,3 +347,7 @@ regain some space then send the 'trim' message to the pool.
|
|||||||
ii) Status
|
ii) Status
|
||||||
|
|
||||||
<nr mapped sectors> <highest mapped sector>
|
<nr mapped sectors> <highest mapped sector>
|
||||||
|
|
||||||
|
If the pool has encountered device errors and failed, the status
|
||||||
|
will just contain the string 'Fail'. The userspace recovery
|
||||||
|
tools should then be used.
|
||||||
|
@ -2416,6 +2416,8 @@ Your cooperation is appreciated.
|
|||||||
1 = /dev/raw/raw1 First raw I/O device
|
1 = /dev/raw/raw1 First raw I/O device
|
||||||
2 = /dev/raw/raw2 Second raw I/O device
|
2 = /dev/raw/raw2 Second raw I/O device
|
||||||
...
|
...
|
||||||
|
max minor number of raw device is set by kernel config
|
||||||
|
MAX_RAW_DEVS or raw module parameter 'max_raw_devs'
|
||||||
|
|
||||||
163 char
|
163 char
|
||||||
|
|
||||||
|
15
Documentation/devicetree/bindings/arm/calxeda/l2ecc.txt
Normal file
15
Documentation/devicetree/bindings/arm/calxeda/l2ecc.txt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
Calxeda Highbank L2 cache ECC
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
- compatible : Should be "calxeda,hb-sregs-l2-ecc"
|
||||||
|
- reg : Address and size for ECC error interrupt clear registers.
|
||||||
|
- interrupts : Should be single bit error interrupt, then double bit error
|
||||||
|
interrupt.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
sregs@fff3c200 {
|
||||||
|
compatible = "calxeda,hb-sregs-l2-ecc";
|
||||||
|
reg = <0xfff3c200 0x100>;
|
||||||
|
interrupts = <0 71 4 0 72 4>;
|
||||||
|
};
|
14
Documentation/devicetree/bindings/arm/calxeda/mem-ctrlr.txt
Normal file
14
Documentation/devicetree/bindings/arm/calxeda/mem-ctrlr.txt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
Calxeda DDR memory controller
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
- compatible : Should be "calxeda,hb-ddr-ctrl"
|
||||||
|
- reg : Address and size for DDR controller registers.
|
||||||
|
- interrupts : Interrupt for DDR controller.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
memory-controller@fff00000 {
|
||||||
|
compatible = "calxeda,hb-ddr-ctrl";
|
||||||
|
reg = <0xfff00000 0x1000>;
|
||||||
|
interrupts = <0 91 4>;
|
||||||
|
};
|
@ -38,3 +38,23 @@ Example:
|
|||||||
reg-names = "mux status", "mux mask";
|
reg-names = "mux status", "mux mask";
|
||||||
mrvl,intc-nr-irqs = <2>;
|
mrvl,intc-nr-irqs = <2>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
* Marvell Orion Interrupt controller
|
||||||
|
|
||||||
|
Required properties
|
||||||
|
- compatible : Should be "marvell,orion-intc".
|
||||||
|
- #interrupt-cells: Specifies the number of cells needed to encode an
|
||||||
|
interrupt source. Supported value is <1>.
|
||||||
|
- interrupt-controller : Declare this node to be an interrupt controller.
|
||||||
|
- reg : Interrupt mask address. A list of 4 byte ranges, one per controller.
|
||||||
|
One entry in the list represents 32 interrupts.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
intc: interrupt-controller {
|
||||||
|
compatible = "marvell,orion-intc", "marvell,intc";
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <1>;
|
||||||
|
reg = <0xfed20204 0x04>,
|
||||||
|
<0xfed20214 0x04>;
|
||||||
|
};
|
||||||
|
@ -13,11 +13,17 @@ Required properties:
|
|||||||
Optional properties:
|
Optional properties:
|
||||||
|
|
||||||
- arm,primecell-periphid : Value to override the h/w value with
|
- arm,primecell-periphid : Value to override the h/w value with
|
||||||
|
- clocks : From common clock binding. First clock is phandle to clock for apb
|
||||||
|
pclk. Additional clocks are optional and specific to those peripherals.
|
||||||
|
- clock-names : From common clock binding. Shall be "apb_pclk" for first clock.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
serial@fff36000 {
|
serial@fff36000 {
|
||||||
compatible = "arm,pl011", "arm,primecell";
|
compatible = "arm,pl011", "arm,primecell";
|
||||||
arm,primecell-periphid = <0x00341011>;
|
arm,primecell-periphid = <0x00341011>;
|
||||||
|
clocks = <&pclk>;
|
||||||
|
clock-names = "apb_pclk";
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -0,0 +1,30 @@
|
|||||||
|
* Compact Flash
|
||||||
|
|
||||||
|
The Cavium Compact Flash device is connected to the Octeon Boot Bus,
|
||||||
|
and is thus a child of the Boot Bus device. It can read and write
|
||||||
|
industry standard compact flash devices.
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
- compatible: "cavium,ebt3000-compact-flash";
|
||||||
|
|
||||||
|
Compatibility with many Cavium evaluation boards.
|
||||||
|
|
||||||
|
- reg: The base address of the the CF chip select banks. Depending on
|
||||||
|
the device configuration, there may be one or two banks.
|
||||||
|
|
||||||
|
- cavium,bus-width: The width of the connection to the CF devices. Valid
|
||||||
|
values are 8 and 16.
|
||||||
|
|
||||||
|
- cavium,true-ide: Optional, if present the CF connection is in True IDE mode.
|
||||||
|
|
||||||
|
- cavium,dma-engine-handle: Optional, a phandle for the DMA Engine connected
|
||||||
|
to this device.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
compact-flash@5,0 {
|
||||||
|
compatible = "cavium,ebt3000-compact-flash";
|
||||||
|
reg = <5 0 0x10000>, <6 0 0x10000>;
|
||||||
|
cavium,bus-width = <16>;
|
||||||
|
cavium,true-ide;
|
||||||
|
cavium,dma-engine-handle = <&dma0>;
|
||||||
|
};
|
16
Documentation/devicetree/bindings/ata/marvell.txt
Normal file
16
Documentation/devicetree/bindings/ata/marvell.txt
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
* Marvell Orion SATA
|
||||||
|
|
||||||
|
Required Properties:
|
||||||
|
- compatibility : "marvell,orion-sata"
|
||||||
|
- reg : Address range of controller
|
||||||
|
- interrupts : Interrupt controller is using
|
||||||
|
- nr-ports : Number of SATA ports in use.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
sata@80000 {
|
||||||
|
compatible = "marvell,orion-sata";
|
||||||
|
reg = <0x80000 0x5000>;
|
||||||
|
interrupts = <21>;
|
||||||
|
nr-ports = <2>;
|
||||||
|
}
|
17
Documentation/devicetree/bindings/clock/calxeda.txt
Normal file
17
Documentation/devicetree/bindings/clock/calxeda.txt
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
Device Tree Clock bindings for Calxeda highbank platform
|
||||||
|
|
||||||
|
This binding uses the common clock binding[1].
|
||||||
|
|
||||||
|
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible : shall be one of the following:
|
||||||
|
"calxeda,hb-pll-clock" - for a PLL clock
|
||||||
|
"calxeda,hb-a9periph-clock" - The A9 peripheral clock divided from the
|
||||||
|
A9 clock.
|
||||||
|
"calxeda,hb-a9bus-clock" - The A9 bus clock divided from the A9 clock.
|
||||||
|
"calxeda,hb-emmc-clock" - Divided clock for MMC/SD controller.
|
||||||
|
- reg : shall be the control register offset from SYSREGs base for the clock.
|
||||||
|
- clocks : shall be the input parent clock phandle for the clock. This is
|
||||||
|
either an oscillator or a pll output.
|
||||||
|
- #clock-cells : from common clock binding; shall be set to 0.
|
117
Documentation/devicetree/bindings/clock/clock-bindings.txt
Normal file
117
Documentation/devicetree/bindings/clock/clock-bindings.txt
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
This binding is a work-in-progress, and are based on some experimental
|
||||||
|
work by benh[1].
|
||||||
|
|
||||||
|
Sources of clock signal can be represented by any node in the device
|
||||||
|
tree. Those nodes are designated as clock providers. Clock consumer
|
||||||
|
nodes use a phandle and clock specifier pair to connect clock provider
|
||||||
|
outputs to clock inputs. Similar to the gpio specifiers, a clock
|
||||||
|
specifier is an array of one more more cells identifying the clock
|
||||||
|
output on a device. The length of a clock specifier is defined by the
|
||||||
|
value of a #clock-cells property in the clock provider node.
|
||||||
|
|
||||||
|
[1] http://patchwork.ozlabs.org/patch/31551/
|
||||||
|
|
||||||
|
==Clock providers==
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
#clock-cells: Number of cells in a clock specifier; Typically 0 for nodes
|
||||||
|
with a single clock output and 1 for nodes with multiple
|
||||||
|
clock outputs.
|
||||||
|
|
||||||
|
Optional properties:
|
||||||
|
clock-output-names: Recommended to be a list of strings of clock output signal
|
||||||
|
names indexed by the first cell in the clock specifier.
|
||||||
|
However, the meaning of clock-output-names is domain
|
||||||
|
specific to the clock provider, and is only provided to
|
||||||
|
encourage using the same meaning for the majority of clock
|
||||||
|
providers. This format may not work for clock providers
|
||||||
|
using a complex clock specifier format. In those cases it
|
||||||
|
is recommended to omit this property and create a binding
|
||||||
|
specific names property.
|
||||||
|
|
||||||
|
Clock consumer nodes must never directly reference
|
||||||
|
the provider's clock-output-names property.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
oscillator {
|
||||||
|
#clock-cells = <1>;
|
||||||
|
clock-output-names = "ckil", "ckih";
|
||||||
|
};
|
||||||
|
|
||||||
|
- this node defines a device with two clock outputs, the first named
|
||||||
|
"ckil" and the second named "ckih". Consumer nodes always reference
|
||||||
|
clocks by index. The names should reflect the clock output signal
|
||||||
|
names for the device.
|
||||||
|
|
||||||
|
==Clock consumers==
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
clocks: List of phandle and clock specifier pairs, one pair
|
||||||
|
for each clock input to the device. Note: if the
|
||||||
|
clock provider specifies '0' for #clock-cells, then
|
||||||
|
only the phandle portion of the pair will appear.
|
||||||
|
|
||||||
|
Optional properties:
|
||||||
|
clock-names: List of clock input name strings sorted in the same
|
||||||
|
order as the clocks property. Consumers drivers
|
||||||
|
will use clock-names to match clock input names
|
||||||
|
with clocks specifiers.
|
||||||
|
clock-ranges: Empty property indicating that child nodes can inherit named
|
||||||
|
clocks from this node. Useful for bus nodes to provide a
|
||||||
|
clock to their children.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
device {
|
||||||
|
clocks = <&osc 1>, <&ref 0>;
|
||||||
|
clock-names = "baud", "register";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
This represents a device with two clock inputs, named "baud" and "register".
|
||||||
|
The baud clock is connected to output 1 of the &osc device, and the register
|
||||||
|
clock is connected to output 0 of the &ref.
|
||||||
|
|
||||||
|
==Example==
|
||||||
|
|
||||||
|
/* external oscillator */
|
||||||
|
osc: oscillator {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
#clock-cells = <1>;
|
||||||
|
clock-frequency = <32678>;
|
||||||
|
clock-output-names = "osc";
|
||||||
|
};
|
||||||
|
|
||||||
|
/* phase-locked-loop device, generates a higher frequency clock
|
||||||
|
* from the external oscillator reference */
|
||||||
|
pll: pll@4c000 {
|
||||||
|
compatible = "vendor,some-pll-interface"
|
||||||
|
#clock-cells = <1>;
|
||||||
|
clocks = <&osc 0>;
|
||||||
|
clock-names = "ref";
|
||||||
|
reg = <0x4c000 0x1000>;
|
||||||
|
clock-output-names = "pll", "pll-switched";
|
||||||
|
};
|
||||||
|
|
||||||
|
/* UART, using the low frequency oscillator for the baud clock,
|
||||||
|
* and the high frequency switched PLL output for register
|
||||||
|
* clocking */
|
||||||
|
uart@a000 {
|
||||||
|
compatible = "fsl,imx-uart";
|
||||||
|
reg = <0xa000 0x1000>;
|
||||||
|
interrupts = <33>;
|
||||||
|
clocks = <&osc 0>, <&pll 1>;
|
||||||
|
clock-names = "baud", "register";
|
||||||
|
};
|
||||||
|
|
||||||
|
This DT fragment defines three devices: an external oscillator to provide a
|
||||||
|
low-frequency reference clock, a PLL device to generate a higher frequency
|
||||||
|
clock signal, and a UART.
|
||||||
|
|
||||||
|
* The oscillator is fixed-frequency, and provides one clock output, named "osc".
|
||||||
|
* The PLL is both a clock provider and a clock consumer. It uses the clock
|
||||||
|
signal generated by the external oscillator, and provides two output signals
|
||||||
|
("pll" and "pll-switched").
|
||||||
|
* The UART has its baud clock connected the external oscillator and its
|
||||||
|
register clock connected to the PLL clock (the "pll-switched" signal)
|
21
Documentation/devicetree/bindings/clock/fixed-clock.txt
Normal file
21
Documentation/devicetree/bindings/clock/fixed-clock.txt
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
Binding for simple fixed-rate clock sources.
|
||||||
|
|
||||||
|
This binding uses the common clock binding[1].
|
||||||
|
|
||||||
|
[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible : shall be "fixed-clock".
|
||||||
|
- #clock-cells : from common clock binding; shall be set to 0.
|
||||||
|
- clock-frequency : frequency of clock in Hz. Should be a single cell.
|
||||||
|
|
||||||
|
Optional properties:
|
||||||
|
- gpios : From common gpio binding; gpio connection to clock enable pin.
|
||||||
|
- clock-output-names : From common clock binding.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
clock {
|
||||||
|
compatible = "fixed-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clock-frequency = <1000000000>;
|
||||||
|
};
|
@ -0,0 +1,49 @@
|
|||||||
|
* General Purpose Input Output (GPIO) bus.
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
- compatible: "cavium,octeon-3860-gpio"
|
||||||
|
|
||||||
|
Compatibility with all cn3XXX, cn5XXX and cn6XXX SOCs.
|
||||||
|
|
||||||
|
- reg: The base address of the GPIO unit's register bank.
|
||||||
|
|
||||||
|
- gpio-controller: This is a GPIO controller.
|
||||||
|
|
||||||
|
- #gpio-cells: Must be <2>. The first cell is the GPIO pin.
|
||||||
|
|
||||||
|
- interrupt-controller: The GPIO controller is also an interrupt
|
||||||
|
controller, many of its pins may be configured as an interrupt
|
||||||
|
source.
|
||||||
|
|
||||||
|
- #interrupt-cells: Must be <2>. The first cell is the GPIO pin
|
||||||
|
connected to the interrupt source. The second cell is the interrupt
|
||||||
|
triggering protocol and may have one of four values:
|
||||||
|
1 - edge triggered on the rising edge.
|
||||||
|
2 - edge triggered on the falling edge
|
||||||
|
4 - level triggered active high.
|
||||||
|
8 - level triggered active low.
|
||||||
|
|
||||||
|
- interrupts: Interrupt routing for each pin.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
gpio-controller@1070000000800 {
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
compatible = "cavium,octeon-3860-gpio";
|
||||||
|
reg = <0x10700 0x00000800 0x0 0x100>;
|
||||||
|
gpio-controller;
|
||||||
|
/* Interrupts are specified by two parts:
|
||||||
|
* 1) GPIO pin number (0..15)
|
||||||
|
* 2) Triggering (1 - edge rising
|
||||||
|
* 2 - edge falling
|
||||||
|
* 4 - level active high
|
||||||
|
* 8 - level active low)
|
||||||
|
*/
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <2>;
|
||||||
|
/* The GPIO pin connect to 16 consecutive CUI bits */
|
||||||
|
interrupts = <0 16>, <0 17>, <0 18>, <0 19>,
|
||||||
|
<0 20>, <0 21>, <0 22>, <0 23>,
|
||||||
|
<0 24>, <0 25>, <0 26>, <0 27>,
|
||||||
|
<0 28>, <0 29>, <0 30>, <0 31>;
|
||||||
|
};
|
@ -22,7 +22,7 @@ Required properties:
|
|||||||
Example:
|
Example:
|
||||||
|
|
||||||
gpio0: gpio@73f84000 {
|
gpio0: gpio@73f84000 {
|
||||||
compatible = "fsl,imx51-gpio", "fsl,imx31-gpio";
|
compatible = "fsl,imx51-gpio", "fsl,imx35-gpio";
|
||||||
reg = <0x73f84000 0x4000>;
|
reg = <0x73f84000 0x4000>;
|
||||||
interrupts = <50 51>;
|
interrupts = <50 51>;
|
||||||
gpio-controller;
|
gpio-controller;
|
||||||
|
@ -11,14 +11,15 @@ Required properties:
|
|||||||
<[phandle of the gpio controller node]
|
<[phandle of the gpio controller node]
|
||||||
[pin number within the gpio controller]
|
[pin number within the gpio controller]
|
||||||
[mux function]
|
[mux function]
|
||||||
[pull up/down]
|
[flags and pull up/down]
|
||||||
[drive strength]>
|
[drive strength]>
|
||||||
|
|
||||||
Values for gpio specifier:
|
Values for gpio specifier:
|
||||||
- Pin number: is a value between 0 to 7.
|
- Pin number: is a value between 0 to 7.
|
||||||
- Pull Up/Down: 0 - Pull Up/Down Disabled.
|
- Flags and Pull Up/Down: 0 - Pull Up/Down Disabled.
|
||||||
1 - Pull Down Enabled.
|
1 - Pull Down Enabled.
|
||||||
3 - Pull Up Enabled.
|
3 - Pull Up Enabled.
|
||||||
|
Bit 16 (0x00010000) - Input is active low.
|
||||||
- Drive Strength: 0 - 1x,
|
- Drive Strength: 0 - 1x,
|
||||||
1 - 3x,
|
1 - 3x,
|
||||||
2 - 2x,
|
2 - 2x,
|
||||||
|
@ -55,4 +55,4 @@ run-control {
|
|||||||
gpios = <&mpc8572 7 0>;
|
gpios = <&mpc8572 7 0>;
|
||||||
default-state = "on";
|
default-state = "on";
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
|
@ -27,3 +27,26 @@ Example:
|
|||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
#interrupt-cells = <1>;
|
#interrupt-cells = <1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
* Marvell Orion GPIO Controller
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible : Should be "marvell,orion-gpio"
|
||||||
|
- reg : Address and length of the register set for controller.
|
||||||
|
- gpio-controller : So we know this is a gpio controller.
|
||||||
|
- ngpio : How many gpios this controller has.
|
||||||
|
- interrupts : Up to 4 Interrupts for the controller.
|
||||||
|
|
||||||
|
Optional properties:
|
||||||
|
- mask-offset : For SMP Orions, offset for Nth CPU
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
gpio0: gpio@10100 {
|
||||||
|
compatible = "marvell,orion-gpio";
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-controller;
|
||||||
|
reg = <0x10100 0x40>;
|
||||||
|
ngpio = <32>;
|
||||||
|
interrupts = <35>, <36>, <37>, <38>;
|
||||||
|
};
|
||||||
|
34
Documentation/devicetree/bindings/i2c/cavium-i2c.txt
Normal file
34
Documentation/devicetree/bindings/i2c/cavium-i2c.txt
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
* Two Wire Serial Interface (TWSI) / I2C
|
||||||
|
|
||||||
|
- compatible: "cavium,octeon-3860-twsi"
|
||||||
|
|
||||||
|
Compatibility with all cn3XXX, cn5XXX and cn6XXX SOCs.
|
||||||
|
|
||||||
|
- reg: The base address of the TWSI/I2C bus controller register bank.
|
||||||
|
|
||||||
|
- #address-cells: Must be <1>.
|
||||||
|
|
||||||
|
- #size-cells: Must be <0>. I2C addresses have no size component.
|
||||||
|
|
||||||
|
- interrupts: A single interrupt specifier.
|
||||||
|
|
||||||
|
- clock-frequency: The I2C bus clock rate in Hz.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
twsi0: i2c@1180000001000 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
compatible = "cavium,octeon-3860-twsi";
|
||||||
|
reg = <0x11800 0x00001000 0x0 0x200>;
|
||||||
|
interrupts = <0 45>;
|
||||||
|
clock-frequency = <100000>;
|
||||||
|
|
||||||
|
rtc@68 {
|
||||||
|
compatible = "dallas,ds1337";
|
||||||
|
reg = <0x68>;
|
||||||
|
};
|
||||||
|
tmp@4c {
|
||||||
|
compatible = "ti,tmp421";
|
||||||
|
reg = <0x4c>;
|
||||||
|
};
|
||||||
|
};
|
@ -4,6 +4,8 @@ Required properties:
|
|||||||
- compatible: Should be "fsl,<chip>-i2c"
|
- compatible: Should be "fsl,<chip>-i2c"
|
||||||
- reg: Should contain registers location and length
|
- reg: Should contain registers location and length
|
||||||
- interrupts: Should contain ERROR and DMA interrupts
|
- interrupts: Should contain ERROR and DMA interrupts
|
||||||
|
- clock-frequency: Desired I2C bus clock frequency in Hz.
|
||||||
|
Only 100000Hz and 400000Hz modes are supported.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
@ -13,4 +15,5 @@ i2c0: i2c@80058000 {
|
|||||||
compatible = "fsl,imx28-i2c";
|
compatible = "fsl,imx28-i2c";
|
||||||
reg = <0x80058000 2000>;
|
reg = <0x80058000 2000>;
|
||||||
interrupts = <111 68>;
|
interrupts = <111 68>;
|
||||||
|
clock-frequency = <100000>;
|
||||||
};
|
};
|
||||||
|
33
Documentation/devicetree/bindings/i2c/i2c-ocores.txt
Normal file
33
Documentation/devicetree/bindings/i2c/i2c-ocores.txt
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
Device tree configuration for i2c-ocores
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible : "opencores,i2c-ocores"
|
||||||
|
- reg : bus address start and address range size of device
|
||||||
|
- interrupts : interrupt number
|
||||||
|
- clock-frequency : frequency of bus clock in Hz
|
||||||
|
- #address-cells : should be <1>
|
||||||
|
- #size-cells : should be <0>
|
||||||
|
|
||||||
|
Optional properties:
|
||||||
|
- reg-shift : device register offsets are shifted by this value
|
||||||
|
- reg-io-width : io register width in bytes (1, 2 or 4)
|
||||||
|
- regstep : deprecated, use reg-shift above
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
i2c0: ocores@a0000000 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
compatible = "opencores,i2c-ocores";
|
||||||
|
reg = <0xa0000000 0x8>;
|
||||||
|
interrupts = <10>;
|
||||||
|
clock-frequency = <20000000>;
|
||||||
|
|
||||||
|
reg-shift = <0>; /* 8 bit registers */
|
||||||
|
reg-io-width = <1>; /* 8 bit read/write */
|
||||||
|
|
||||||
|
dummy@60 {
|
||||||
|
compatible = "dummy";
|
||||||
|
reg = <0x60>;
|
||||||
|
};
|
||||||
|
};
|
@ -1,4 +1,4 @@
|
|||||||
* I2C
|
* Marvell MMP I2C controller
|
||||||
|
|
||||||
Required properties :
|
Required properties :
|
||||||
|
|
||||||
@ -32,3 +32,20 @@ Examples:
|
|||||||
interrupts = <58>;
|
interrupts = <58>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
* Marvell MV64XXX I2C controller
|
||||||
|
|
||||||
|
Required properties :
|
||||||
|
|
||||||
|
- reg : Offset and length of the register set for the device
|
||||||
|
- compatible : Should be "marvell,mv64xxx-i2c"
|
||||||
|
- interrupts : The interrupt number
|
||||||
|
- clock-frequency : Desired I2C bus clock frequency in Hz.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
i2c@11000 {
|
||||||
|
compatible = "marvell,mv64xxx-i2c";
|
||||||
|
reg = <0x11000 0x20>;
|
||||||
|
interrupts = <29>;
|
||||||
|
clock-frequency = <100000>;
|
||||||
|
};
|
||||||
|
28
Documentation/devicetree/bindings/input/lpc32xx-key.txt
Normal file
28
Documentation/devicetree/bindings/input/lpc32xx-key.txt
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
NXP LPC32xx Key Scan Interface
|
||||||
|
|
||||||
|
Required Properties:
|
||||||
|
- compatible: Should be "nxp,lpc3220-key"
|
||||||
|
- reg: Physical base address of the controller and length of memory mapped
|
||||||
|
region.
|
||||||
|
- interrupts: The interrupt number to the cpu.
|
||||||
|
- keypad,num-rows: Number of rows and columns, e.g. 1: 1x1, 6: 6x6
|
||||||
|
- keypad,num-columns: Must be equal to keypad,num-rows since LPC32xx only
|
||||||
|
supports square matrices
|
||||||
|
- nxp,debounce-delay-ms: Debounce delay in ms
|
||||||
|
- nxp,scan-delay-ms: Repeated scan period in ms
|
||||||
|
- linux,keymap: the key-code to be reported when the key is pressed
|
||||||
|
and released, see also
|
||||||
|
Documentation/devicetree/bindings/input/matrix-keymap.txt
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
key@40050000 {
|
||||||
|
compatible = "nxp,lpc3220-key";
|
||||||
|
reg = <0x40050000 0x1000>;
|
||||||
|
interrupts = <54 0>;
|
||||||
|
keypad,num-rows = <1>;
|
||||||
|
keypad,num-columns = <1>;
|
||||||
|
nxp,debounce-delay-ms = <3>;
|
||||||
|
nxp,scan-delay-ms = <34>;
|
||||||
|
linux,keymap = <0x00000002>;
|
||||||
|
};
|
31
Documentation/devicetree/bindings/input/omap-keypad.txt
Normal file
31
Documentation/devicetree/bindings/input/omap-keypad.txt
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
* TI's Keypad Controller device tree bindings
|
||||||
|
|
||||||
|
TI's Keypad controller is used to interface a SoC with a matrix-type
|
||||||
|
keypad device. The keypad controller supports multiple row and column lines.
|
||||||
|
A key can be placed at each intersection of a unique row and a unique column.
|
||||||
|
The keypad controller can sense a key-press and key-release and report the
|
||||||
|
event using a interrupt to the cpu.
|
||||||
|
|
||||||
|
Required SoC Specific Properties:
|
||||||
|
- compatible: should be one of the following
|
||||||
|
- "ti,omap4-keypad": For controllers compatible with omap4 keypad
|
||||||
|
controller.
|
||||||
|
|
||||||
|
Required Board Specific Properties, in addition to those specified by
|
||||||
|
the shared matrix-keyboard bindings:
|
||||||
|
- keypad,num-rows: Number of row lines connected to the keypad
|
||||||
|
controller.
|
||||||
|
|
||||||
|
- keypad,num-columns: Number of column lines connected to the
|
||||||
|
keypad controller.
|
||||||
|
|
||||||
|
Optional Properties specific to linux:
|
||||||
|
- linux,keypad-no-autorepeat: do no enable autorepeat feature.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
keypad@4ae1c000{
|
||||||
|
compatible = "ti,omap4-keypad";
|
||||||
|
keypad,num-rows = <2>;
|
||||||
|
keypad,num-columns = <8>;
|
||||||
|
linux,keypad-no-autorepeat;
|
||||||
|
};
|
@ -1,37 +0,0 @@
|
|||||||
Vibra driver for the twl6040 family
|
|
||||||
|
|
||||||
The vibra driver is a child of the twl6040 MFD dirver.
|
|
||||||
Documentation/devicetree/bindings/mfd/twl6040.txt
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible : Must be "ti,twl6040-vibra";
|
|
||||||
- interrupts: 4, Vibra overcurrent interrupt
|
|
||||||
- vddvibl-supply: Regulator supplying the left vibra motor
|
|
||||||
- vddvibr-supply: Regulator supplying the right vibra motor
|
|
||||||
- vibldrv_res: Board specific left driver resistance
|
|
||||||
- vibrdrv_res: Board specific right driver resistance
|
|
||||||
- viblmotor_res: Board specific left motor resistance
|
|
||||||
- vibrmotor_res: Board specific right motor resistance
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
- vddvibl_uV: If the vddvibl default voltage need to be changed
|
|
||||||
- vddvibr_uV: If the vddvibr default voltage need to be changed
|
|
||||||
|
|
||||||
Example:
|
|
||||||
/*
|
|
||||||
* 8-channel high quality low-power audio codec
|
|
||||||
* http://www.ti.com/lit/ds/symlink/twl6040.pdf
|
|
||||||
*/
|
|
||||||
twl6040: twl6040@4b {
|
|
||||||
...
|
|
||||||
twl6040_vibra: twl6040@1 {
|
|
||||||
compatible = "ti,twl6040-vibra";
|
|
||||||
interrupts = <4>;
|
|
||||||
vddvibl-supply = <&vbat>;
|
|
||||||
vddvibr-supply = <&vbat>;
|
|
||||||
vibldrv_res = <8>;
|
|
||||||
vibrdrv_res = <3>;
|
|
||||||
viblmotor_res = <10>;
|
|
||||||
vibrmotor_res = <10>;
|
|
||||||
};
|
|
||||||
};
|
|
@ -0,0 +1,21 @@
|
|||||||
|
NVIDIA Tegra 30 IOMMU H/W, SMMU (System Memory Management Unit)
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible : "nvidia,tegra30-smmu"
|
||||||
|
- reg : Should contain 3 register banks(address and length) for each
|
||||||
|
of the SMMU register blocks.
|
||||||
|
- interrupts : Should contain MC General interrupt.
|
||||||
|
- nvidia,#asids : # of ASIDs
|
||||||
|
- dma-window : IOVA start address and length.
|
||||||
|
- nvidia,ahb : phandle to the ahb bus connected to SMMU.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
smmu {
|
||||||
|
compatible = "nvidia,tegra30-smmu";
|
||||||
|
reg = <0x7000f010 0x02c
|
||||||
|
0x7000f1f0 0x010
|
||||||
|
0x7000f228 0x05c>;
|
||||||
|
nvidia,#asids = <4>; /* # of ASIDs */
|
||||||
|
dma-window = <0 0x40000000>; /* IOVA start & length */
|
||||||
|
nvidia,ahb = <&ahb>;
|
||||||
|
};
|
123
Documentation/devicetree/bindings/mfd/ab8500.txt
Normal file
123
Documentation/devicetree/bindings/mfd/ab8500.txt
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
* AB8500 Multi-Functional Device (MFD)
|
||||||
|
|
||||||
|
Required parent device properties:
|
||||||
|
- compatible : contains "stericsson,ab8500";
|
||||||
|
- interrupts : contains the IRQ line for the AB8500
|
||||||
|
- interrupt-controller : describes the AB8500 as an Interrupt Controller (has its own domain)
|
||||||
|
- #interrupt-cells : should be 2, for 2-cell format
|
||||||
|
- The first cell is the AB8500 local IRQ number
|
||||||
|
- The second cell is used to specify optional parameters
|
||||||
|
- bits[3:0] trigger type and level flags:
|
||||||
|
1 = low-to-high edge triggered
|
||||||
|
2 = high-to-low edge triggered
|
||||||
|
4 = active high level-sensitive
|
||||||
|
8 = active low level-sensitive
|
||||||
|
|
||||||
|
Optional parent device properties:
|
||||||
|
- reg : contains the PRCMU mailbox address for the AB8500 i2c port
|
||||||
|
|
||||||
|
The AB8500 consists of a large and varied group of sub-devices:
|
||||||
|
|
||||||
|
Device IRQ Names Supply Names Description
|
||||||
|
------ --------- ------------ -----------
|
||||||
|
ab8500-bm : : : Battery Manager
|
||||||
|
ab8500-btemp : : : Battery Temperature
|
||||||
|
ab8500-charger : : : Battery Charger
|
||||||
|
ab8500-fg : : : Fuel Gauge
|
||||||
|
ab8500-gpadc : HW_CONV_END : vddadc : Analogue to Digital Converter
|
||||||
|
SW_CONV_END : :
|
||||||
|
ab8500-gpio : : : GPIO Controller
|
||||||
|
ab8500-ponkey : ONKEY_DBF : : Power-on Key
|
||||||
|
ONKEY_DBR : :
|
||||||
|
ab8500-pwm : : : Pulse Width Modulator
|
||||||
|
ab8500-regulator : : : Regulators
|
||||||
|
ab8500-rtc : 60S : : Real Time Clock
|
||||||
|
: ALARM : :
|
||||||
|
ab8500-sysctrl : : : System Control
|
||||||
|
ab8500-usb : ID_WAKEUP_R : vddulpivio18 : Universal Serial Bus
|
||||||
|
: ID_WAKEUP_F : v-ape :
|
||||||
|
: VBUS_DET_F : musb_1v8 :
|
||||||
|
: VBUS_DET_R : :
|
||||||
|
: USB_LINK_STATUS : :
|
||||||
|
: USB_ADP_PROBE_PLUG : :
|
||||||
|
: USB_ADP_PROBE_UNPLUG : :
|
||||||
|
|
||||||
|
Required child device properties:
|
||||||
|
- compatible : "stericsson,ab8500-[bm|btemp|charger|fg|gpadc|gpio|ponkey|
|
||||||
|
pwm|regulator|rtc|sysctrl|usb]";
|
||||||
|
|
||||||
|
Optional child device properties:
|
||||||
|
- interrupts : contains the device IRQ(s) using the 2-cell format (see above)
|
||||||
|
- interrupt-names : contains names of IRQ resource in the order in which they were
|
||||||
|
supplied in the interrupts property
|
||||||
|
- <supply_name>-supply : contains a phandle to the regulator supply node in Device Tree
|
||||||
|
|
||||||
|
ab8500@5 {
|
||||||
|
compatible = "stericsson,ab8500";
|
||||||
|
reg = <5>; /* mailbox 5 is i2c */
|
||||||
|
interrupts = <0 40 0x4>;
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <2>;
|
||||||
|
|
||||||
|
ab8500-rtc {
|
||||||
|
compatible = "stericsson,ab8500-rtc";
|
||||||
|
interrupts = <17 0x4
|
||||||
|
18 0x4>;
|
||||||
|
interrupt-names = "60S", "ALARM";
|
||||||
|
};
|
||||||
|
|
||||||
|
ab8500-gpadc {
|
||||||
|
compatible = "stericsson,ab8500-gpadc";
|
||||||
|
interrupts = <32 0x4
|
||||||
|
39 0x4>;
|
||||||
|
interrupt-names = "HW_CONV_END", "SW_CONV_END";
|
||||||
|
vddadc-supply = <&ab8500_ldo_tvout_reg>;
|
||||||
|
};
|
||||||
|
|
||||||
|
ab8500-usb {
|
||||||
|
compatible = "stericsson,ab8500-usb";
|
||||||
|
interrupts = < 90 0x4
|
||||||
|
96 0x4
|
||||||
|
14 0x4
|
||||||
|
15 0x4
|
||||||
|
79 0x4
|
||||||
|
74 0x4
|
||||||
|
75 0x4>;
|
||||||
|
interrupt-names = "ID_WAKEUP_R",
|
||||||
|
"ID_WAKEUP_F",
|
||||||
|
"VBUS_DET_F",
|
||||||
|
"VBUS_DET_R",
|
||||||
|
"USB_LINK_STATUS",
|
||||||
|
"USB_ADP_PROBE_PLUG",
|
||||||
|
"USB_ADP_PROBE_UNPLUG";
|
||||||
|
vddulpivio18-supply = <&ab8500_ldo_initcore_reg>;
|
||||||
|
v-ape-supply = <&db8500_vape_reg>;
|
||||||
|
musb_1v8-supply = <&db8500_vsmps2_reg>;
|
||||||
|
};
|
||||||
|
|
||||||
|
ab8500-ponkey {
|
||||||
|
compatible = "stericsson,ab8500-ponkey";
|
||||||
|
interrupts = <6 0x4
|
||||||
|
7 0x4>;
|
||||||
|
interrupt-names = "ONKEY_DBF", "ONKEY_DBR";
|
||||||
|
};
|
||||||
|
|
||||||
|
ab8500-sysctrl {
|
||||||
|
compatible = "stericsson,ab8500-sysctrl";
|
||||||
|
};
|
||||||
|
|
||||||
|
ab8500-pwm {
|
||||||
|
compatible = "stericsson,ab8500-pwm";
|
||||||
|
};
|
||||||
|
|
||||||
|
ab8500-regulators {
|
||||||
|
compatible = "stericsson,ab8500-regulator";
|
||||||
|
|
||||||
|
ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
|
||||||
|
/*
|
||||||
|
* See: Documentation/devicetree/bindings/regulator/regulator.txt
|
||||||
|
* for more information on regulators
|
||||||
|
*/
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
59
Documentation/devicetree/bindings/mfd/max77686.txt
Normal file
59
Documentation/devicetree/bindings/mfd/max77686.txt
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
Maxim MAX77686 multi-function device
|
||||||
|
|
||||||
|
MAX77686 is a Mulitifunction device with PMIC, RTC and Charger on chip. It is
|
||||||
|
interfaced to host controller using i2c interface. PMIC and Charger submodules
|
||||||
|
are addressed using same i2c slave address whereas RTC submodule uses
|
||||||
|
different i2c slave address,presently for which we are statically creating i2c
|
||||||
|
client while probing.This document describes the binding for mfd device and
|
||||||
|
PMIC submodule.
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible : Must be "maxim,max77686";
|
||||||
|
- reg : Specifies the i2c slave address of PMIC block.
|
||||||
|
- interrupts : This i2c device has an IRQ line connected to the main SoC.
|
||||||
|
- interrupt-parent : The parent interrupt controller.
|
||||||
|
|
||||||
|
Optional node:
|
||||||
|
- voltage-regulators : The regulators of max77686 have to be instantiated
|
||||||
|
under subnode named "voltage-regulators" using the following format.
|
||||||
|
|
||||||
|
regulator_name {
|
||||||
|
regulator-compatible = LDOn/BUCKn
|
||||||
|
standard regulator constraints....
|
||||||
|
};
|
||||||
|
refer Documentation/devicetree/bindings/regulator/regulator.txt
|
||||||
|
|
||||||
|
The regulator-compatible property of regulator should initialized with string
|
||||||
|
to get matched with their hardware counterparts as follow:
|
||||||
|
|
||||||
|
-LDOn : for LDOs, where n can lie in range 1 to 26.
|
||||||
|
example: LDO1, LDO2, LDO26.
|
||||||
|
-BUCKn : for BUCKs, where n can lie in range 1 to 9.
|
||||||
|
example: BUCK1, BUCK5, BUCK9.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
max77686@09 {
|
||||||
|
compatible = "maxim,max77686";
|
||||||
|
interrupt-parent = <&wakeup_eint>;
|
||||||
|
interrupts = <26 0>;
|
||||||
|
reg = <0x09>;
|
||||||
|
|
||||||
|
voltage-regulators {
|
||||||
|
ldo11_reg {
|
||||||
|
regulator-compatible = "LDO11";
|
||||||
|
regulator-name = "vdd_ldo11";
|
||||||
|
regulator-min-microvolt = <1900000>;
|
||||||
|
regulator-max-microvolt = <1900000>;
|
||||||
|
regulator-always-on;
|
||||||
|
};
|
||||||
|
|
||||||
|
buck1_reg {
|
||||||
|
regulator-compatible = "BUCK1";
|
||||||
|
regulator-name = "vdd_mif";
|
||||||
|
regulator-min-microvolt = <950000>;
|
||||||
|
regulator-max-microvolt = <1300000>;
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-boot-on;
|
||||||
|
};
|
||||||
|
}
|
@ -81,7 +81,7 @@ Example:
|
|||||||
|
|
||||||
ti,vmbch-threshold = 0;
|
ti,vmbch-threshold = 0;
|
||||||
ti,vmbch2-threshold = 0;
|
ti,vmbch2-threshold = 0;
|
||||||
|
ti,en-ck32k-xtal;
|
||||||
ti,en-gpio-sleep = <0 0 1 0 0 0 0 0 0>;
|
ti,en-gpio-sleep = <0 0 1 0 0 0 0 0 0>;
|
||||||
|
|
||||||
vcc1-supply = <®_parent>;
|
vcc1-supply = <®_parent>;
|
||||||
|
@ -6,7 +6,7 @@ They are connected ot the host processor via i2c for commands, McPDM for audio
|
|||||||
data and commands.
|
data and commands.
|
||||||
|
|
||||||
Required properties:
|
Required properties:
|
||||||
- compatible : Must be "ti,twl6040";
|
- compatible : "ti,twl6040" for twl6040, "ti,twl6041" for twl6041
|
||||||
- reg: must be 0x4b for i2c address
|
- reg: must be 0x4b for i2c address
|
||||||
- interrupts: twl6040 has one interrupt line connecteded to the main SoC
|
- interrupts: twl6040 has one interrupt line connecteded to the main SoC
|
||||||
- interrupt-parent: The parent interrupt controller
|
- interrupt-parent: The parent interrupt controller
|
||||||
|
126
Documentation/devicetree/bindings/mips/cavium/bootbus.txt
Normal file
126
Documentation/devicetree/bindings/mips/cavium/bootbus.txt
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
* Boot Bus
|
||||||
|
|
||||||
|
The Octeon Boot Bus is a configurable parallel bus with 8 chip
|
||||||
|
selects. Each chip select is independently configurable.
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
- compatible: "cavium,octeon-3860-bootbus"
|
||||||
|
|
||||||
|
Compatibility with all cn3XXX, cn5XXX and cn6XXX SOCs.
|
||||||
|
|
||||||
|
- reg: The base address of the Boot Bus' register bank.
|
||||||
|
|
||||||
|
- #address-cells: Must be <2>. The first cell is the chip select
|
||||||
|
within the bootbus. The second cell is the offset from the chip select.
|
||||||
|
|
||||||
|
- #size-cells: Must be <1>.
|
||||||
|
|
||||||
|
- ranges: There must be one one triplet of (child-bus-address,
|
||||||
|
parent-bus-address, length) for each active chip select. If the
|
||||||
|
length element for any triplet is zero, the chip select is disabled,
|
||||||
|
making it inactive.
|
||||||
|
|
||||||
|
The configuration parameters for each chip select are stored in child
|
||||||
|
nodes.
|
||||||
|
|
||||||
|
Configuration Properties:
|
||||||
|
- compatible: "cavium,octeon-3860-bootbus-config"
|
||||||
|
|
||||||
|
- cavium,cs-index: A single cell indicating the chip select that
|
||||||
|
corresponds to this configuration.
|
||||||
|
|
||||||
|
- cavium,t-adr: A cell specifying the ADR timing (in nS).
|
||||||
|
|
||||||
|
- cavium,t-ce: A cell specifying the CE timing (in nS).
|
||||||
|
|
||||||
|
- cavium,t-oe: A cell specifying the OE timing (in nS).
|
||||||
|
|
||||||
|
- cavium,t-we: A cell specifying the WE timing (in nS).
|
||||||
|
|
||||||
|
- cavium,t-rd-hld: A cell specifying the RD_HLD timing (in nS).
|
||||||
|
|
||||||
|
- cavium,t-wr-hld: A cell specifying the WR_HLD timing (in nS).
|
||||||
|
|
||||||
|
- cavium,t-pause: A cell specifying the PAUSE timing (in nS).
|
||||||
|
|
||||||
|
- cavium,t-wait: A cell specifying the WAIT timing (in nS).
|
||||||
|
|
||||||
|
- cavium,t-page: A cell specifying the PAGE timing (in nS).
|
||||||
|
|
||||||
|
- cavium,t-rd-dly: A cell specifying the RD_DLY timing (in nS).
|
||||||
|
|
||||||
|
- cavium,pages: A cell specifying the PAGES parameter (0 = 8 bytes, 1
|
||||||
|
= 2 bytes, 2 = 4 bytes, 3 = 8 bytes).
|
||||||
|
|
||||||
|
- cavium,wait-mode: Optional. If present, wait mode (WAITM) is selected.
|
||||||
|
|
||||||
|
- cavium,page-mode: Optional. If present, page mode (PAGEM) is selected.
|
||||||
|
|
||||||
|
- cavium,bus-width: A cell specifying the WIDTH parameter (in bits) of
|
||||||
|
the bus for this chip select.
|
||||||
|
|
||||||
|
- cavium,ale-mode: Optional. If present, ALE mode is selected.
|
||||||
|
|
||||||
|
- cavium,sam-mode: Optional. If present, SAM mode is selected.
|
||||||
|
|
||||||
|
- cavium,or-mode: Optional. If present, OR mode is selected.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
bootbus: bootbus@1180000000000 {
|
||||||
|
compatible = "cavium,octeon-3860-bootbus";
|
||||||
|
reg = <0x11800 0x00000000 0x0 0x200>;
|
||||||
|
/* The chip select number and offset */
|
||||||
|
#address-cells = <2>;
|
||||||
|
/* The size of the chip select region */
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges = <0 0 0x0 0x1f400000 0xc00000>,
|
||||||
|
<1 0 0x10000 0x30000000 0>,
|
||||||
|
<2 0 0x10000 0x40000000 0>,
|
||||||
|
<3 0 0x10000 0x50000000 0>,
|
||||||
|
<4 0 0x0 0x1d020000 0x10000>,
|
||||||
|
<5 0 0x0 0x1d040000 0x10000>,
|
||||||
|
<6 0 0x0 0x1d050000 0x10000>,
|
||||||
|
<7 0 0x10000 0x90000000 0>;
|
||||||
|
|
||||||
|
cavium,cs-config@0 {
|
||||||
|
compatible = "cavium,octeon-3860-bootbus-config";
|
||||||
|
cavium,cs-index = <0>;
|
||||||
|
cavium,t-adr = <20>;
|
||||||
|
cavium,t-ce = <60>;
|
||||||
|
cavium,t-oe = <60>;
|
||||||
|
cavium,t-we = <45>;
|
||||||
|
cavium,t-rd-hld = <35>;
|
||||||
|
cavium,t-wr-hld = <45>;
|
||||||
|
cavium,t-pause = <0>;
|
||||||
|
cavium,t-wait = <0>;
|
||||||
|
cavium,t-page = <35>;
|
||||||
|
cavium,t-rd-dly = <0>;
|
||||||
|
|
||||||
|
cavium,pages = <0>;
|
||||||
|
cavium,bus-width = <8>;
|
||||||
|
};
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
cavium,cs-config@6 {
|
||||||
|
compatible = "cavium,octeon-3860-bootbus-config";
|
||||||
|
cavium,cs-index = <6>;
|
||||||
|
cavium,t-adr = <5>;
|
||||||
|
cavium,t-ce = <300>;
|
||||||
|
cavium,t-oe = <270>;
|
||||||
|
cavium,t-we = <150>;
|
||||||
|
cavium,t-rd-hld = <100>;
|
||||||
|
cavium,t-wr-hld = <70>;
|
||||||
|
cavium,t-pause = <0>;
|
||||||
|
cavium,t-wait = <0>;
|
||||||
|
cavium,t-page = <320>;
|
||||||
|
cavium,t-rd-dly = <0>;
|
||||||
|
|
||||||
|
cavium,pages = <0>;
|
||||||
|
cavium,wait-mode;
|
||||||
|
cavium,bus-width = <16>;
|
||||||
|
};
|
||||||
|
.
|
||||||
|
.
|
||||||
|
.
|
||||||
|
};
|
26
Documentation/devicetree/bindings/mips/cavium/ciu.txt
Normal file
26
Documentation/devicetree/bindings/mips/cavium/ciu.txt
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
* Central Interrupt Unit
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
- compatible: "cavium,octeon-3860-ciu"
|
||||||
|
|
||||||
|
Compatibility with all cn3XXX, cn5XXX and cn63XX SOCs.
|
||||||
|
|
||||||
|
- interrupt-controller: This is an interrupt controller.
|
||||||
|
|
||||||
|
- reg: The base address of the CIU's register bank.
|
||||||
|
|
||||||
|
- #interrupt-cells: Must be <2>. The first cell is the bank within
|
||||||
|
the CIU and may have a value of 0 or 1. The second cell is the bit
|
||||||
|
within the bank and may have a value between 0 and 63.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
interrupt-controller@1070000000000 {
|
||||||
|
compatible = "cavium,octeon-3860-ciu";
|
||||||
|
interrupt-controller;
|
||||||
|
/* Interrupts are specified by two parts:
|
||||||
|
* 1) Controller register (0 or 1)
|
||||||
|
* 2) Bit within the register (0..63)
|
||||||
|
*/
|
||||||
|
#interrupt-cells = <2>;
|
||||||
|
reg = <0x10700 0x00000000 0x0 0x7000>;
|
||||||
|
};
|
27
Documentation/devicetree/bindings/mips/cavium/ciu2.txt
Normal file
27
Documentation/devicetree/bindings/mips/cavium/ciu2.txt
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
* Central Interrupt Unit
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
- compatible: "cavium,octeon-6880-ciu2"
|
||||||
|
|
||||||
|
Compatibility with 68XX SOCs.
|
||||||
|
|
||||||
|
- interrupt-controller: This is an interrupt controller.
|
||||||
|
|
||||||
|
- reg: The base address of the CIU's register bank.
|
||||||
|
|
||||||
|
- #interrupt-cells: Must be <2>. The first cell is the bank within
|
||||||
|
the CIU and may have a value between 0 and 63. The second cell is
|
||||||
|
the bit within the bank and may also have a value between 0 and 63.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
interrupt-controller@1070100000000 {
|
||||||
|
compatible = "cavium,octeon-6880-ciu2";
|
||||||
|
interrupt-controller;
|
||||||
|
/* Interrupts are specified by two parts:
|
||||||
|
* 1) Controller register (0..63)
|
||||||
|
* 2) Bit within the register (0..63)
|
||||||
|
*/
|
||||||
|
#address-cells = <0>;
|
||||||
|
#interrupt-cells = <2>;
|
||||||
|
reg = <0x10701 0x00000000 0x0 0x4000000>;
|
||||||
|
};
|
21
Documentation/devicetree/bindings/mips/cavium/dma-engine.txt
Normal file
21
Documentation/devicetree/bindings/mips/cavium/dma-engine.txt
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
* DMA Engine.
|
||||||
|
|
||||||
|
The Octeon DMA Engine transfers between the Boot Bus and main memory.
|
||||||
|
The DMA Engine will be refered to by phandle by any device that is
|
||||||
|
connected to it.
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
- compatible: "cavium,octeon-5750-bootbus-dma"
|
||||||
|
|
||||||
|
Compatibility with all cn52XX, cn56XX and cn6XXX SOCs.
|
||||||
|
|
||||||
|
- reg: The base address of the DMA Engine's register bank.
|
||||||
|
|
||||||
|
- interrupts: A single interrupt specifier.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
dma0: dma-engine@1180000000100 {
|
||||||
|
compatible = "cavium,octeon-5750-bootbus-dma";
|
||||||
|
reg = <0x11800 0x00000100 0x0 0x8>;
|
||||||
|
interrupts = <0 63>;
|
||||||
|
};
|
46
Documentation/devicetree/bindings/mips/cavium/uctl.txt
Normal file
46
Documentation/devicetree/bindings/mips/cavium/uctl.txt
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
* UCTL USB controller glue
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
- compatible: "cavium,octeon-6335-uctl"
|
||||||
|
|
||||||
|
Compatibility with all cn6XXX SOCs.
|
||||||
|
|
||||||
|
- reg: The base address of the UCTL register bank.
|
||||||
|
|
||||||
|
- #address-cells: Must be <2>.
|
||||||
|
|
||||||
|
- #size-cells: Must be <2>.
|
||||||
|
|
||||||
|
- ranges: Empty to signify direct mapping of the children.
|
||||||
|
|
||||||
|
- refclk-frequency: A single cell containing the reference clock
|
||||||
|
frequency in Hz.
|
||||||
|
|
||||||
|
- refclk-type: A string describing the reference clock connection
|
||||||
|
either "crystal" or "external".
|
||||||
|
|
||||||
|
Example:
|
||||||
|
uctl@118006f000000 {
|
||||||
|
compatible = "cavium,octeon-6335-uctl";
|
||||||
|
reg = <0x11800 0x6f000000 0x0 0x100>;
|
||||||
|
ranges; /* Direct mapping */
|
||||||
|
#address-cells = <2>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
/* 12MHz, 24MHz and 48MHz allowed */
|
||||||
|
refclk-frequency = <24000000>;
|
||||||
|
/* Either "crystal" or "external" */
|
||||||
|
refclk-type = "crystal";
|
||||||
|
|
||||||
|
ehci@16f0000000000 {
|
||||||
|
compatible = "cavium,octeon-6335-ehci","usb-ehci";
|
||||||
|
reg = <0x16f00 0x00000000 0x0 0x100>;
|
||||||
|
interrupts = <0 56>;
|
||||||
|
big-endian-regs;
|
||||||
|
};
|
||||||
|
ohci@16f0000000400 {
|
||||||
|
compatible = "cavium,octeon-6335-ohci","usb-ohci";
|
||||||
|
reg = <0x16f00 0x00000400 0x0 0x100>;
|
||||||
|
interrupts = <0 56>;
|
||||||
|
big-endian-regs;
|
||||||
|
};
|
||||||
|
};
|
21
Documentation/devicetree/bindings/misc/at25.txt
Normal file
21
Documentation/devicetree/bindings/misc/at25.txt
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
Atmel AT25 eeprom
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible : "atmel,at25".
|
||||||
|
- reg : chip select number
|
||||||
|
- spi-max-frequency : max spi frequency to use
|
||||||
|
|
||||||
|
- at25,byte-len : total eeprom size in bytes
|
||||||
|
- at25,addr-mode : addr-mode flags, as defined in include/linux/spi/eeprom.h
|
||||||
|
- at25,page-size : size of the eeprom page
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
at25@0 {
|
||||||
|
compatible = "atmel,at25";
|
||||||
|
reg = <0>
|
||||||
|
spi-max-frequency = <5000000>;
|
||||||
|
|
||||||
|
at25,byte-len = <0x8000>;
|
||||||
|
at25,addr-mode = <2>;
|
||||||
|
at25,page-size = <64>;
|
||||||
|
};
|
@ -1,7 +1,7 @@
|
|||||||
NAND support for Marvell Orion SoC platforms
|
NAND support for Marvell Orion SoC platforms
|
||||||
|
|
||||||
Required properties:
|
Required properties:
|
||||||
- compatible : "mrvl,orion-nand".
|
- compatible : "marvell,orion-nand".
|
||||||
- reg : Base physical address of the NAND and length of memory mapped
|
- reg : Base physical address of the NAND and length of memory mapped
|
||||||
region
|
region
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ nand@f4000000 {
|
|||||||
ale = <1>;
|
ale = <1>;
|
||||||
bank-width = <1>;
|
bank-width = <1>;
|
||||||
chip-delay = <25>;
|
chip-delay = <25>;
|
||||||
compatible = "mrvl,orion-nand";
|
compatible = "marvell,orion-nand";
|
||||||
reg = <0xf4000000 0x400>;
|
reg = <0xf4000000 0x400>;
|
||||||
|
|
||||||
partition@0 {
|
partition@0 {
|
||||||
|
@ -35,4 +35,4 @@ flash@0 {
|
|||||||
uimage@100000 {
|
uimage@100000 {
|
||||||
reg = <0x0100000 0x200000>;
|
reg = <0x0100000 0x200000>;
|
||||||
};
|
};
|
||||||
];
|
};
|
||||||
|
27
Documentation/devicetree/bindings/net/cavium-mdio.txt
Normal file
27
Documentation/devicetree/bindings/net/cavium-mdio.txt
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
* System Management Interface (SMI) / MDIO
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
- compatible: "cavium,octeon-3860-mdio"
|
||||||
|
|
||||||
|
Compatibility with all cn3XXX, cn5XXX and cn6XXX SOCs.
|
||||||
|
|
||||||
|
- reg: The base address of the MDIO bus controller register bank.
|
||||||
|
|
||||||
|
- #address-cells: Must be <1>.
|
||||||
|
|
||||||
|
- #size-cells: Must be <0>. MDIO addresses have no size component.
|
||||||
|
|
||||||
|
Typically an MDIO bus might have several children.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
mdio@1180000001800 {
|
||||||
|
compatible = "cavium,octeon-3860-mdio";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
reg = <0x11800 0x00001800 0x0 0x40>;
|
||||||
|
|
||||||
|
ethernet-phy@0 {
|
||||||
|
...
|
||||||
|
reg = <0>;
|
||||||
|
};
|
||||||
|
};
|
39
Documentation/devicetree/bindings/net/cavium-mix.txt
Normal file
39
Documentation/devicetree/bindings/net/cavium-mix.txt
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
* MIX Ethernet controller.
|
||||||
|
|
||||||
|
Properties:
|
||||||
|
- compatible: "cavium,octeon-5750-mix"
|
||||||
|
|
||||||
|
Compatibility with all cn5XXX and cn6XXX SOCs populated with MIX
|
||||||
|
devices.
|
||||||
|
|
||||||
|
- reg: The base addresses of four separate register banks. The first
|
||||||
|
bank contains the MIX registers. The second bank the corresponding
|
||||||
|
AGL registers. The third bank are the AGL registers shared by all
|
||||||
|
MIX devices present. The fourth bank is the AGL_PRT_CTL shared by
|
||||||
|
all MIX devices present.
|
||||||
|
|
||||||
|
- cell-index: A single cell specifying which portion of the shared
|
||||||
|
register banks corresponds to this MIX device.
|
||||||
|
|
||||||
|
- interrupts: Two interrupt specifiers. The first is the MIX
|
||||||
|
interrupt routing and the second the routing for the AGL interrupts.
|
||||||
|
|
||||||
|
- mac-address: Optional, the MAC address to assign to the device.
|
||||||
|
|
||||||
|
- local-mac-address: Optional, the MAC address to assign to the device
|
||||||
|
if mac-address is not specified.
|
||||||
|
|
||||||
|
- phy-handle: Optional, a phandle for the PHY device connected to this device.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
ethernet@1070000100800 {
|
||||||
|
compatible = "cavium,octeon-5750-mix";
|
||||||
|
reg = <0x10700 0x00100800 0x0 0x100>, /* MIX */
|
||||||
|
<0x11800 0xE0000800 0x0 0x300>, /* AGL */
|
||||||
|
<0x11800 0xE0000400 0x0 0x400>, /* AGL_SHARED */
|
||||||
|
<0x11800 0xE0002008 0x0 0x8>; /* AGL_PRT_CTL */
|
||||||
|
cell-index = <1>;
|
||||||
|
interrupts = <1 18>, < 1 46>;
|
||||||
|
local-mac-address = [ 00 0f b7 10 63 54 ];
|
||||||
|
phy-handle = <&phy1>;
|
||||||
|
};
|
98
Documentation/devicetree/bindings/net/cavium-pip.txt
Normal file
98
Documentation/devicetree/bindings/net/cavium-pip.txt
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
* PIP Ethernet nexus.
|
||||||
|
|
||||||
|
The PIP Ethernet nexus can control several data packet input/output
|
||||||
|
devices. The devices have a two level grouping scheme. There may be
|
||||||
|
several interfaces, and each interface may have several ports. These
|
||||||
|
ports might be an individual Ethernet PHY.
|
||||||
|
|
||||||
|
|
||||||
|
Properties for the PIP nexus:
|
||||||
|
- compatible: "cavium,octeon-3860-pip"
|
||||||
|
|
||||||
|
Compatibility with all cn3XXX, cn5XXX and cn6XXX SOCs.
|
||||||
|
|
||||||
|
- reg: The base address of the PIP's register bank.
|
||||||
|
|
||||||
|
- #address-cells: Must be <1>.
|
||||||
|
|
||||||
|
- #size-cells: Must be <0>.
|
||||||
|
|
||||||
|
Properties for PIP interfaces which is a child the PIP nexus:
|
||||||
|
- compatible: "cavium,octeon-3860-pip-interface"
|
||||||
|
|
||||||
|
Compatibility with all cn3XXX, cn5XXX and cn6XXX SOCs.
|
||||||
|
|
||||||
|
- reg: The interface number.
|
||||||
|
|
||||||
|
- #address-cells: Must be <1>.
|
||||||
|
|
||||||
|
- #size-cells: Must be <0>.
|
||||||
|
|
||||||
|
Properties for PIP port which is a child the PIP interface:
|
||||||
|
- compatible: "cavium,octeon-3860-pip-port"
|
||||||
|
|
||||||
|
Compatibility with all cn3XXX, cn5XXX and cn6XXX SOCs.
|
||||||
|
|
||||||
|
- reg: The port number within the interface group.
|
||||||
|
|
||||||
|
- mac-address: Optional, the MAC address to assign to the device.
|
||||||
|
|
||||||
|
- local-mac-address: Optional, the MAC address to assign to the device
|
||||||
|
if mac-address is not specified.
|
||||||
|
|
||||||
|
- phy-handle: Optional, a phandle for the PHY device connected to this device.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
pip@11800a0000000 {
|
||||||
|
compatible = "cavium,octeon-3860-pip";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
reg = <0x11800 0xa0000000 0x0 0x2000>;
|
||||||
|
|
||||||
|
interface@0 {
|
||||||
|
compatible = "cavium,octeon-3860-pip-interface";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
reg = <0>; /* interface */
|
||||||
|
|
||||||
|
ethernet@0 {
|
||||||
|
compatible = "cavium,octeon-3860-pip-port";
|
||||||
|
reg = <0x0>; /* Port */
|
||||||
|
local-mac-address = [ 00 0f b7 10 63 60 ];
|
||||||
|
phy-handle = <&phy2>;
|
||||||
|
};
|
||||||
|
ethernet@1 {
|
||||||
|
compatible = "cavium,octeon-3860-pip-port";
|
||||||
|
reg = <0x1>; /* Port */
|
||||||
|
local-mac-address = [ 00 0f b7 10 63 61 ];
|
||||||
|
phy-handle = <&phy3>;
|
||||||
|
};
|
||||||
|
ethernet@2 {
|
||||||
|
compatible = "cavium,octeon-3860-pip-port";
|
||||||
|
reg = <0x2>; /* Port */
|
||||||
|
local-mac-address = [ 00 0f b7 10 63 62 ];
|
||||||
|
phy-handle = <&phy4>;
|
||||||
|
};
|
||||||
|
ethernet@3 {
|
||||||
|
compatible = "cavium,octeon-3860-pip-port";
|
||||||
|
reg = <0x3>; /* Port */
|
||||||
|
local-mac-address = [ 00 0f b7 10 63 63 ];
|
||||||
|
phy-handle = <&phy5>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
interface@1 {
|
||||||
|
compatible = "cavium,octeon-3860-pip-interface";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
reg = <1>; /* interface */
|
||||||
|
|
||||||
|
ethernet@0 {
|
||||||
|
compatible = "cavium,octeon-3860-pip-port";
|
||||||
|
reg = <0x0>; /* Port */
|
||||||
|
local-mac-address = [ 00 0f b7 10 63 64 ];
|
||||||
|
phy-handle = <&phy6>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
93
Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
Normal file
93
Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
One-register-per-pin type device tree based pinctrl driver
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible : "pinctrl-single"
|
||||||
|
|
||||||
|
- reg : offset and length of the register set for the mux registers
|
||||||
|
|
||||||
|
- pinctrl-single,register-width : pinmux register access width in bits
|
||||||
|
|
||||||
|
- pinctrl-single,function-mask : mask of allowed pinmux function bits
|
||||||
|
in the pinmux register
|
||||||
|
|
||||||
|
Optional properties:
|
||||||
|
- pinctrl-single,function-off : function off mode for disabled state if
|
||||||
|
available and same for all registers; if not specified, disabling of
|
||||||
|
pin functions is ignored
|
||||||
|
|
||||||
|
This driver assumes that there is only one register for each pin,
|
||||||
|
and uses the common pinctrl bindings as specified in the pinctrl-bindings.txt
|
||||||
|
document in this directory.
|
||||||
|
|
||||||
|
The pin configuration nodes for pinctrl-single are specified as pinctrl
|
||||||
|
register offset and value pairs using pinctrl-single,pins. Only the bits
|
||||||
|
specified in pinctrl-single,function-mask are updated. For example, setting
|
||||||
|
a pin for a device could be done with:
|
||||||
|
|
||||||
|
pinctrl-single,pins = <0xdc 0x118>;
|
||||||
|
|
||||||
|
Where 0xdc is the offset from the pinctrl register base address for the
|
||||||
|
device pinctrl register, and 0x118 contains the desired value of the
|
||||||
|
pinctrl register. See the device example and static board pins example
|
||||||
|
below for more information.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
/* SoC common file */
|
||||||
|
|
||||||
|
/* first controller instance for pins in core domain */
|
||||||
|
pmx_core: pinmux@4a100040 {
|
||||||
|
compatible = "pinctrl-single";
|
||||||
|
reg = <0x4a100040 0x0196>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
pinctrl-single,register-width = <16>;
|
||||||
|
pinctrl-single,function-mask = <0xffff>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* second controller instance for pins in wkup domain */
|
||||||
|
pmx_wkup: pinmux@4a31e040 {
|
||||||
|
compatible = "pinctrl-single;
|
||||||
|
reg = <0x4a31e040 0x0038>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
pinctrl-single,register-width = <16>;
|
||||||
|
pinctrl-single,function-mask = <0xffff>;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* board specific .dts file */
|
||||||
|
|
||||||
|
&pmx_core {
|
||||||
|
|
||||||
|
/*
|
||||||
|
* map all board specific static pins enabled by the pinctrl driver
|
||||||
|
* itself during the boot (or just set them up in the bootloader)
|
||||||
|
*/
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&board_pins>;
|
||||||
|
|
||||||
|
board_pins: pinmux_board_pins {
|
||||||
|
pinctrl-single,pins = <
|
||||||
|
0x6c 0xf
|
||||||
|
0x6e 0xf
|
||||||
|
0x70 0xf
|
||||||
|
0x72 0xf
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* map uart2 pins */
|
||||||
|
uart2_pins: pinmux_uart2_pins {
|
||||||
|
pinctrl-single,pins = <
|
||||||
|
0xd8 0x118
|
||||||
|
0xda 0
|
||||||
|
0xdc 0x118
|
||||||
|
0xde 0
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart2 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&uart2_pins>;
|
||||||
|
};
|
12
Documentation/devicetree/bindings/pwm/lpc32xx-pwm.txt
Normal file
12
Documentation/devicetree/bindings/pwm/lpc32xx-pwm.txt
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
LPC32XX PWM controller
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible: should be "nxp,lpc3220-pwm"
|
||||||
|
- reg: physical base address and length of the controller's registers
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
pwm@0x4005C000 {
|
||||||
|
compatible = "nxp,lpc3220-pwm";
|
||||||
|
reg = <0x4005C000 0x8>;
|
||||||
|
};
|
17
Documentation/devicetree/bindings/pwm/mxs-pwm.txt
Normal file
17
Documentation/devicetree/bindings/pwm/mxs-pwm.txt
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
Freescale MXS PWM controller
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible: should be "fsl,imx23-pwm"
|
||||||
|
- reg: physical base address and length of the controller's registers
|
||||||
|
- #pwm-cells: should be 2. The first cell specifies the per-chip index
|
||||||
|
of the PWM to use and the second cell is the duty cycle in nanoseconds.
|
||||||
|
- fsl,pwm-number: the number of PWM devices
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
pwm: pwm@80064000 {
|
||||||
|
compatible = "fsl,imx28-pwm", "fsl,imx23-pwm";
|
||||||
|
reg = <0x80064000 2000>;
|
||||||
|
#pwm-cells = <2>;
|
||||||
|
fsl,pwm-number = <8>;
|
||||||
|
};
|
18
Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt
Normal file
18
Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
Tegra SoC PWFM controller
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible: should be one of:
|
||||||
|
- "nvidia,tegra20-pwm"
|
||||||
|
- "nvidia,tegra30-pwm"
|
||||||
|
- reg: physical base address and length of the controller's registers
|
||||||
|
- #pwm-cells: On Tegra the number of cells used to specify a PWM is 2. The
|
||||||
|
first cell specifies the per-chip index of the PWM to use and the second
|
||||||
|
cell is the duty cycle in nanoseconds.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
pwm: pwm@7000a000 {
|
||||||
|
compatible = "nvidia,tegra20-pwm";
|
||||||
|
reg = <0x7000a000 0x100>;
|
||||||
|
#pwm-cells = <2>;
|
||||||
|
};
|
57
Documentation/devicetree/bindings/pwm/pwm.txt
Normal file
57
Documentation/devicetree/bindings/pwm/pwm.txt
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
Specifying PWM information for devices
|
||||||
|
======================================
|
||||||
|
|
||||||
|
1) PWM user nodes
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
PWM users should specify a list of PWM devices that they want to use
|
||||||
|
with a property containing a 'pwm-list':
|
||||||
|
|
||||||
|
pwm-list ::= <single-pwm> [pwm-list]
|
||||||
|
single-pwm ::= <pwm-phandle> <pwm-specifier>
|
||||||
|
pwm-phandle : phandle to PWM controller node
|
||||||
|
pwm-specifier : array of #pwm-cells specifying the given PWM
|
||||||
|
(controller specific)
|
||||||
|
|
||||||
|
PWM properties should be named "pwms". The exact meaning of each pwms
|
||||||
|
property must be documented in the device tree binding for each device.
|
||||||
|
An optional property "pwm-names" may contain a list of strings to label
|
||||||
|
each of the PWM devices listed in the "pwms" property. If no "pwm-names"
|
||||||
|
property is given, the name of the user node will be used as fallback.
|
||||||
|
|
||||||
|
Drivers for devices that use more than a single PWM device can use the
|
||||||
|
"pwm-names" property to map the name of the PWM device requested by the
|
||||||
|
pwm_get() call to an index into the list given by the "pwms" property.
|
||||||
|
|
||||||
|
The following example could be used to describe a PWM-based backlight
|
||||||
|
device:
|
||||||
|
|
||||||
|
pwm: pwm {
|
||||||
|
#pwm-cells = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
[...]
|
||||||
|
|
||||||
|
bl: backlight {
|
||||||
|
pwms = <&pwm 0 5000000>;
|
||||||
|
pwm-names = "backlight";
|
||||||
|
};
|
||||||
|
|
||||||
|
pwm-specifier typically encodes the chip-relative PWM number and the PWM
|
||||||
|
period in nanoseconds. Note that in the example above, specifying the
|
||||||
|
"pwm-names" is redundant because the name "backlight" would be used as
|
||||||
|
fallback anyway.
|
||||||
|
|
||||||
|
2) PWM controller nodes
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
PWM controller nodes must specify the number of cells used for the
|
||||||
|
specifier using the '#pwm-cells' property.
|
||||||
|
|
||||||
|
An example PWM controller might look like this:
|
||||||
|
|
||||||
|
pwm: pwm@7000a000 {
|
||||||
|
compatible = "nvidia,tegra20-pwm";
|
||||||
|
reg = <0x7000a000 0x100>;
|
||||||
|
#pwm-cells = <2>;
|
||||||
|
};
|
@ -9,9 +9,9 @@ Required properties:
|
|||||||
- regulators: list of regulators provided by this controller, must have
|
- regulators: list of regulators provided by this controller, must have
|
||||||
property "regulator-compatible" to match their hardware counterparts:
|
property "regulator-compatible" to match their hardware counterparts:
|
||||||
sm[0-2], ldo[0-9] and ldo_rtc
|
sm[0-2], ldo[0-9] and ldo_rtc
|
||||||
- sm0-supply: The input supply for the SM0.
|
- vin-sm0-supply: The input supply for the SM0.
|
||||||
- sm1-supply: The input supply for the SM1.
|
- vin-sm1-supply: The input supply for the SM1.
|
||||||
- sm2-supply: The input supply for the SM2.
|
- vin-sm2-supply: The input supply for the SM2.
|
||||||
- vinldo01-supply: The input supply for the LDO1 and LDO2
|
- vinldo01-supply: The input supply for the LDO1 and LDO2
|
||||||
- vinldo23-supply: The input supply for the LDO2 and LDO3
|
- vinldo23-supply: The input supply for the LDO2 and LDO3
|
||||||
- vinldo4-supply: The input supply for the LDO4
|
- vinldo4-supply: The input supply for the LDO4
|
||||||
@ -30,9 +30,9 @@ Example:
|
|||||||
#gpio-cells = <2>;
|
#gpio-cells = <2>;
|
||||||
gpio-controller;
|
gpio-controller;
|
||||||
|
|
||||||
sm0-supply = <&some_reg>;
|
vin-sm0-supply = <&some_reg>;
|
||||||
sm1-supply = <&some_reg>;
|
vin-sm1-supply = <&some_reg>;
|
||||||
sm2-supply = <&some_reg>;
|
vin-sm2-supply = <&some_reg>;
|
||||||
vinldo01-supply = <...>;
|
vinldo01-supply = <...>;
|
||||||
vinldo23-supply = <...>;
|
vinldo23-supply = <...>;
|
||||||
vinldo4-supply = <...>;
|
vinldo4-supply = <...>;
|
||||||
|
19
Documentation/devicetree/bindings/serial/cavium-uart.txt
Normal file
19
Documentation/devicetree/bindings/serial/cavium-uart.txt
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
* Universal Asynchronous Receiver/Transmitter (UART)
|
||||||
|
|
||||||
|
- compatible: "cavium,octeon-3860-uart"
|
||||||
|
|
||||||
|
Compatibility with all cn3XXX, cn5XXX and cn6XXX SOCs.
|
||||||
|
|
||||||
|
- reg: The base address of the UART register bank.
|
||||||
|
|
||||||
|
- interrupts: A single interrupt specifier.
|
||||||
|
|
||||||
|
- current-speed: Optional, the current bit rate in bits per second.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
uart1: serial@1180000000c00 {
|
||||||
|
compatible = "cavium,octeon-3860-uart","ns16550";
|
||||||
|
reg = <0x11800 0x00000c00 0x0 0x400>;
|
||||||
|
current-speed = <115200>;
|
||||||
|
interrupts = <0 35>;
|
||||||
|
};
|
19
Documentation/devicetree/bindings/spi/spi-orion.txt
Normal file
19
Documentation/devicetree/bindings/spi/spi-orion.txt
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
Marvell Orion SPI device
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible : should be "marvell,orion-spi".
|
||||||
|
- reg : offset and length of the register set for the device
|
||||||
|
- cell-index : Which of multiple SPI controllers is this.
|
||||||
|
Optional properties:
|
||||||
|
- interrupts : Is currently not used.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
spi@10600 {
|
||||||
|
compatible = "marvell,orion-spi";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
cell-index = <0>;
|
||||||
|
reg = <0x10600 0x28>;
|
||||||
|
interrupts = <23>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
14
Documentation/devicetree/bindings/thermal/spear-thermal.txt
Normal file
14
Documentation/devicetree/bindings/thermal/spear-thermal.txt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
* SPEAr Thermal
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible : "st,thermal-spear1340"
|
||||||
|
- reg : Address range of the thermal registers
|
||||||
|
- st,thermal-flags: flags used to enable thermal sensor
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
thermal@fc000000 {
|
||||||
|
compatible = "st,thermal-spear1340";
|
||||||
|
reg = <0xfc000000 0x1000>;
|
||||||
|
st,thermal-flags = <0x7000>;
|
||||||
|
};
|
@ -9,6 +9,7 @@ Required properties:
|
|||||||
- "ns16750"
|
- "ns16750"
|
||||||
- "ns16850"
|
- "ns16850"
|
||||||
- "nvidia,tegra20-uart"
|
- "nvidia,tegra20-uart"
|
||||||
|
- "nxp,lpc3220-uart"
|
||||||
- "ibm,qpace-nwp-serial"
|
- "ibm,qpace-nwp-serial"
|
||||||
- "serial" if the port type is unknown.
|
- "serial" if the port type is unknown.
|
||||||
- reg : offset and length of the register set for the device.
|
- reg : offset and length of the register set for the device.
|
||||||
|
18
Documentation/devicetree/bindings/usb/ci13xxx-imx.txt
Normal file
18
Documentation/devicetree/bindings/usb/ci13xxx-imx.txt
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
* Freescale i.MX ci13xxx usb controllers
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible: Should be "fsl,imx27-usb"
|
||||||
|
- reg: Should contain registers location and length
|
||||||
|
- interrupts: Should contain controller interrupt
|
||||||
|
|
||||||
|
Optional properties:
|
||||||
|
- fsl,usbphy: phandler of usb phy that connects to the only one port
|
||||||
|
- vbus-supply: regulator for vbus
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
usb@02184000 { /* USB OTG */
|
||||||
|
compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
|
||||||
|
reg = <0x02184000 0x200>;
|
||||||
|
interrupts = <0 43 0x04>;
|
||||||
|
fsl,usbphy = <&usbphy1>;
|
||||||
|
};
|
13
Documentation/devicetree/bindings/usb/mxs-phy.txt
Normal file
13
Documentation/devicetree/bindings/usb/mxs-phy.txt
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
* Freescale MXS USB Phy Device
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible: Should be "fsl,imx23-usbphy"
|
||||||
|
- reg: Should contain registers location and length
|
||||||
|
- interrupts: Should contain phy interrupt
|
||||||
|
|
||||||
|
Example:
|
||||||
|
usbphy1: usbphy@020c9000 {
|
||||||
|
compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
|
||||||
|
reg = <0x020c9000 0x1000>;
|
||||||
|
interrupts = <0 44 0x04>;
|
||||||
|
};
|
@ -0,0 +1,28 @@
|
|||||||
|
pwm-backlight bindings
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible: "pwm-backlight"
|
||||||
|
- pwms: OF device-tree PWM specification (see PWM binding[0])
|
||||||
|
- brightness-levels: Array of distinct brightness levels. Typically these
|
||||||
|
are in the range from 0 to 255, but any range starting at 0 will do.
|
||||||
|
The actual brightness level (PWM duty cycle) will be interpolated
|
||||||
|
from these values. 0 means a 0% duty cycle (darkest/off), while the
|
||||||
|
last value in the array represents a 100% duty cycle (brightest).
|
||||||
|
- default-brightness-level: the default brightness level (index into the
|
||||||
|
array defined by the "brightness-levels" property)
|
||||||
|
|
||||||
|
Optional properties:
|
||||||
|
- pwm-names: a list of names for the PWM devices specified in the
|
||||||
|
"pwms" property (see PWM binding[0])
|
||||||
|
|
||||||
|
[0]: Documentation/devicetree/bindings/pwm/pwm.txt
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
backlight {
|
||||||
|
compatible = "pwm-backlight";
|
||||||
|
pwms = <&pwm 0 5000000>;
|
||||||
|
|
||||||
|
brightness-levels = <0 4 8 16 32 64 128 255>;
|
||||||
|
default-brightness-level = <6>;
|
||||||
|
};
|
14
Documentation/devicetree/bindings/watchdog/marvel.txt
Normal file
14
Documentation/devicetree/bindings/watchdog/marvel.txt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
* Marvell Orion Watchdog Time
|
||||||
|
|
||||||
|
Required Properties:
|
||||||
|
|
||||||
|
- Compatibility : "marvell,orion-wdt"
|
||||||
|
- reg : Address of the timer registers
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
wdt@20300 {
|
||||||
|
compatible = "marvell,orion-wdt";
|
||||||
|
reg = <0x20300 0x28>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
@ -312,7 +312,7 @@ device tree for the NVIDIA Tegra board.
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
At .machine_init() time, Tegra board support code will need to look at
|
At .init_machine() time, Tegra board support code will need to look at
|
||||||
this DT and decide which nodes to create platform_devices for.
|
this DT and decide which nodes to create platform_devices for.
|
||||||
However, looking at the tree, it is not immediately obvious what kind
|
However, looking at the tree, it is not immediately obvious what kind
|
||||||
of device each node represents, or even if a node represents a device
|
of device each node represents, or even if a node represents a device
|
||||||
|
@ -150,7 +150,6 @@ keywords.c
|
|||||||
ksym.c*
|
ksym.c*
|
||||||
ksym.h*
|
ksym.h*
|
||||||
kxgettext
|
kxgettext
|
||||||
lkc_defs.h
|
|
||||||
lex.c
|
lex.c
|
||||||
lex.*.c
|
lex.*.c
|
||||||
linux
|
linux
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user