mirror of https://gitee.com/openkylin/linux.git
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
This commit is contained in:
commit
7a26019fde
1
CREDITS
1
CREDITS
|
@ -534,6 +534,7 @@ N: NeilBrown
|
|||
E: neil@brown.name
|
||||
P: 4096R/566281B9 1BC6 29EB D390 D870 7B5F 497A 39EC 9EDD 5662 81B9
|
||||
D: NFSD Maintainer 2000-2007
|
||||
D: MD Maintainer 2001-2016
|
||||
|
||||
N: Zach Brown
|
||||
E: zab@zabbo.net
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
What: /config/iio
|
||||
Date: October 2015
|
||||
KernelVersion: 4.4
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
This represents Industrial IO configuration entry point
|
||||
directory. It contains sub-groups corresponding to IIO
|
||||
objects.
|
||||
|
||||
What: /config/iio/triggers
|
||||
Date: October 2015
|
||||
KernelVersion: 4.4
|
||||
Description:
|
||||
Industrial IO software triggers directory.
|
||||
|
||||
What: /config/iio/triggers/hrtimers
|
||||
Date: October 2015
|
||||
KernelVersion: 4.4
|
||||
Description:
|
||||
High resolution timers directory. Creating a directory here
|
||||
will result in creating a hrtimer trigger in the IIO subsystem.
|
|
@ -10,3 +10,5 @@ Description:
|
|||
isoc_mult - 0..2 (hs/ss only)
|
||||
isoc_maxburst - 0..15 (ss only)
|
||||
buflen - buffer length
|
||||
bulk_qlen - depth of queue for bulk
|
||||
iso_qlen - depth of queue for iso
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
What: /sys/bus/iio/devices/iio:deviceX/in_allow_async_readout
|
||||
Date: December 2015
|
||||
KernelVersion: 4.4
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
By default (value '0'), the capture thread checks for the Conversion
|
||||
Ready Flag to being set prior to committing a new value to the sample
|
||||
buffer. This synchronizes the in-chip conversion rate with the
|
||||
in-driver readout rate at the cost of an additional register read.
|
||||
|
||||
Writing '1' will remove the polling for the Conversion Ready Flags to
|
||||
save the additional i2c transaction, which will improve the bandwidth
|
||||
available for reading data. However, samples can be occasionally skipped
|
||||
or repeated, depending on the beat between the capture and conversion
|
||||
rates.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_shunt_resistor
|
||||
Date: December 2015
|
||||
KernelVersion: 4.4
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
The value of the shunt resistor may be known only at runtime fom an
|
||||
eeprom content read by a client application. This attribute allows to
|
||||
set its value in ohms.
|
|
@ -134,19 +134,21 @@ Description:
|
|||
enabled for the device. Developer can write y/Y/1 or n/N/0 to
|
||||
the file to enable/disable the feature.
|
||||
|
||||
What: /sys/bus/usb/devices/.../power/usb3_hardware_lpm
|
||||
Date: June 2015
|
||||
What: /sys/bus/usb/devices/.../power/usb3_hardware_lpm_u1
|
||||
/sys/bus/usb/devices/.../power/usb3_hardware_lpm_u2
|
||||
Date: November 2015
|
||||
Contact: Kevin Strasser <kevin.strasser@linux.intel.com>
|
||||
Lu Baolu <baolu.lu@linux.intel.com>
|
||||
Description:
|
||||
If CONFIG_PM is set and a USB 3.0 lpm-capable device is plugged
|
||||
in to a xHCI host which supports link PM, it will check if U1
|
||||
and U2 exit latencies have been set in the BOS descriptor; if
|
||||
the check is is passed and the host supports USB3 hardware LPM,
|
||||
the check is passed and the host supports USB3 hardware LPM,
|
||||
USB3 hardware LPM will be enabled for the device and the USB
|
||||
device directory will contain a file named
|
||||
power/usb3_hardware_lpm. The file holds a string value (enable
|
||||
or disable) indicating whether or not USB3 hardware LPM is
|
||||
enabled for the device.
|
||||
device directory will contain two files named
|
||||
power/usb3_hardware_lpm_u1 and power/usb3_hardware_lpm_u2. These
|
||||
files hold a string value (enable or disable) indicating whether
|
||||
or not USB3 hardware LPM U1 or U2 is enabled for the device.
|
||||
|
||||
What: /sys/bus/usb/devices/.../removable
|
||||
Date: February 2012
|
||||
|
@ -187,6 +189,17 @@ Description:
|
|||
The file will read "hotplug", "wired" and "not used" if the
|
||||
information is available, and "unknown" otherwise.
|
||||
|
||||
What: /sys/bus/usb/devices/.../(hub interface)/portX/usb3_lpm_permit
|
||||
Date: November 2015
|
||||
Contact: Lu Baolu <baolu.lu@linux.intel.com>
|
||||
Description:
|
||||
Some USB3.0 devices are not friendly to USB3 LPM. usb3_lpm_permit
|
||||
attribute allows enabling/disabling usb3 lpm of a port. It takes
|
||||
effect both before and after a usb device is enumerated. Supported
|
||||
values are "0" if both u1 and u2 are NOT permitted, "u1" if only u1
|
||||
is permitted, "u2" if only u2 is permitted, "u1_u2" if both u1 and
|
||||
u2 are permitted.
|
||||
|
||||
What: /sys/bus/usb/devices/.../power/usb2_lpm_l1_timeout
|
||||
Date: May 2013
|
||||
Contact: Mathias Nyman <mathias.nyman@linux.intel.com>
|
||||
|
|
|
@ -87,6 +87,12 @@ Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
|
|||
Description:
|
||||
Controls the checkpoint timing.
|
||||
|
||||
What: /sys/fs/f2fs/<disk>/idle_interval
|
||||
Date: January 2016
|
||||
Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
|
||||
Description:
|
||||
Controls the idle timing.
|
||||
|
||||
What: /sys/fs/f2fs/<disk>/ra_nid_pages
|
||||
Date: October 2015
|
||||
Contact: "Chao Yu" <chao2.yu@samsung.com>
|
||||
|
|
|
@ -33,7 +33,7 @@ Description:
|
|||
The object directory contains subdirectories for each function
|
||||
that is patched within the object.
|
||||
|
||||
What: /sys/kernel/livepatch/<patch>/<object>/<function>
|
||||
What: /sys/kernel/livepatch/<patch>/<object>/<function,sympos>
|
||||
Date: Nov 2014
|
||||
KernelVersion: 3.19.0
|
||||
Contact: live-patching@vger.kernel.org
|
||||
|
@ -41,4 +41,8 @@ Description:
|
|||
The function directory contains attributes regarding the
|
||||
properties and state of the patched function.
|
||||
|
||||
The directory name contains the patched function name and a
|
||||
sympos number corresponding to the nth occurrence of the symbol
|
||||
name in kallsyms for the patched object.
|
||||
|
||||
There are currently no such attributes.
|
||||
|
|
|
@ -74,7 +74,7 @@ Description:
|
|||
assignment may be changed by two writing numbers into
|
||||
the file.
|
||||
|
||||
What: /sys/class/ptp/ptpN/pps_avaiable
|
||||
What: /sys/class/ptp/ptpN/pps_available
|
||||
Date: September 2010
|
||||
Contact: Richard Cochran <richardcochran@gmail.com>
|
||||
Description:
|
||||
|
|
|
@ -263,6 +263,7 @@ X!Isound/sound_firmware.c
|
|||
!Iinclude/media/lirc_dev.h
|
||||
</sect1>
|
||||
<sect1><title>Media Controller devices</title>
|
||||
!Pinclude/media/media-device.h Media Controller
|
||||
!Iinclude/media/media-device.h
|
||||
!Iinclude/media/media-devnode.h
|
||||
!Iinclude/media/media-entity.h
|
||||
|
|
|
@ -58,21 +58,36 @@
|
|||
<title>Media device model</title>
|
||||
<para>Discovering a device internal topology, and configuring it at runtime,
|
||||
is one of the goals of the media controller API. To achieve this, hardware
|
||||
devices are modelled as an oriented graph of building blocks called entities
|
||||
connected through pads.</para>
|
||||
<para>An entity is a basic media hardware or software building block. It can
|
||||
correspond to a large variety of logical blocks such as physical hardware
|
||||
devices (CMOS sensor for instance), logical hardware devices (a building
|
||||
block in a System-on-Chip image processing pipeline), DMA channels or
|
||||
physical connectors.</para>
|
||||
<para>A pad is a connection endpoint through which an entity can interact
|
||||
with other entities. Data (not restricted to video) produced by an entity
|
||||
flows from the entity's output to one or more entity inputs. Pads should not
|
||||
be confused with physical pins at chip boundaries.</para>
|
||||
<para>A link is a point-to-point oriented connection between two pads,
|
||||
either on the same entity or on different entities. Data flows from a source
|
||||
pad to a sink pad.</para>
|
||||
devices and Linux Kernel interfaces are modelled as graph objects on
|
||||
an oriented graph. The object types that constitute the graph are:</para>
|
||||
<itemizedlist>
|
||||
<listitem><para>An <emphasis role="bold">entity</emphasis>
|
||||
is a basic media hardware or software building block. It can correspond to
|
||||
a large variety of logical blocks such as physical hardware devices
|
||||
(CMOS sensor for instance), logical hardware devices (a building block in
|
||||
a System-on-Chip image processing pipeline), DMA channels or physical
|
||||
connectors.</para></listitem>
|
||||
<listitem><para>An <emphasis role="bold">interface</emphasis>
|
||||
is a graph representation of a Linux Kernel userspace API interface,
|
||||
like a device node or a sysfs file that controls one or more entities
|
||||
in the graph.</para></listitem>
|
||||
<listitem><para>A <emphasis role="bold">pad</emphasis>
|
||||
is a data connection endpoint through which an entity can interact with
|
||||
other entities. Data (not restricted to video) produced by an entity
|
||||
flows from the entity's output to one or more entity inputs. Pads should
|
||||
not be confused with physical pins at chip boundaries.</para></listitem>
|
||||
<listitem><para>A <emphasis role="bold">data link</emphasis>
|
||||
is a point-to-point oriented connection between two pads, either on the
|
||||
same entity or on different entities. Data flows from a source pad to a
|
||||
sink pad.</para></listitem>
|
||||
<listitem><para>An <emphasis role="bold">interface link</emphasis>
|
||||
is a point-to-point bidirectional control connection between a Linux
|
||||
Kernel interface and an entity.m</para></listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
|
||||
<!-- All non-ioctl specific data types go here. -->
|
||||
&sub-media-types;
|
||||
</chapter>
|
||||
|
||||
<appendix id="media-user-func">
|
||||
|
@ -83,6 +98,7 @@
|
|||
&sub-media-func-ioctl;
|
||||
<!-- All ioctls go here. -->
|
||||
&sub-media-ioc-device-info;
|
||||
&sub-media-ioc-g-topology;
|
||||
&sub-media-ioc-enum-entities;
|
||||
&sub-media-ioc-enum-links;
|
||||
&sub-media-ioc-setup-link;
|
||||
|
|
|
@ -59,15 +59,6 @@
|
|||
<para>Entity IDs can be non-contiguous. Applications must
|
||||
<emphasis>not</emphasis> try to enumerate entities by calling
|
||||
MEDIA_IOC_ENUM_ENTITIES with increasing id's until they get an error.</para>
|
||||
<para>Two or more entities that share a common non-zero
|
||||
<structfield>group_id</structfield> value are considered as logically
|
||||
grouped. Groups are used to report
|
||||
<itemizedlist>
|
||||
<listitem><para>ALSA, VBI and video nodes that carry the same media
|
||||
stream</para></listitem>
|
||||
<listitem><para>lens and flash controllers associated with a sensor</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<table pgwide="1" frame="none" id="media-entity-desc">
|
||||
<title>struct <structname>media_entity_desc</structname></title>
|
||||
|
@ -106,7 +97,7 @@
|
|||
<entry><structfield>revision</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Entity revision in a driver/hardware specific format.</entry>
|
||||
<entry>Entity revision. Always zero (obsolete)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
|
@ -120,7 +111,7 @@
|
|||
<entry><structfield>group_id</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Entity group ID</entry>
|
||||
<entry>Entity group ID. Always zero (obsolete)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u16</entry>
|
||||
|
@ -171,97 +162,6 @@
|
|||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<table frame="none" pgwide="1" id="media-entity-type">
|
||||
<title>Media entity types</title>
|
||||
<tgroup cols="2">
|
||||
<colspec colname="c1"/>
|
||||
<colspec colname="c2"/>
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_T_DEVNODE</constant></entry>
|
||||
<entry>Unknown device node</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_T_DEVNODE_V4L</constant></entry>
|
||||
<entry>V4L video, radio or vbi device node</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_T_DEVNODE_FB</constant></entry>
|
||||
<entry>Frame buffer device node</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_T_DEVNODE_ALSA</constant></entry>
|
||||
<entry>ALSA card</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_T_DEVNODE_DVB_FE</constant></entry>
|
||||
<entry>DVB frontend devnode</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_T_DEVNODE_DVB_DEMUX</constant></entry>
|
||||
<entry>DVB demux devnode</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_T_DEVNODE_DVB_DVR</constant></entry>
|
||||
<entry>DVB DVR devnode</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_T_DEVNODE_DVB_CA</constant></entry>
|
||||
<entry>DVB CAM devnode</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_T_DEVNODE_DVB_NET</constant></entry>
|
||||
<entry>DVB network devnode</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_T_V4L2_SUBDEV</constant></entry>
|
||||
<entry>Unknown V4L sub-device</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_T_V4L2_SUBDEV_SENSOR</constant></entry>
|
||||
<entry>Video sensor</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_T_V4L2_SUBDEV_FLASH</constant></entry>
|
||||
<entry>Flash controller</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_T_V4L2_SUBDEV_LENS</constant></entry>
|
||||
<entry>Lens controller</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_T_V4L2_SUBDEV_DECODER</constant></entry>
|
||||
<entry>Video decoder, the basic function of the video decoder is to
|
||||
accept analogue video from a wide variety of sources such as
|
||||
broadcast, DVD players, cameras and video cassette recorders, in
|
||||
either NTSC, PAL or HD format and still occasionally SECAM, separate
|
||||
it into its component parts, luminance and chrominance, and output
|
||||
it in some digital video standard, with appropriate embedded timing
|
||||
signals.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_T_V4L2_SUBDEV_TUNER</constant></entry>
|
||||
<entry>TV and/or radio tuner</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<table frame="none" pgwide="1" id="media-entity-flag">
|
||||
<title>Media entity flags</title>
|
||||
<tgroup cols="2">
|
||||
<colspec colname="c1"/>
|
||||
<colspec colname="c2"/>
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_FL_DEFAULT</constant></entry>
|
||||
<entry>Default entity for its type. Used to discover the default
|
||||
audio, VBI and video devices, the default camera sensor, ...</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
|
|
|
@ -118,35 +118,6 @@
|
|||
</tgroup>
|
||||
</table>
|
||||
|
||||
<table frame="none" pgwide="1" id="media-pad-flag">
|
||||
<title>Media pad flags</title>
|
||||
<tgroup cols="2">
|
||||
<colspec colname="c1"/>
|
||||
<colspec colname="c2"/>
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry><constant>MEDIA_PAD_FL_SINK</constant></entry>
|
||||
<entry>Input pad, relative to the entity. Input pads sink data and
|
||||
are targets of links.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_PAD_FL_SOURCE</constant></entry>
|
||||
<entry>Output pad, relative to the entity. Output pads source data
|
||||
and are origins of links.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_PAD_FL_MUST_CONNECT</constant></entry>
|
||||
<entry>If this flag is set and the pad is linked to any other
|
||||
pad, then at least one of those links must be enabled for the
|
||||
entity to be able to stream. There could be temporary reasons
|
||||
(e.g. device configuration dependent) for the pad to need
|
||||
enabled links even when this flag isn't set; the absence of the
|
||||
flag doesn't imply there is none.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<table pgwide="1" frame="none" id="media-link-desc">
|
||||
<title>struct <structname>media_link_desc</structname></title>
|
||||
<tgroup cols="3">
|
||||
|
@ -171,33 +142,6 @@
|
|||
</tgroup>
|
||||
</table>
|
||||
|
||||
<table frame="none" pgwide="1" id="media-link-flag">
|
||||
<title>Media link flags</title>
|
||||
<tgroup cols="2">
|
||||
<colspec colname="c1"/>
|
||||
<colspec colname="c2"/>
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry><constant>MEDIA_LNK_FL_ENABLED</constant></entry>
|
||||
<entry>The link is enabled and can be used to transfer media data.
|
||||
When two or more links target a sink pad, only one of them can be
|
||||
enabled at a time.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_LNK_FL_IMMUTABLE</constant></entry>
|
||||
<entry>The link enabled state can't be modified at runtime. An
|
||||
immutable link is always enabled.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_LNK_FL_DYNAMIC</constant></entry>
|
||||
<entry>The link enabled state can be modified during streaming. This
|
||||
flag is set by drivers and is read-only for applications.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
<para>One and only one of <constant>MEDIA_PAD_FL_SINK</constant> and
|
||||
<constant>MEDIA_PAD_FL_SOURCE</constant> must be set for every pad.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
|
|
|
@ -0,0 +1,394 @@
|
|||
<refentry id="media-g-topology">
|
||||
<refmeta>
|
||||
<refentrytitle>ioctl MEDIA_IOC_G_TOPOLOGY</refentrytitle>
|
||||
&manvol;
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>MEDIA_IOC_G_TOPOLOGY</refname>
|
||||
<refpurpose>Enumerate the graph topology and graph element properties</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 media_v2_topology *<parameter>argp</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Arguments</title>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>fd</parameter></term>
|
||||
<listitem>
|
||||
<para>File descriptor returned by
|
||||
<link linkend='media-func-open'><function>open()</function></link>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>request</parameter></term>
|
||||
<listitem>
|
||||
<para>MEDIA_IOC_G_TOPOLOGY</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>argp</parameter></term>
|
||||
<listitem>
|
||||
<para></para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para><emphasis role="bold">NOTE:</emphasis> This new ioctl is programmed to be added on Kernel 4.6. Its definition/arguments may change until its final version.</para>
|
||||
|
||||
<para>The typical usage of this ioctl is to call it twice.
|
||||
On the first call, the structure defined at &media-v2-topology; should
|
||||
be zeroed. At return, if no errors happen, this ioctl will return the
|
||||
<constant>topology_version</constant> and the total number of entities,
|
||||
interfaces, pads and links.</para>
|
||||
<para>Before the second call, the userspace should allocate arrays to
|
||||
store the graph elements that are desired, putting the pointers to them
|
||||
at the ptr_entities, ptr_interfaces, ptr_links and/or ptr_pads, keeping
|
||||
the other values untouched.</para>
|
||||
<para>If the <constant>topology_version</constant> remains the same, the
|
||||
ioctl should fill the desired arrays with the media graph elements.</para>
|
||||
|
||||
<table pgwide="1" frame="none" id="media-v2-topology">
|
||||
<title>struct <structname>media_v2_topology</structname></title>
|
||||
<tgroup cols="5">
|
||||
<colspec colname="c1" />
|
||||
<colspec colname="c2" />
|
||||
<colspec colname="c3" />
|
||||
<colspec colname="c4" />
|
||||
<colspec colname="c5" />
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry>__u64</entry>
|
||||
<entry><structfield>topology_version</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Version of the media graph topology. When the graph is
|
||||
created, this field starts with zero. Every time a graph
|
||||
element is added or removed, this field is
|
||||
incremented.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u64</entry>
|
||||
<entry><structfield>num_entities</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Number of entities in the graph</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u64</entry>
|
||||
<entry><structfield>ptr_entities</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>A pointer to a memory area where the entities array
|
||||
will be stored, converted to a 64-bits integer.
|
||||
It can be zero. if zero, the ioctl won't store the
|
||||
entities. It will just update
|
||||
<constant>num_entities</constant></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u64</entry>
|
||||
<entry><structfield>num_interfaces</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Number of interfaces in the graph</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u64</entry>
|
||||
<entry><structfield>ptr_interfaces</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>A pointer to a memory area where the interfaces array
|
||||
will be stored, converted to a 64-bits integer.
|
||||
It can be zero. if zero, the ioctl won't store the
|
||||
interfaces. It will just update
|
||||
<constant>num_interfaces</constant></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u64</entry>
|
||||
<entry><structfield>num_pads</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Total number of pads in the graph</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u64</entry>
|
||||
<entry><structfield>ptr_pads</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>A pointer to a memory area where the pads array
|
||||
will be stored, converted to a 64-bits integer.
|
||||
It can be zero. if zero, the ioctl won't store the
|
||||
pads. It will just update
|
||||
<constant>num_pads</constant></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u64</entry>
|
||||
<entry><structfield>num_links</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Total number of data and interface links in the graph</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u64</entry>
|
||||
<entry><structfield>ptr_links</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>A pointer to a memory area where the links array
|
||||
will be stored, converted to a 64-bits integer.
|
||||
It can be zero. if zero, the ioctl won't store the
|
||||
links. It will just update
|
||||
<constant>num_links</constant></entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<table pgwide="1" frame="none" id="media-v2-entity">
|
||||
<title>struct <structname>media_v2_entity</structname></title>
|
||||
<tgroup cols="5">
|
||||
<colspec colname="c1" />
|
||||
<colspec colname="c2" />
|
||||
<colspec colname="c3" />
|
||||
<colspec colname="c4" />
|
||||
<colspec colname="c5" />
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>id</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Unique ID for the entity.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>char</entry>
|
||||
<entry><structfield>name</structfield>[64]</entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Entity name as an UTF-8 NULL-terminated string.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>function</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Entity main function, see <xref linkend="media-entity-type" /> for details.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>reserved</structfield>[12]</entry>
|
||||
<entry>Reserved for future extensions. Drivers and applications must
|
||||
set this array to zero.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<table pgwide="1" frame="none" id="media-v2-interface">
|
||||
<title>struct <structname>media_v2_interface</structname></title>
|
||||
<tgroup cols="5">
|
||||
<colspec colname="c1" />
|
||||
<colspec colname="c2" />
|
||||
<colspec colname="c3" />
|
||||
<colspec colname="c4" />
|
||||
<colspec colname="c5" />
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>id</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Unique ID for the interface.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>intf_type</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Interface type, see <xref linkend="media-intf-type" /> for details.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>flags</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Interface flags. Currently unused.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>reserved</structfield>[9]</entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Reserved for future extensions. Drivers and applications must
|
||||
set this array to zero.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>struct media_v2_intf_devnode</entry>
|
||||
<entry><structfield>devnode</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Used only for device node interfaces. See <xref linkend="media-v2-intf-devnode" /> for details..</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<table pgwide="1" frame="none" id="media-v2-intf-devnode">
|
||||
<title>struct <structname>media_v2_interface</structname></title>
|
||||
<tgroup cols="5">
|
||||
<colspec colname="c1" />
|
||||
<colspec colname="c2" />
|
||||
<colspec colname="c3" />
|
||||
<colspec colname="c4" />
|
||||
<colspec colname="c5" />
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>major</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Device node major number.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>minor</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Device node minor number.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<table pgwide="1" frame="none" id="media-v2-pad">
|
||||
<title>struct <structname>media_v2_pad</structname></title>
|
||||
<tgroup cols="5">
|
||||
<colspec colname="c1" />
|
||||
<colspec colname="c2" />
|
||||
<colspec colname="c3" />
|
||||
<colspec colname="c4" />
|
||||
<colspec colname="c5" />
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>id</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Unique ID for the pad.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>entity_id</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Unique ID for the entity where this pad belongs.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>flags</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Pad flags, see <xref linkend="media-pad-flag" /> for more details.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>reserved</structfield>[9]</entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Reserved for future extensions. Drivers and applications must
|
||||
set this array to zero.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<table pgwide="1" frame="none" id="media-v2-link">
|
||||
<title>struct <structname>media_v2_pad</structname></title>
|
||||
<tgroup cols="5">
|
||||
<colspec colname="c1" />
|
||||
<colspec colname="c2" />
|
||||
<colspec colname="c3" />
|
||||
<colspec colname="c4" />
|
||||
<colspec colname="c5" />
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>id</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Unique ID for the pad.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>source_id</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>
|
||||
<para>On pad to pad links: unique ID for the source pad.</para>
|
||||
<para>On interface to entity links: unique ID for the interface.</para>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>sink_id</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>
|
||||
<para>On pad to pad links: unique ID for the sink pad.</para>
|
||||
<para>On interface to entity links: unique ID for the entity.</para>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>flags</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Link flags, see <xref linkend="media-link-flag" /> for more details.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>reserved</structfield>[5]</entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
<entry>Reserved for future extensions. Drivers and applications must
|
||||
set this array to zero.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
&return-value;
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><errorcode>ENOSPC</errorcode></term>
|
||||
<listitem>
|
||||
<para>This is returned when either one or more of the num_entities,
|
||||
num_interfaces, num_links or num_pads are non-zero and are smaller
|
||||
than the actual number of elements inside the graph. This may happen
|
||||
if the <constant>topology_version</constant> changed when compared
|
||||
to the last time this ioctl was called. Userspace should usually
|
||||
free the area for the pointers, zero the struct elements and call
|
||||
this ioctl again.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
</refentry>
|
|
@ -0,0 +1,240 @@
|
|||
<section id="media-controller-types">
|
||||
<title>Types and flags used to represent the media graph elements</title>
|
||||
|
||||
<table frame="none" pgwide="1" id="media-entity-type">
|
||||
<title>Media entity types</title>
|
||||
<tgroup cols="2">
|
||||
<colspec colname="c1"/>
|
||||
<colspec colname="c2"/>
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_F_UNKNOWN</constant> and <constant>MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN</constant></entry>
|
||||
<entry>Unknown entity. That generally indicates that
|
||||
a driver didn't initialize properly the entity, with is a Kernel bug</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_F_IO_V4L</constant></entry>
|
||||
<entry>Data streaming input and/or output entity.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_F_IO_VBI</constant></entry>
|
||||
<entry>V4L VBI streaming input or output entity</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_F_IO_SWRADIO</constant></entry>
|
||||
<entry>V4L Software Digital Radio (SDR) streaming input or output entity</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_F_IO_DTV</constant></entry>
|
||||
<entry>DVB Digital TV streaming input or output entity</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_F_DTV_DEMOD</constant></entry>
|
||||
<entry>Digital TV demodulator entity.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_F_TS_DEMUX</constant></entry>
|
||||
<entry>MPEG Transport stream demux entity. Could be implemented on hardware or in Kernelspace by the Linux DVB subsystem.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_F_DTV_CA</constant></entry>
|
||||
<entry>Digital TV Conditional Access module (CAM) entity</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_F_DTV_NET_DECAP</constant></entry>
|
||||
<entry>Digital TV network ULE/MLE desencapsulation entity. Could be implemented on hardware or in Kernelspace</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_F_CONN_RF</constant></entry>
|
||||
<entry>Connector for a Radio Frequency (RF) signal.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_F_CONN_SVIDEO</constant></entry>
|
||||
<entry>Connector for a S-Video signal.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_F_CONN_COMPOSITE</constant></entry>
|
||||
<entry>Connector for a RGB composite signal.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_F_CONN_TEST</constant></entry>
|
||||
<entry>Connector for a test generator.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_F_CAM_SENSOR</constant></entry>
|
||||
<entry>Camera video sensor entity.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_F_FLASH</constant></entry>
|
||||
<entry>Flash controller entity.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_F_LENS</constant></entry>
|
||||
<entry>Lens controller entity.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_F_ATV_DECODER</constant></entry>
|
||||
<entry>Analog video decoder, the basic function of the video decoder
|
||||
is to accept analogue video from a wide variety of sources such as
|
||||
broadcast, DVD players, cameras and video cassette recorders, in
|
||||
either NTSC, PAL, SECAM or HD format, separating the stream
|
||||
into its component parts, luminance and chrominance, and output
|
||||
it in some digital video standard, with appropriate timing
|
||||
signals.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_F_TUNER</constant></entry>
|
||||
<entry>Digital TV, analog TV, radio and/or software radio tuner.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<table frame="none" pgwide="1" id="media-entity-flag">
|
||||
<title>Media entity flags</title>
|
||||
<tgroup cols="2">
|
||||
<colspec colname="c1"/>
|
||||
<colspec colname="c2"/>
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_FL_DEFAULT</constant></entry>
|
||||
<entry>Default entity for its type. Used to discover the default
|
||||
audio, VBI and video devices, the default camera sensor, ...</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_ENT_FL_CONNECTOR</constant></entry>
|
||||
<entry>The entity represents a data conector</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<table frame="none" pgwide="1" id="media-intf-type">
|
||||
<title>Media interface types</title>
|
||||
<tgroup cols="3">
|
||||
<colspec colname="c1"/>
|
||||
<colspec colname="c2"/>
|
||||
<colspec colname="c3"/>
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry><constant>MEDIA_INTF_T_DVB_FE</constant></entry>
|
||||
<entry>Device node interface for the Digital TV frontend</entry>
|
||||
<entry>typically, /dev/dvb/adapter?/frontend?</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_INTF_T_DVB_DEMUX</constant></entry>
|
||||
<entry>Device node interface for the Digital TV demux</entry>
|
||||
<entry>typically, /dev/dvb/adapter?/demux?</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_INTF_T_DVB_DVR</constant></entry>
|
||||
<entry>Device node interface for the Digital TV DVR</entry>
|
||||
<entry>typically, /dev/dvb/adapter?/dvr?</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_INTF_T_DVB_CA</constant></entry>
|
||||
<entry>Device node interface for the Digital TV Conditional Access</entry>
|
||||
<entry>typically, /dev/dvb/adapter?/ca?</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_INTF_T_DVB_FE</constant></entry>
|
||||
<entry>Device node interface for the Digital TV network control</entry>
|
||||
<entry>typically, /dev/dvb/adapter?/net?</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_INTF_T_V4L_VIDEO</constant></entry>
|
||||
<entry>Device node interface for video (V4L)</entry>
|
||||
<entry>typically, /dev/video?</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_INTF_T_V4L_VBI</constant></entry>
|
||||
<entry>Device node interface for VBI (V4L)</entry>
|
||||
<entry>typically, /dev/vbi?</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_INTF_T_V4L_RADIO</constant></entry>
|
||||
<entry>Device node interface for radio (V4L)</entry>
|
||||
<entry>typically, /dev/vbi?</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_INTF_T_V4L_SUBDEV</constant></entry>
|
||||
<entry>Device node interface for a V4L subdevice</entry>
|
||||
<entry>typically, /dev/v4l-subdev?</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_INTF_T_V4L_SWRADIO</constant></entry>
|
||||
<entry>Device node interface for Software Defined Radio (V4L)</entry>
|
||||
<entry>typically, /dev/swradio?</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<table frame="none" pgwide="1" id="media-pad-flag">
|
||||
<title>Media pad flags</title>
|
||||
<tgroup cols="2">
|
||||
<colspec colname="c1"/>
|
||||
<colspec colname="c2"/>
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry><constant>MEDIA_PAD_FL_SINK</constant></entry>
|
||||
<entry>Input pad, relative to the entity. Input pads sink data and
|
||||
are targets of links.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_PAD_FL_SOURCE</constant></entry>
|
||||
<entry>Output pad, relative to the entity. Output pads source data
|
||||
and are origins of links.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_PAD_FL_MUST_CONNECT</constant></entry>
|
||||
<entry>If this flag is set and the pad is linked to any other
|
||||
pad, then at least one of those links must be enabled for the
|
||||
entity to be able to stream. There could be temporary reasons
|
||||
(e.g. device configuration dependent) for the pad to need
|
||||
enabled links even when this flag isn't set; the absence of the
|
||||
flag doesn't imply there is none.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<para>One and only one of <constant>MEDIA_PAD_FL_SINK</constant> and
|
||||
<constant>MEDIA_PAD_FL_SOURCE</constant> must be set for every pad.</para>
|
||||
|
||||
<table frame="none" pgwide="1" id="media-link-flag">
|
||||
<title>Media link flags</title>
|
||||
<tgroup cols="2">
|
||||
<colspec colname="c1"/>
|
||||
<colspec colname="c2"/>
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry><constant>MEDIA_LNK_FL_ENABLED</constant></entry>
|
||||
<entry>The link is enabled and can be used to transfer media data.
|
||||
When two or more links target a sink pad, only one of them can be
|
||||
enabled at a time.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_LNK_FL_IMMUTABLE</constant></entry>
|
||||
<entry>The link enabled state can't be modified at runtime. An
|
||||
immutable link is always enabled.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_LNK_FL_DYNAMIC</constant></entry>
|
||||
<entry>The link enabled state can be modified during streaming. This
|
||||
flag is set by drivers and is read-only for applications.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>MEDIA_LNK_FL_LINK_TYPE</constant></entry>
|
||||
<entry><para>This is a bitmask that defines the type of the link.
|
||||
Currently, two types of links are supported:</para>
|
||||
<para><constant>MEDIA_LNK_FL_DATA_LINK</constant>
|
||||
if the link is between two pads</para>
|
||||
<para><constant>MEDIA_LNK_FL_INTERFACE_LINK</constant>
|
||||
if the link is between an interface and an entity</para></entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
</section>
|
|
@ -162,12 +162,15 @@
|
|||
<sect1 id="Basic_defines">
|
||||
<title>Basic defines</title>
|
||||
<para>
|
||||
At least you have to provide a mtd structure and
|
||||
a storage for the ioremap'ed chip address.
|
||||
You can allocate the mtd structure using kmalloc
|
||||
or you can allocate it statically.
|
||||
In case of static allocation you have to allocate
|
||||
a nand_chip structure too.
|
||||
At least you have to provide a nand_chip structure
|
||||
and a storage for the ioremap'ed chip address.
|
||||
You can allocate the nand_chip structure using
|
||||
kmalloc or you can allocate it statically.
|
||||
The NAND chip structure embeds an mtd structure
|
||||
which will be registered to the MTD subsystem.
|
||||
You can extract a pointer to the mtd structure
|
||||
from a nand_chip pointer using the nand_to_mtd()
|
||||
helper.
|
||||
</para>
|
||||
<para>
|
||||
Kmalloc based example
|
||||
|
@ -180,7 +183,6 @@ static void __iomem *baseaddr;
|
|||
Static example
|
||||
</para>
|
||||
<programlisting>
|
||||
static struct mtd_info board_mtd;
|
||||
static struct nand_chip board_chip;
|
||||
static void __iomem *baseaddr;
|
||||
</programlisting>
|
||||
|
@ -235,7 +237,7 @@ static void board_hwcontrol(struct mtd_info *mtd, int cmd)
|
|||
<programlisting>
|
||||
static void board_hwcontrol(struct mtd_info *mtd, int cmd)
|
||||
{
|
||||
struct nand_chip *this = (struct nand_chip *) mtd->priv;
|
||||
struct nand_chip *this = mtd_to_nand(mtd);
|
||||
switch(cmd){
|
||||
case NAND_CTL_SETCLE: this->IO_ADDR_W |= CLE_ADRR_BIT; break;
|
||||
case NAND_CTL_CLRCLE: this->IO_ADDR_W &= ~CLE_ADRR_BIT; break;
|
||||
|
@ -274,13 +276,15 @@ static int __init board_init (void)
|
|||
int err = 0;
|
||||
|
||||
/* Allocate memory for MTD device structure and private data */
|
||||
board_mtd = kzalloc(sizeof(struct mtd_info) + sizeof(struct nand_chip), GFP_KERNEL);
|
||||
if (!board_mtd) {
|
||||
this = kzalloc(sizeof(struct nand_chip), GFP_KERNEL);
|
||||
if (!this) {
|
||||
printk ("Unable to allocate NAND MTD device structure.\n");
|
||||
err = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
|
||||
board_mtd = nand_to_mtd(this);
|
||||
|
||||
/* map physical address */
|
||||
baseaddr = ioremap(CHIP_PHYSICAL_ADDRESS, 1024);
|
||||
if (!baseaddr) {
|
||||
|
@ -289,11 +293,6 @@ static int __init board_init (void)
|
|||
goto out_mtd;
|
||||
}
|
||||
|
||||
/* Get pointer to private data */
|
||||
this = (struct nand_chip *) ();
|
||||
/* Link the private data with the MTD structure */
|
||||
board_mtd->priv = this;
|
||||
|
||||
/* Set address of NAND IO lines */
|
||||
this->IO_ADDR_R = baseaddr;
|
||||
this->IO_ADDR_W = baseaddr;
|
||||
|
@ -317,7 +316,7 @@ static int __init board_init (void)
|
|||
out_ior:
|
||||
iounmap(baseaddr);
|
||||
out_mtd:
|
||||
kfree (board_mtd);
|
||||
kfree (this);
|
||||
out:
|
||||
return err;
|
||||
}
|
||||
|
@ -343,7 +342,7 @@ static void __exit board_cleanup (void)
|
|||
iounmap(baseaddr);
|
||||
|
||||
/* Free the MTD device structure */
|
||||
kfree (board_mtd);
|
||||
kfree (mtd_to_nand(board_mtd));
|
||||
}
|
||||
module_exit(board_cleanup);
|
||||
#endif
|
||||
|
@ -399,7 +398,7 @@ static void board_select_chip (struct mtd_info *mtd, int chip)
|
|||
<programlisting>
|
||||
static void board_select_chip (struct mtd_info *mtd, int chip)
|
||||
{
|
||||
struct nand_chip *this = (struct nand_chip *) mtd->priv;
|
||||
struct nand_chip *this = mtd_to_nand(mtd);
|
||||
|
||||
/* Deselect all chips */
|
||||
this->IO_ADDR_R &= ~BOARD_NAND_ADDR_MASK;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
subdir-y := accounting auxdisplay blackfin connector \
|
||||
filesystems filesystems ia64 laptops mic misc-devices \
|
||||
networking pcmcia prctl ptp spi timers vDSO video4linux \
|
||||
networking pcmcia prctl ptp timers vDSO video4linux \
|
||||
watchdog
|
||||
|
|
|
@ -63,7 +63,7 @@ Required properties:
|
|||
- compatible : should be "arm,juno-sram-ns" for Non-secure SRAM on Juno
|
||||
|
||||
The rest of the properties should follow the generic mmio-sram description
|
||||
found in ../../misc/sysram.txt
|
||||
found in ../../sram/sram.txt
|
||||
|
||||
Each sub-node represents the reserved area for SCPI.
|
||||
|
||||
|
|
|
@ -157,6 +157,7 @@ nodes to be present and contain the properties described below.
|
|||
"arm,cortex-a17"
|
||||
"arm,cortex-a53"
|
||||
"arm,cortex-a57"
|
||||
"arm,cortex-a72"
|
||||
"arm,cortex-m0"
|
||||
"arm,cortex-m0+"
|
||||
"arm,cortex-m1"
|
||||
|
|
|
@ -187,6 +187,22 @@ Example:
|
|||
reg = <0xb0000000 0x10000>;
|
||||
};
|
||||
|
||||
Hisilicon HiP05 PERISUB system controller
|
||||
|
||||
Required properties:
|
||||
- compatible : "hisilicon,hip05-perisubc", "syscon";
|
||||
- reg : Register address and size
|
||||
|
||||
The HiP05 PERISUB system controller is shared by peripheral controllers in
|
||||
HiP05 Soc to implement some basic configurations. The peripheral
|
||||
controllers include mdio, ddr, iic, uart, timer and so on.
|
||||
|
||||
Example:
|
||||
/* for HiP05 perisub-ctrl-c system */
|
||||
peri_c_subctrl: syscon@80000000 {
|
||||
compatible = "hisilicon,hip05-perisubc", "syscon";
|
||||
reg = <0x0 0x80000000 0x0 0x10000>;
|
||||
};
|
||||
-----------------------------------------------------------------------
|
||||
Hisilicon CPU controller
|
||||
|
||||
|
|
|
@ -23,17 +23,20 @@ Main node required properties:
|
|||
|
||||
- compatible : should contain at least one of:
|
||||
|
||||
* "arm,psci" : for implementations complying to PSCI versions prior to
|
||||
0.2. For these cases function IDs must be provided.
|
||||
* "arm,psci" : For implementations complying to PSCI versions prior
|
||||
to 0.2.
|
||||
For these cases function IDs must be provided.
|
||||
|
||||
* "arm,psci-0.2" : for implementations complying to PSCI 0.2. Function
|
||||
IDs are not required and should be ignored by an OS with PSCI 0.2
|
||||
support, but are permitted to be present for compatibility with
|
||||
existing software when "arm,psci" is later in the compatible list.
|
||||
* "arm,psci-0.2" : For implementations complying to PSCI 0.2.
|
||||
Function IDs are not required and should be ignored by
|
||||
an OS with PSCI 0.2 support, but are permitted to be
|
||||
present for compatibility with existing software when
|
||||
"arm,psci" is later in the compatible list.
|
||||
|
||||
* "arm,psci-1.0" : for implementations complying to PSCI 1.0. PSCI 1.0 is
|
||||
backward compatible with PSCI 0.2 with minor specification updates,
|
||||
as defined in the PSCI specification[2].
|
||||
* "arm,psci-1.0" : For implementations complying to PSCI 1.0.
|
||||
PSCI 1.0 is backward compatible with PSCI 0.2 with
|
||||
minor specification updates, as defined in the PSCI
|
||||
specification[2].
|
||||
|
||||
- method : The method of calling the PSCI firmware. Permitted
|
||||
values are:
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
* ARM Secure world bindings
|
||||
|
||||
ARM CPUs with TrustZone support have two distinct address spaces,
|
||||
"Normal" and "Secure". Most devicetree consumers (including the Linux
|
||||
kernel) are not TrustZone aware and run entirely in either the Normal
|
||||
world or the Secure world. However some devicetree consumers are
|
||||
TrustZone aware and need to be able to determine whether devices are
|
||||
visible only in the Secure address space, only in the Normal address
|
||||
space, or visible in both. (One example of that situation would be a
|
||||
virtual machine which boots Secure firmware and wants to tell the
|
||||
firmware about the layout of the machine via devicetree.)
|
||||
|
||||
The general principle of the naming scheme for Secure world bindings
|
||||
is that any property that needs a different value in the Secure world
|
||||
can be supported by prefixing the property name with "secure-". So for
|
||||
instance "secure-foo" would override "foo". For property names with
|
||||
a vendor prefix, the Secure variant of "vendor,foo" would be
|
||||
"vendor,secure-foo". If there is no "secure-" property then the Secure
|
||||
world value is the same as specified for the Normal world by the
|
||||
non-prefixed property. However, only the properties listed below may
|
||||
validly have "secure-" versions; this list will be enlarged on a
|
||||
case-by-case basis.
|
||||
|
||||
Defining the bindings in this way means that a device tree which has
|
||||
been annotated to indicate the presence of Secure-only devices can
|
||||
still be processed unmodified by existing Non-secure software (and in
|
||||
particular by the kernel).
|
||||
|
||||
Note that it is still valid for bindings intended for purely Secure
|
||||
world consumers (like kernels that run entirely in Secure) to simply
|
||||
describe the view of Secure world using the standard bindings. These
|
||||
secure- bindings only need to be used where both the Secure and Normal
|
||||
world views need to be described in a single device tree.
|
||||
|
||||
Valid Secure world properties:
|
||||
|
||||
- secure-status : specifies whether the device is present and usable
|
||||
in the secure world. The combination of this with "status" allows
|
||||
the various possible combinations of device visibility to be
|
||||
specified. If "secure-status" is not specified it defaults to the
|
||||
same value as "status"; if "status" is not specified either then
|
||||
both default to "okay". This means the following combinations are
|
||||
possible:
|
||||
|
||||
/* Neither specified: default to visible in both S and NS */
|
||||
secure-status = "okay"; /* visible in both */
|
||||
status = "okay"; /* visible in both */
|
||||
status = "okay"; secure-status = "okay"; /* visible in both */
|
||||
secure-status = "disabled"; /* NS-only */
|
||||
status = "okay"; secure-status = "disabled"; /* NS-only */
|
||||
status = "disabled"; secure-status = "okay"; /* S-only */
|
||||
status = "disabled"; /* disabled in both */
|
||||
status = "disabled"; secure-status = "disabled"; /* disabled in both */
|
|
@ -0,0 +1,49 @@
|
|||
Binding for Samsung S2M and S5M family clock generator block
|
||||
============================================================
|
||||
|
||||
This is a part of device tree bindings for S2M and S5M family multi-function
|
||||
devices.
|
||||
More information can be found in bindings/mfd/sec-core.txt file.
|
||||
|
||||
The S2MPS11/13/15 and S5M8767 provide three(AP/CP/BT) buffered 32.768 kHz
|
||||
outputs. The S2MPS14 provides two (AP/BT) buffered 32.768 KHz outputs.
|
||||
|
||||
To register these as clocks with common clock framework instantiate under
|
||||
main device node a sub-node named "clocks".
|
||||
|
||||
It uses the common clock binding documented in:
|
||||
- Documentation/devicetree/bindings/clock/clock-bindings.txt
|
||||
|
||||
|
||||
Required properties of the "clocks" sub-node:
|
||||
- #clock-cells: should be 1.
|
||||
- compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps13-clk",
|
||||
"samsung,s2mps14-clk", "samsung,s5m8767-clk"
|
||||
The S2MPS15 uses the same compatible as S2MPS13, as both provides similar
|
||||
clocks.
|
||||
|
||||
|
||||
Each clock is assigned an identifier and client nodes use this identifier
|
||||
to specify the clock which they consume.
|
||||
Clock ID Devices
|
||||
----------------------------------------------------------
|
||||
32KhzAP 0 S2MPS11/13/14/15, S5M8767
|
||||
32KhzCP 1 S2MPS11/13/15, S5M8767
|
||||
32KhzBT 2 S2MPS11/13/14/15, S5M8767
|
||||
|
||||
Include dt-bindings/clock/samsung,s2mps11.h file to use preprocessor defines
|
||||
in device tree sources.
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
s2mps11_pmic@66 {
|
||||
compatible = "samsung,s2mps11-pmic";
|
||||
reg = <0x66>;
|
||||
|
||||
s2m_osc: clocks {
|
||||
compatible = "samsung,s2mps11-clk";
|
||||
#clock-cells = <1>;
|
||||
clock-output-names = "xx", "yy", "zz";
|
||||
};
|
||||
};
|
|
@ -12,7 +12,7 @@ must be present contiguously. Generic DT driver will check only node 'x' for
|
|||
cpu:x.
|
||||
|
||||
Required properties:
|
||||
- operating-points: Refer to Documentation/devicetree/bindings/power/opp.txt
|
||||
- operating-points: Refer to Documentation/devicetree/bindings/opp/opp.txt
|
||||
for details
|
||||
|
||||
Optional properties:
|
||||
|
|
|
@ -11,7 +11,7 @@ Required properties:
|
|||
- None
|
||||
|
||||
Optional properties:
|
||||
- operating-points: Refer to Documentation/devicetree/bindings/power/opp.txt for
|
||||
- operating-points: Refer to Documentation/devicetree/bindings/opp/opp.txt for
|
||||
details. OPPs *must* be supplied either via DT, i.e. this property, or
|
||||
populated at runtime.
|
||||
- clock-latency: Specify the possible maximum transition latency for clock,
|
||||
|
|
|
@ -5,6 +5,10 @@ Required properties;
|
|||
|
||||
- reg: I2C address
|
||||
|
||||
Required node:
|
||||
- port: Input port node with endpoint definition, as described
|
||||
in Documentation/devicetree/bindings/graph.txt
|
||||
|
||||
Optional properties:
|
||||
- interrupts: interrupt number and trigger type
|
||||
default: polling
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
* Renesas USB DMA Controller Device Tree bindings
|
||||
|
||||
Required Properties:
|
||||
- compatible: must contain "renesas,usb-dmac"
|
||||
-compatible: "renesas,<soctype>-usb-dmac", "renesas,usb-dmac" as fallback.
|
||||
Examples with soctypes are:
|
||||
- "renesas,r8a7790-usb-dmac" (R-Car H2)
|
||||
- "renesas,r8a7791-usb-dmac" (R-Car M2-W)
|
||||
- "renesas,r8a7793-usb-dmac" (R-Car M2-N)
|
||||
- "renesas,r8a7794-usb-dmac" (R-Car E2)
|
||||
- "renesas,r8a7795-usb-dmac" (R-Car H3)
|
||||
- reg: base address and length of the registers block for the DMAC
|
||||
- interrupts: interrupt specifiers for the DMAC, one for each entry in
|
||||
interrupt-names.
|
||||
|
@ -15,7 +21,7 @@ Required Properties:
|
|||
Example: R8A7790 (R-Car H2) USB-DMACs
|
||||
|
||||
usb_dmac0: dma-controller@e65a0000 {
|
||||
compatible = "renesas,usb-dmac";
|
||||
compatible = "renesas,r8a7790-usb-dmac", "renesas,usb-dmac";
|
||||
reg = <0 0xe65a0000 0 0x100>;
|
||||
interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH
|
||||
0 109 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
|
|
@ -0,0 +1,82 @@
|
|||
* STMicroelectronics STM32 DMA controller
|
||||
|
||||
The STM32 DMA is a general-purpose direct memory access controller capable of
|
||||
supporting 8 independent DMA channels. Each channel can have up to 8 requests.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "st,stm32-dma"
|
||||
- reg: Should contain DMA registers location and length. This should include
|
||||
all of the per-channel registers.
|
||||
- interrupts: Should contain all of the per-channel DMA interrupts in
|
||||
ascending order with respect to the DMA channel index.
|
||||
- clocks: Should contain the input clock of the DMA instance.
|
||||
- #dma-cells : Must be <4>. See DMA client paragraph for more details.
|
||||
|
||||
Optional properties:
|
||||
- resets: Reference to a reset controller asserting the DMA controller
|
||||
- st,mem2mem: boolean; if defined, it indicates that the controller supports
|
||||
memory-to-memory transfer
|
||||
|
||||
Example:
|
||||
|
||||
dma2: dma-controller@40026400 {
|
||||
compatible = "st,stm32-dma";
|
||||
reg = <0x40026400 0x400>;
|
||||
interrupts = <56>,
|
||||
<57>,
|
||||
<58>,
|
||||
<59>,
|
||||
<60>,
|
||||
<68>,
|
||||
<69>,
|
||||
<70>;
|
||||
clocks = <&clk_hclk>;
|
||||
#dma-cells = <4>;
|
||||
st,mem2mem;
|
||||
resets = <&rcc 150>;
|
||||
};
|
||||
|
||||
* DMA client
|
||||
|
||||
DMA clients connected to the STM32 DMA controller must use the format
|
||||
described in the dma.txt file, using a five-cell specifier for each
|
||||
channel: a phandle plus four integer cells.
|
||||
The four cells in order are:
|
||||
|
||||
1. The channel id
|
||||
2. The request line number
|
||||
3. A 32bit mask specifying the DMA channel configuration which are device
|
||||
dependent:
|
||||
-bit 9: Peripheral Increment Address
|
||||
0x0: no address increment between transfers
|
||||
0x1: increment address between transfers
|
||||
-bit 10: Memory Increment Address
|
||||
0x0: no address increment between transfers
|
||||
0x1: increment address between transfers
|
||||
-bit 15: Peripheral Increment Offset Size
|
||||
0x0: offset size is linked to the peripheral bus width
|
||||
0x1: offset size is fixed to 4 (32-bit alignment)
|
||||
-bit 16-17: Priority level
|
||||
0x0: low
|
||||
0x1: medium
|
||||
0x2: high
|
||||
0x3: very high
|
||||
5. A 32bit mask specifying the DMA FIFO threshold configuration which are device
|
||||
dependent:
|
||||
-bit 0-1: Fifo threshold
|
||||
0x0: 1/4 full FIFO
|
||||
0x1: 1/2 full FIFO
|
||||
0x2: 3/4 full FIFO
|
||||
0x3: full FIFO
|
||||
|
||||
Example:
|
||||
|
||||
usart1: serial@40011000 {
|
||||
compatible = "st,stm32-usart", "st,stm32-uart";
|
||||
reg = <0x40011000 0x400>;
|
||||
interrupts = <37>;
|
||||
clocks = <&clk_pclk2>;
|
||||
dmas = <&dma2 2 4 0x10400 0x3>,
|
||||
<&dma2 7 5 0x10200 0x3>;
|
||||
dma-names = "rx", "tx";
|
||||
};
|
|
@ -14,6 +14,10 @@ The DMA controller node need to have the following poroperties:
|
|||
|
||||
Optional properties:
|
||||
- ti,dma-safe-map: Safe routing value for unused request lines
|
||||
- ti,reserved-dma-request-ranges: DMA request ranges which should not be used
|
||||
when mapping xbar input to DMA request, they are either
|
||||
allocated to be used by for example the DSP or they are used as
|
||||
memcpy channels in eDMA.
|
||||
|
||||
Notes:
|
||||
When requesting channel via ti,dra7-dma-crossbar, the DMA clinet must request
|
||||
|
@ -46,6 +50,8 @@ sdma_xbar: dma-router@4a002b78 {
|
|||
#dma-cells = <1>;
|
||||
dma-requests = <205>;
|
||||
ti,dma-safe-map = <0>;
|
||||
/* Protect the sDMA request ranges: 10-14 and 100-126 */
|
||||
ti,reserved-dma-request-ranges = <10 5>, <100 27>;
|
||||
dma-masters = <&sdma>;
|
||||
};
|
||||
|
||||
|
|
|
@ -2,11 +2,22 @@ EEPROMs (I2C)
|
|||
|
||||
Required properties:
|
||||
|
||||
- compatible : should be "<manufacturer>,<type>"
|
||||
If there is no specific driver for <manufacturer>, a generic
|
||||
driver based on <type> is selected. Possible types are:
|
||||
24c00, 24c01, 24c02, 24c04, 24c08, 24c16, 24c32, 24c64,
|
||||
24c128, 24c256, 24c512, 24c1024, spd
|
||||
- compatible : should be "<manufacturer>,<type>", like these:
|
||||
|
||||
"atmel,24c00", "atmel,24c01", "atmel,24c02", "atmel,24c04",
|
||||
"atmel,24c08", "atmel,24c16", "atmel,24c32", "atmel,24c64",
|
||||
"atmel,24c128", "atmel,24c256", "atmel,24c512", "atmel,24c1024"
|
||||
|
||||
"catalyst,24c32"
|
||||
|
||||
"ramtron,24c64"
|
||||
|
||||
"renesas,r1ex24002"
|
||||
|
||||
If there is no specific driver for <manufacturer>, a generic
|
||||
driver based on <type> is selected. Possible types are:
|
||||
"24c00", "24c01", "24c02", "24c04", "24c08", "24c16", "24c32", "24c64",
|
||||
"24c128", "24c256", "24c512", "24c1024", "spd"
|
||||
|
||||
- reg : the I2C address of the EEPROM
|
||||
|
||||
|
|
|
@ -13,3 +13,63 @@ Optional properties:
|
|||
ARIZONA_ACCDET_MODE_HPR or 2 - Headphone detect mode is set to HPDETR
|
||||
If this node is not mentioned or if the value is unknown, then
|
||||
headphone detection mode is set to HPDETL.
|
||||
|
||||
- wlf,use-jd2 : Use the additional JD input along with JD1 for dual pin jack
|
||||
detection.
|
||||
- wlf,use-jd2-nopull : Internal pull on JD2 is disabled when used for
|
||||
jack detection.
|
||||
- wlf,jd-invert : Invert the polarity of the jack detection switch
|
||||
|
||||
- wlf,micd-software-compare : Use a software comparison to determine mic
|
||||
presence
|
||||
- wlf,micd-detect-debounce : Additional software microphone detection
|
||||
debounce specified in milliseconds.
|
||||
- wlf,micd-pol-gpio : GPIO specifier for the GPIO controlling the headset
|
||||
polarity if one exists.
|
||||
- wlf,micd-bias-start-time : Time allowed for MICBIAS to startup prior to
|
||||
performing microphone detection, specified as per the ARIZONA_MICD_TIME_XXX
|
||||
defines.
|
||||
- wlf,micd-rate : Delay between successive microphone detection measurements,
|
||||
specified as per the ARIZONA_MICD_TIME_XXX defines.
|
||||
- wlf,micd-dbtime : Microphone detection hardware debounces specified as the
|
||||
number of measurements to take, valid values being 2 and 4.
|
||||
- wlf,micd-timeout-ms : Timeout for microphone detection, specified in
|
||||
milliseconds.
|
||||
- wlf,micd-force-micbias : Force MICBIAS continuously on during microphone
|
||||
detection.
|
||||
- wlf,micd-configs : Headset polarity configurations (generally used for
|
||||
detection of CTIA / OMTP headsets), the field can be of variable length
|
||||
but should always be a multiple of 3 cells long, each three cell group
|
||||
represents one polarity configuration.
|
||||
The first cell defines the accessory detection pin, zero will use MICDET1
|
||||
and all other values will use MICDET2.
|
||||
The second cell represents the MICBIAS to be used.
|
||||
The third cell represents the value of the micd-pol-gpio pin.
|
||||
|
||||
- wlf,gpsw : Settings for the general purpose switch
|
||||
|
||||
Example:
|
||||
|
||||
codec: wm8280@0 {
|
||||
compatible = "wlf,wm8280";
|
||||
reg = <0>;
|
||||
...
|
||||
|
||||
wlf,use-jd2;
|
||||
wlf,use-jd2-nopull;
|
||||
wlf,jd-invert;
|
||||
|
||||
wlf,micd-software-compare;
|
||||
wlf,micd-detect-debounce = <0>;
|
||||
wlf,micd-pol-gpio = <&codec 2 0>;
|
||||
wlf,micd-rate = <ARIZONA_MICD_TIME_8MS>;
|
||||
wlf,micd-dbtime = <4>;
|
||||
wlf,micd-timeout-ms = <100>;
|
||||
wlf,micd-force-micbias;
|
||||
wlf,micd-configs = <
|
||||
0 1 0 /* MICDET1 MICBIAS1 GPIO=low */
|
||||
1 2 1 /* MICDET2 MICBIAS2 GPIO=high */
|
||||
>;
|
||||
|
||||
wlf,gpsw = <0>;
|
||||
};
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
Maxim Integrated MAX3355 USB OTG chip
|
||||
-------------------------------------
|
||||
|
||||
MAX3355 integrates a charge pump and comparators to enable a system with an
|
||||
integrated USB OTG dual-role transceiver to function as a USB OTG dual-role
|
||||
device.
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "maxim,max3355";
|
||||
- maxim,shdn-gpios: should contain a phandle and GPIO specifier for the GPIO pin
|
||||
connected to the MAX3355's SHDN# pin;
|
||||
- id-gpios: should contain a phandle and GPIO specifier for the GPIO pin
|
||||
connected to the MAX3355's ID_OUT pin.
|
||||
|
||||
Example:
|
||||
|
||||
usb-otg {
|
||||
compatible = "maxim,max3355";
|
||||
maxim,shdn-gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
|
||||
id-gpios = <&gpio5 31 GPIO_ACTIVE_HIGH>;
|
||||
};
|
|
@ -24,7 +24,7 @@ controller.
|
|||
- #interrupt-cells : Specifies the number of cells needed to encode an
|
||||
interrupt. Shall be set to 2. The first cell defines the interrupt number,
|
||||
the second encodes the triger flags encoded as described in
|
||||
Documentation/devicetree/bindings/interrupts.txt
|
||||
Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
|
||||
- interrupt-parent : The parent interrupt controller.
|
||||
- interrupts : The interrupt to the parent controller raised when GPIOs
|
||||
generate the interrupts.
|
||||
|
|
|
@ -3,7 +3,7 @@ I2C for Atmel platforms
|
|||
Required properties :
|
||||
- compatible : Must be "atmel,at91rm9200-i2c", "atmel,at91sam9261-i2c",
|
||||
"atmel,at91sam9260-i2c", "atmel,at91sam9g20-i2c", "atmel,at91sam9g10-i2c",
|
||||
"atmel,at91sam9x5-i2c" or "atmel,sama5d2-i2c"
|
||||
"atmel,at91sam9x5-i2c", "atmel,sama5d4-i2c" or "atmel,sama5d2-i2c"
|
||||
- reg: physical base address of the controller and length of memory mapped
|
||||
region.
|
||||
- interrupts: interrupt number to the cpu.
|
||||
|
@ -17,6 +17,8 @@ Optional properties:
|
|||
- dma-names: should contain "tx" and "rx".
|
||||
- atmel,fifo-size: maximum number of data the RX and TX FIFOs can store for FIFO
|
||||
capable I2C controllers.
|
||||
- i2c-sda-hold-time-ns: TWD hold time, only available for "atmel,sama5d4-i2c"
|
||||
and "atmel,sama5d2-i2c".
|
||||
- Child nodes conforming to i2c bus binding
|
||||
|
||||
Examples :
|
||||
|
@ -52,6 +54,7 @@ i2c0: i2c@f8034600 {
|
|||
#size-cells = <0>;
|
||||
clocks = <&flx0>;
|
||||
atmel,fifo-size = <16>;
|
||||
i2c-sda-hold-time-ns = <336>;
|
||||
|
||||
wm8731: wm8731@1a {
|
||||
compatible = "wm8731";
|
||||
|
|
|
@ -2,7 +2,7 @@ Broadcom stb bsc iic master controller
|
|||
|
||||
Required properties:
|
||||
|
||||
- compatible: should be "brcm,brcmstb-i2c"
|
||||
- compatible: should be "brcm,brcmstb-i2c" or "brcm,brcmper-i2c"
|
||||
- clock-frequency: 32-bit decimal value of iic master clock freqency in Hz
|
||||
valid values are 375000, 390000, 187500, 200000
|
||||
93750, 97500, 46875 and 50000
|
||||
|
|
|
@ -20,6 +20,10 @@ Optional properties:
|
|||
propoerty indicates the default frequency 100 kHz.
|
||||
- clocks: clock specifier.
|
||||
|
||||
- i2c-scl-falling-time-ns: see i2c.txt
|
||||
- i2c-scl-internal-delay-ns: see i2c.txt
|
||||
- i2c-scl-rising-time-ns: see i2c.txt
|
||||
|
||||
Examples :
|
||||
|
||||
i2c0: i2c@e6508000 {
|
||||
|
|
|
@ -29,12 +29,38 @@ Optional properties
|
|||
These properties may not be supported by all drivers. However, if a driver
|
||||
wants to support one of the below features, it should adapt the bindings below.
|
||||
|
||||
- clock-frequency - frequency of bus clock in Hz.
|
||||
- wakeup-source - device can be used as a wakeup source.
|
||||
- clock-frequency
|
||||
frequency of bus clock in Hz.
|
||||
|
||||
- interrupts - interrupts used by the device.
|
||||
- interrupt-names - "irq" and "wakeup" names are recognized by I2C core,
|
||||
other names are left to individual drivers.
|
||||
- i2c-scl-falling-time-ns
|
||||
Number of nanoseconds the SCL signal takes to fall; t(f) in the I2C
|
||||
specification.
|
||||
|
||||
- i2c-scl-internal-delay-ns
|
||||
Number of nanoseconds the IP core additionally needs to setup SCL.
|
||||
|
||||
- i2c-scl-rising-time-ns
|
||||
Number of nanoseconds the SCL signal takes to rise; t(r) in the I2C
|
||||
specification.
|
||||
|
||||
- i2c-sda-falling-time-ns
|
||||
Number of nanoseconds the SDA signal takes to fall; t(f) in the I2C
|
||||
specification.
|
||||
|
||||
- interrupts
|
||||
interrupts used by the device.
|
||||
|
||||
- interrupt-names
|
||||
"irq" and "wakeup" names are recognized by I2C core, other names are
|
||||
left to individual drivers.
|
||||
|
||||
- multi-master
|
||||
states that there is another master active on this bus. The OS can use
|
||||
this information to adapt power management to keep the arbitration awake
|
||||
all the time, for example.
|
||||
|
||||
- wakeup-source
|
||||
device can be used as a wakeup source.
|
||||
|
||||
Binding may contain optional "interrupts" property, describing interrupts
|
||||
used by the device. I2C core will assign "irq" interrupt (or the very first
|
||||
|
|
|
@ -20,22 +20,11 @@ adi,adt7476 +/-1C TDM Extended Temp Range I.C
|
|||
adi,adt7490 +/-1C TDM Extended Temp Range I.C
|
||||
adi,adxl345 Three-Axis Digital Accelerometer
|
||||
adi,adxl346 Three-Axis Digital Accelerometer (backward-compatibility value "adi,adxl345" must be listed too)
|
||||
ams,iaq-core AMS iAQ-Core VOC Sensor
|
||||
at,24c08 i2c serial eeprom (24cxx)
|
||||
atmel,24c00 i2c serial eeprom (24cxx)
|
||||
atmel,24c01 i2c serial eeprom (24cxx)
|
||||
atmel,24c02 i2c serial eeprom (24cxx)
|
||||
atmel,24c04 i2c serial eeprom (24cxx)
|
||||
atmel,24c16 i2c serial eeprom (24cxx)
|
||||
atmel,24c32 i2c serial eeprom (24cxx)
|
||||
atmel,24c64 i2c serial eeprom (24cxx)
|
||||
atmel,24c128 i2c serial eeprom (24cxx)
|
||||
atmel,24c256 i2c serial eeprom (24cxx)
|
||||
atmel,24c512 i2c serial eeprom (24cxx)
|
||||
atmel,24c1024 i2c serial eeprom (24cxx)
|
||||
atmel,at97sc3204t i2c trusted platform module (TPM)
|
||||
capella,cm32181 CM32181: Ambient Light Sensor
|
||||
capella,cm3232 CM3232: Ambient Light Sensor
|
||||
catalyst,24c32 i2c serial eeprom
|
||||
cirrus,cs42l51 Cirrus Logic CS42L51 audio codec
|
||||
dallas,ds1307 64 x 8, Serial, I2C Real-Time Clock
|
||||
dallas,ds1338 I2C RTC with 56-Byte NV RAM
|
||||
|
@ -49,11 +38,13 @@ dallas,ds4510 CPU Supervisor with Nonvolatile Memory and Programmable I/O
|
|||
dallas,ds75 Digital Thermometer and Thermostat
|
||||
dlg,da9053 DA9053: flexible system level PMIC with multicore support
|
||||
dlg,da9063 DA9063: system PMIC for quad-core application processors
|
||||
epson,rx8010 I2C-BUS INTERFACE REAL TIME CLOCK MODULE
|
||||
epson,rx8025 High-Stability. I2C-Bus INTERFACE REAL TIME CLOCK MODULE
|
||||
epson,rx8581 I2C-BUS INTERFACE REAL TIME CLOCK MODULE
|
||||
fsl,mag3110 MAG3110: Xtrinsic High Accuracy, 3D Magnetometer
|
||||
fsl,mc13892 MC13892: Power Management Integrated Circuit (PMIC) for i.MX35/51
|
||||
fsl,mma8450 MMA8450Q: Xtrinsic Low-power, 3-axis Xtrinsic Accelerometer
|
||||
fsl,mpl3115 MPL3115: Absolute Digital Pressure Sensor
|
||||
fsl,mpr121 MPR121: Proximity Capacitive Touch Sensor Controller
|
||||
fsl,sgtl5000 SGTL5000: Ultra Low-Power Audio Codec
|
||||
gmt,g751 G751: Digital Temperature Sensor and Thermal Watchdog with Two-Wire Interface
|
||||
|
@ -80,7 +71,6 @@ ovti,ov5642 OV5642: Color CMOS QSXGA (5-megapixel) Image Sensor with OmniBSI an
|
|||
pericom,pt7c4338 Real-time Clock Module
|
||||
plx,pex8648 48-Lane, 12-Port PCI Express Gen 2 (5.0 GT/s) Switch
|
||||
pulsedlight,lidar-lite-v2 Pulsedlight LIDAR range-finding sensor
|
||||
ramtron,24c64 i2c serial eeprom (24cxx)
|
||||
ricoh,r2025sd I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
|
||||
ricoh,r2221tl I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
|
||||
ricoh,rs5c372a I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
|
||||
|
|
|
@ -7,13 +7,18 @@ Required properties:
|
|||
* "fsl,mma8453"
|
||||
* "fsl,mma8652"
|
||||
* "fsl,mma8653"
|
||||
|
||||
- reg: the I2C address of the chip
|
||||
|
||||
Optional properties:
|
||||
|
||||
- interrupt-parent: should be the phandle for the interrupt controller
|
||||
|
||||
- interrupts: interrupt mapping for GPIO IRQ
|
||||
|
||||
- interrupt-names: should contain "INT1" and/or "INT2", the accelerometer's
|
||||
interrupt line in use.
|
||||
|
||||
Example:
|
||||
|
||||
mma8453fc@1d {
|
||||
|
@ -21,4 +26,5 @@ Example:
|
|||
reg = <0x1d>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <5 0>;
|
||||
interrupt-names = "INT2";
|
||||
};
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
Freescale imx7d ADC bindings
|
||||
|
||||
The devicetree bindings are for the ADC driver written for
|
||||
imx7d SoC.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "fsl,imx7d-adc"
|
||||
- reg: Offset and length of the register set for the ADC device
|
||||
- interrupts: The interrupt number for the ADC device
|
||||
- clocks: The root clock of the ADC controller
|
||||
- clock-names: Must contain "adc", matching entry in the clocks property
|
||||
- vref-supply: The regulator supply ADC reference voltage
|
||||
|
||||
Example:
|
||||
adc1: adc@30610000 {
|
||||
compatible = "fsl,imx7d-adc";
|
||||
reg = <0x30610000 0x10000>;
|
||||
interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks IMX7D_ADC_ROOT_CLK>;
|
||||
clock-names = "adc";
|
||||
vref-supply = <®_vcc_3v3_mcu>;
|
||||
};
|
|
@ -10,16 +10,28 @@ must be specified.
|
|||
Required properties:
|
||||
- compatible: Must be one of the following, depending on the
|
||||
model:
|
||||
"mcp3001"
|
||||
"mcp3002"
|
||||
"mcp3004"
|
||||
"mcp3008"
|
||||
"mcp3201"
|
||||
"mcp3202"
|
||||
"mcp3204"
|
||||
"mcp3208"
|
||||
"mcp3301"
|
||||
"mcp3001" (DEPRECATED)
|
||||
"mcp3002" (DEPRECATED)
|
||||
"mcp3004" (DEPRECATED)
|
||||
"mcp3008" (DEPRECATED)
|
||||
"mcp3201" (DEPRECATED)
|
||||
"mcp3202" (DEPRECATED)
|
||||
"mcp3204" (DEPRECATED)
|
||||
"mcp3208" (DEPRECATED)
|
||||
"mcp3301" (DEPRECATED)
|
||||
|
||||
"microchip,mcp3001"
|
||||
"microchip,mcp3002"
|
||||
"microchip,mcp3004"
|
||||
"microchip,mcp3008"
|
||||
"microchip,mcp3201"
|
||||
"microchip,mcp3202"
|
||||
"microchip,mcp3204"
|
||||
"microchip,mcp3208"
|
||||
"microchip,mcp3301"
|
||||
|
||||
NOTE: The use of the compatibles with no vendor prefix
|
||||
is deprecated and only listed because old DT use them.
|
||||
|
||||
Examples:
|
||||
spi_controller {
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
* Microchip mcp3422/3/4/6/7/8 chip family (ADC)
|
||||
* Microchip mcp3421/2/3/4/6/7/8 chip family (ADC)
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be
|
||||
"microchip,mcp3421" or
|
||||
"microchip,mcp3422" or
|
||||
"microchip,mcp3423" or
|
||||
"microchip,mcp3424" or
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
* Palmas general purpose ADC IP block devicetree bindings
|
||||
|
||||
Channels list:
|
||||
0 battery type
|
||||
1 battery temp NTC (optional current source)
|
||||
2 GP
|
||||
3 temp (with ext. diode, optional current source)
|
||||
4 GP
|
||||
5 GP
|
||||
6 VBAT_SENSE
|
||||
7 VCC_SENSE
|
||||
8 Backup Battery voltage
|
||||
9 external charger (VCHG)
|
||||
10 VBUS
|
||||
11 DC-DC current probe (how does this work?)
|
||||
12 internal die temp
|
||||
13 internal die temp
|
||||
14 USB ID pin voltage
|
||||
15 test network
|
||||
|
||||
Required properties:
|
||||
- compatible : Must be "ti,palmas-gpadc".
|
||||
- #io-channel-cells: Should be set to <1>.
|
||||
|
||||
Optional sub-nodes:
|
||||
ti,channel0-current-microamp: Channel 0 current in uA.
|
||||
Values are rounded to derive 0uA, 5uA, 15uA, 20uA.
|
||||
ti,channel3-current-microamp: Channel 3 current in uA.
|
||||
Values are rounded to derive 0uA, 10uA, 400uA, 800uA.
|
||||
ti,enable-extended-delay: Enable extended delay.
|
||||
|
||||
Example:
|
||||
|
||||
pmic {
|
||||
compatible = "ti,twl6035-pmic", "ti,palmas-pmic";
|
||||
...
|
||||
gpadc {
|
||||
compatible = "ti,palmas-gpadc";
|
||||
interrupts = <18 0
|
||||
16 0
|
||||
17 0>;
|
||||
#io-channel-cells = <1>;
|
||||
ti,channel0-current-microamp = <5>;
|
||||
ti,channel3-current-microamp = <10>;
|
||||
};
|
||||
};
|
||||
...
|
||||
};
|
|
@ -1,7 +1,7 @@
|
|||
* Texas Instruments' ADC128S052 and ADC122S021 ADC chip
|
||||
* Texas Instruments' ADC128S052, ADC122S021 and ADC124S021 ADC chip
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "ti,adc128s052" or "ti,adc122s021"
|
||||
- compatible: Should be "ti,adc128s052", "ti,adc122s021" or "ti,adc124s021"
|
||||
- reg: spi chip select number for the device
|
||||
- vref-supply: The regulator supply for ADC reference voltage
|
||||
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
* Texas Instruments' ADS8684 and ADS8688 ADC chip
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "ti,ads8684" or "ti,ads8688"
|
||||
- reg: spi chip select number for the device
|
||||
|
||||
Recommended properties:
|
||||
- spi-max-frequency: Definition as per
|
||||
Documentation/devicetree/bindings/spi/spi-bus.txt
|
||||
|
||||
Optional properties:
|
||||
- vref-supply: The regulator supply for ADC reference voltage
|
||||
|
||||
Example:
|
||||
adc@0 {
|
||||
compatible = "ti,ads8688";
|
||||
reg = <0>;
|
||||
vref-supply = <&vdd_supply>;
|
||||
spi-max-frequency = <1000000>;
|
||||
};
|
|
@ -0,0 +1,21 @@
|
|||
Maxim MAX30100 heart rate and pulse oximeter sensor
|
||||
|
||||
* https://datasheets.maximintegrated.com/en/ds/MAX30100.pdf
|
||||
|
||||
Required properties:
|
||||
- compatible: must be "maxim,max30100"
|
||||
- reg: the I2C address of the sensor
|
||||
- interrupt-parent: should be the phandle for the interrupt controller
|
||||
- interrupts: the sole interrupt generated by the device
|
||||
|
||||
Refer to interrupt-controller/interrupts.txt for generic
|
||||
interrupt client node bindings.
|
||||
|
||||
Example:
|
||||
|
||||
max30100@057 {
|
||||
compatible = "maxim,max30100";
|
||||
reg = <57>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <16 2>;
|
||||
};
|
|
@ -7,13 +7,24 @@ Required properties:
|
|||
Optional properties:
|
||||
- upisemi,glass-coef: glass attenuation factor - compensation factor of
|
||||
resolution 1000 for material transmittance.
|
||||
|
||||
- upisemi,dark-ths: array of 8 elements containing 16-bit thresholds (adc
|
||||
counts) corresponding to every scale.
|
||||
|
||||
- upisemi,upper-dark-gain: 8-bit dark gain compensation factor(4 int and 4
|
||||
fractional bits - Q4.4) applied when light > threshold
|
||||
|
||||
- upisemi,lower-dark-gain: 8-bit dark gain compensation factor(4 int and 4
|
||||
fractional bits - Q4.4) applied when light < threshold
|
||||
|
||||
- upisemi,continuous: This chip has two power modes: one-shot (chip takes one
|
||||
measurement and then shuts itself down) and continuous (
|
||||
chip takes continuous measurements). The one-shot mode is
|
||||
more power-friendly but the continuous mode may be more
|
||||
reliable. If this property is specified the continuous
|
||||
mode will be used instead of the default one-shot one for
|
||||
raw reads.
|
||||
|
||||
If the optional properties are not specified these factors will default to the
|
||||
values in the below example.
|
||||
The glass-coef defaults to no compensation for the covering material.
|
||||
|
|
|
@ -36,6 +36,7 @@ Accelerometers:
|
|||
- st,lsm303dlm-accel
|
||||
- st,lsm330-accel
|
||||
- st,lsm303agr-accel
|
||||
- st,lis2dh12-accel
|
||||
|
||||
Gyroscopes:
|
||||
- st,l3g4200d-gyro
|
||||
|
|
|
@ -13,6 +13,17 @@ Required properties:
|
|||
- interrupt-parent : Interrupt controller to which the chip is connected
|
||||
- interrupts : Interrupt to which the chip is connected
|
||||
|
||||
Optional properties:
|
||||
|
||||
- irq-gpios : GPIO pin used for IRQ. The driver uses the
|
||||
interrupt gpio pin as output to reset the device.
|
||||
- reset-gpios : GPIO pin used for reset
|
||||
|
||||
- touchscreen-inverted-x : X axis is inverted (boolean)
|
||||
- touchscreen-inverted-y : Y axis is inverted (boolean)
|
||||
- touchscreen-swapped-x-y : X and Y axis are swapped (boolean)
|
||||
(swapping is done after inverting the axis)
|
||||
|
||||
Example:
|
||||
|
||||
i2c@00000000 {
|
||||
|
@ -23,6 +34,9 @@ Example:
|
|||
reg = <0x5d>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <0 0>;
|
||||
|
||||
irq-gpios = <&gpio1 0 0>;
|
||||
reset-gpios = <&gpio1 1 0>;
|
||||
};
|
||||
|
||||
/* ... */
|
||||
|
|
|
@ -9,7 +9,9 @@ Required properties:
|
|||
- touchscreen-size-y: vertical resolution of touchscreen (in pixels)
|
||||
|
||||
Optional properties:
|
||||
- reset-gpio: GPIO connected to the RESET line of the chip
|
||||
- reset-gpios: GPIO connected to the RESET line of the chip
|
||||
- enable-gpios: GPIO connected to the ENABLE line of the chip
|
||||
- wake-gpios: GPIO connected to the WAKE line of the chip
|
||||
|
||||
Example:
|
||||
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
* TS-4800 Touchscreen bindings
|
||||
|
||||
Required properties:
|
||||
- compatible: must be "technologic,ts4800-ts"
|
||||
- reg: physical base address of the controller and length of memory mapped
|
||||
region.
|
||||
- syscon: phandle / integers array that points to the syscon node which
|
||||
describes the FPGA's syscon registers.
|
||||
- phandle to FPGA's syscon
|
||||
- offset to the touchscreen register
|
||||
- offset to the touchscreen enable bit
|
|
@ -22,7 +22,7 @@ Interrupt Controllers bindings used by client devices.
|
|||
Example:
|
||||
|
||||
interrupt-controller@18060010 {
|
||||
compatible = "qca,ar9132-misc-intc", qca,ar7100-misc-intc";
|
||||
compatible = "qca,ar9132-misc-intc", "qca,ar7100-misc-intc";
|
||||
reg = <0x18060010 0x4>;
|
||||
|
||||
interrupt-parent = <&cpuintc>;
|
||||
|
|
|
@ -12,12 +12,13 @@ There are two LED outputs available - flash and indicator. One LED is
|
|||
represented by one child node, nodes need to be named "flash" and "indicator".
|
||||
|
||||
Required properties of the LED child node:
|
||||
- max-microamp : see Documentation/devicetree/bindings/leds/common.txt
|
||||
- led-max-microamp : see Documentation/devicetree/bindings/leds/common.txt
|
||||
|
||||
Required properties of the flash LED child node:
|
||||
|
||||
- flash-max-microamp : see Documentation/devicetree/bindings/leds/common.txt
|
||||
- flash-timeout-us : see Documentation/devicetree/bindings/leds/common.txt
|
||||
- led-max-microamp : see Documentation/devicetree/bindings/leds/common.txt
|
||||
|
||||
Example:
|
||||
|
||||
|
@ -29,9 +30,9 @@ Example:
|
|||
flash {
|
||||
flash-timeout-us = <500000>;
|
||||
flash-max-microamp = <320000>;
|
||||
max-microamp = <50000>;
|
||||
led-max-microamp = <50000>;
|
||||
};
|
||||
indicator {
|
||||
max-microamp = <17500>;
|
||||
led-max-microamp = <17500>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
Binding for Qualcomm Atheros AR7xxx/AR9xxx DDR controller
|
||||
|
||||
The DDR controller of the ARxxx and AR9xxx families provides an interface
|
||||
The DDR controller of the AR7xxx and AR9xxx families provides an interface
|
||||
to flush the FIFO between various devices and the DDR. This is mainly used
|
||||
by the IRQ controller to flush the FIFO before running the interrupt handler
|
||||
of such devices.
|
||||
|
@ -11,9 +11,9 @@ Required properties:
|
|||
"qca,[ar7100|ar7240]-ddr-controller" as fallback.
|
||||
On SoC with PCI support "qca,ar7100-ddr-controller" should be used as
|
||||
fallback, otherwise "qca,ar7240-ddr-controller" should be used.
|
||||
- reg: Base address and size of the controllers memory area
|
||||
- #qca,ddr-wb-channel-cells: has to be 1, the index of the write buffer
|
||||
channel
|
||||
- reg: Base address and size of the controller's memory area
|
||||
- #qca,ddr-wb-channel-cells: Specifies the number of cells needed to encode
|
||||
the write buffer channel index, should be 1.
|
||||
|
||||
Example:
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Wolfson Arizona class audio SoCs
|
||||
Cirrus Logic/Wolfson Microelectronics Arizona class audio SoCs
|
||||
|
||||
These devices are audio SoCs with extensive digital capabilites and a range
|
||||
of analogue I/O.
|
||||
|
@ -6,12 +6,14 @@ of analogue I/O.
|
|||
Required properties:
|
||||
|
||||
- compatible : One of the following chip-specific strings:
|
||||
"cirrus,cs47l24"
|
||||
"wlf,wm5102"
|
||||
"wlf,wm5110"
|
||||
"wlf,wm8280"
|
||||
"wlf,wm8997"
|
||||
"wlf,wm8998"
|
||||
"wlf,wm1814"
|
||||
"wlf,wm1831"
|
||||
|
||||
- reg : I2C slave address when connected using I2C, chip select number when
|
||||
using SPI.
|
||||
|
@ -24,7 +26,7 @@ Required properties:
|
|||
- #interrupt-cells: the number of cells to describe an IRQ, this should be 2.
|
||||
The first cell is the IRQ number.
|
||||
The second cell is the flags, encoded as the trigger masks from
|
||||
Documentation/devicetree/bindings/interrupts.txt
|
||||
Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
|
||||
|
||||
- gpio-controller : Indicates this device is a GPIO controller.
|
||||
- #gpio-cells : Must be 2. The first cell is the pin number and the
|
||||
|
@ -41,10 +43,21 @@ Required properties:
|
|||
|
||||
- SPKVDD-supply : Speaker driver power supply (wm8997)
|
||||
|
||||
- DCVDD-supply : Main power supply (cs47l24, wm1831)
|
||||
|
||||
- MICVDD-supply : Microphone power supply (cs47l24, wm1831)
|
||||
|
||||
Optional properties:
|
||||
|
||||
- wlf,reset : GPIO specifier for the GPIO controlling /RESET
|
||||
|
||||
- clocks: Should reference the clocks supplied on MCLK1 and MCLK2
|
||||
- clock-names: Should contains two strings:
|
||||
"mclk1" for the clock supplied on MCLK1, recommended to be a high
|
||||
quality audio reference clock
|
||||
"mclk2" for the clock supplied on MCLK2, recommended to be an always on
|
||||
32k clock
|
||||
|
||||
- wlf,gpio-defaults : A list of GPIO configuration register values. Defines
|
||||
for the appropriate values can found in <dt-bindings/mfd/arizona.txt>. If
|
||||
absent, no configuration of these registers is performed. If any entry has
|
||||
|
@ -59,6 +72,12 @@ Optional properties:
|
|||
that have not been specified are set to 0 by default. Entries are:
|
||||
<IN1, IN2, IN3, IN4> (wm5102, wm5110, wm8280, wm8997)
|
||||
<IN1A, IN2A, IN1B, IN2B> (wm8998, wm1814)
|
||||
- wlf,out-mono : A list of boolean values indicating whether each output is
|
||||
mono or stereo. Position within the list indicates the output affected
|
||||
(eg. First entry in the list corresponds to output 1). A non-zero value
|
||||
indicates a mono output. If present, the number of values should be less
|
||||
than or equal to the number of outputs, if less values are supplied the
|
||||
additional outputs will be treated as stereo.
|
||||
|
||||
- wlf,dmic-ref : DMIC reference voltage source for each input, can be
|
||||
selected from either MICVDD or one of the MICBIAS's, defines
|
||||
|
@ -69,6 +88,7 @@ Optional properties:
|
|||
- DCVDD-supply, MICVDD-supply : Power supplies, only need to be specified if
|
||||
they are being externally supplied. As covered in
|
||||
Documentation/devicetree/bindings/regulator/regulator.txt
|
||||
(wm5102, wm5110, wm8280, wm8997, wm8998, wm1814)
|
||||
|
||||
Also see child specific device properties:
|
||||
Regulator - ../regulator/arizona-regulator.txt
|
||||
|
|
|
@ -24,7 +24,7 @@ and also the generic series names
|
|||
- #interrupt-cells : should be set to 2 for IRQ number and flags
|
||||
The first cell is the IRQ number.
|
||||
The second cell is the flags, encoded as the trigger masks from
|
||||
Documentation/devicetree/bindings/interrupts.txt
|
||||
Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
|
||||
- interrupt-parent : The parent interrupt controller.
|
||||
|
||||
Optional properties:
|
||||
|
|
|
@ -1,90 +0,0 @@
|
|||
|
||||
* Samsung S2MPA01 Voltage and Current Regulator
|
||||
|
||||
The Samsung S2MPA01 is a multi-function device which includes high
|
||||
efficiency buck converters including Dual-Phase buck converter, various LDOs,
|
||||
and an RTC. It is interfaced to the host controller using an I2C interface.
|
||||
Each sub-block is addressed by the host system using different I2C slave
|
||||
addresses.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "samsung,s2mpa01-pmic".
|
||||
- reg: Specifies the I2C slave address of the PMIC block. It should be 0x66.
|
||||
|
||||
Optional properties:
|
||||
- interrupt-parent: Specifies the phandle of the interrupt controller to which
|
||||
the interrupts from s2mpa01 are delivered to.
|
||||
- interrupts: An interrupt specifier for the sole interrupt generated by the
|
||||
device.
|
||||
|
||||
Optional nodes:
|
||||
- regulators: The regulators of s2mpa01 that have to be instantiated should be
|
||||
included in a sub-node named 'regulators'. Regulator nodes and constraints
|
||||
included in this sub-node use the standard regulator bindings which are
|
||||
documented elsewhere.
|
||||
|
||||
Properties for BUCK regulator nodes:
|
||||
- regulator-ramp-delay: ramp delay in uV/us. May be 6250, 12500
|
||||
(default), 25000, or 50000. May be 0 for disabling the ramp delay on
|
||||
BUCK{1,2,3,4}.
|
||||
|
||||
In the absence of the regulator-ramp-delay property, the default ramp
|
||||
delay will be used.
|
||||
|
||||
NOTE: Some BUCKs share the ramp rate setting i.e. same ramp value will be set
|
||||
for a particular group of BUCKs. So provide same regulator-ramp-delay=<value>.
|
||||
|
||||
The following BUCKs share ramp settings:
|
||||
* 1 and 6
|
||||
* 2 and 4
|
||||
* 8, 9, and 10
|
||||
|
||||
The following are the names of the regulators that the s2mpa01 PMIC block
|
||||
supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
|
||||
as per the datasheet of s2mpa01.
|
||||
|
||||
- LDOn
|
||||
- valid values for n are 1 to 26
|
||||
- Example: LDO1, LD02, LDO26
|
||||
- BUCKn
|
||||
- valid values for n are 1 to 10.
|
||||
- Example: BUCK1, BUCK2, BUCK9
|
||||
|
||||
Example:
|
||||
|
||||
s2mpa01_pmic@66 {
|
||||
compatible = "samsung,s2mpa01-pmic";
|
||||
reg = <0x66>;
|
||||
|
||||
regulators {
|
||||
ldo1_reg: LDO1 {
|
||||
regulator-name = "VDD_ALIVE";
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
};
|
||||
|
||||
ldo2_reg: LDO2 {
|
||||
regulator-name = "VDDQ_MMC2";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
buck1_reg: BUCK1 {
|
||||
regulator-name = "vdd_mif";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
buck2_reg: BUCK2 {
|
||||
regulator-name = "vdd_arm";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-ramp-delay = <50000>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -1,153 +0,0 @@
|
|||
|
||||
* Samsung S2MPS11/13/14/15 and S2MPU02 Voltage and Current Regulator
|
||||
|
||||
The Samsung S2MPS11 is a multi-function device which includes voltage and
|
||||
current regulators, RTC, charger controller and other sub-blocks. It is
|
||||
interfaced to the host controller using an I2C interface. Each sub-block is
|
||||
addressed by the host system using different I2C slave addresses.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be one of the following
|
||||
- "samsung,s2mps11-pmic"
|
||||
- "samsung,s2mps13-pmic"
|
||||
- "samsung,s2mps14-pmic"
|
||||
- "samsung,s2mps15-pmic"
|
||||
- "samsung,s2mpu02-pmic".
|
||||
- reg: Specifies the I2C slave address of the pmic block. It should be 0x66.
|
||||
|
||||
Optional properties:
|
||||
- interrupt-parent: Specifies the phandle of the interrupt controller to which
|
||||
the interrupts from s2mps11 are delivered to.
|
||||
- interrupts: Interrupt specifiers for interrupt sources.
|
||||
- samsung,s2mps11-wrstbi-ground: Indicates that WRSTBI pin of PMIC is pulled
|
||||
down. When the system is suspended it will always go down thus triggerring
|
||||
unwanted buck warm reset (setting buck voltages to default values).
|
||||
- samsung,s2mps11-acokb-ground: Indicates that ACOKB pin of S2MPS11 PMIC is
|
||||
connected to the ground so the PMIC must manually set PWRHOLD bit in CTRL1
|
||||
register to turn off the power. Usually the ACOKB is pulled up to VBATT so
|
||||
when PWRHOLD pin goes low, the rising ACOKB will trigger power off.
|
||||
|
||||
Optional nodes:
|
||||
- clocks: s2mps11, s2mps13, s2mps15 and s5m8767 provide three(AP/CP/BT) buffered 32.768
|
||||
KHz outputs, so to register these as clocks with common clock framework
|
||||
instantiate a sub-node named "clocks". It uses the common clock binding
|
||||
documented in :
|
||||
[Documentation/devicetree/bindings/clock/clock-bindings.txt]
|
||||
The s2mps14 provides two (AP/BT) buffered 32.768 KHz outputs.
|
||||
- #clock-cells: should be 1.
|
||||
|
||||
- The following is the list of clocks generated by the controller. Each clock
|
||||
is assigned an identifier and client nodes use this identifier to specify
|
||||
the clock which they consume.
|
||||
Clock ID Devices
|
||||
----------------------------------------------------------
|
||||
32KhzAP 0 S2MPS11, S2MPS13, S2MPS14, S2MPS15, S5M8767
|
||||
32KhzCP 1 S2MPS11, S2MPS13, S2MPS15, S5M8767
|
||||
32KhzBT 2 S2MPS11, S2MPS13, S2MPS14, S2MPS15, S5M8767
|
||||
|
||||
- compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps13-clk",
|
||||
"samsung,s2mps14-clk", "samsung,s5m8767-clk"
|
||||
The s2msp15 uses the same compatible as s2mps13, as both provides similar clocks.
|
||||
|
||||
- regulators: The regulators of s2mps11 that have to be instantiated should be
|
||||
included in a sub-node named 'regulators'. Regulator nodes included in this
|
||||
sub-node should be of the format as listed below.
|
||||
|
||||
regulator_name {
|
||||
[standard regulator constraints....];
|
||||
};
|
||||
|
||||
regulator-ramp-delay for BUCKs = [6250/12500/25000(default)/50000] uV/us
|
||||
|
||||
BUCK[2/3/4/6] supports disabling ramp delay on hardware, so explicitly
|
||||
regulator-ramp-delay = <0> can be used for them to disable ramp delay.
|
||||
In the absence of the regulator-ramp-delay property, the default ramp
|
||||
delay will be used.
|
||||
|
||||
NOTE: Some BUCKs share the ramp rate setting i.e. same ramp value will be set
|
||||
for a particular group of BUCKs. So provide same regulator-ramp-delay<value>.
|
||||
Grouping of BUCKs sharing ramp rate setting is as follow : BUCK[1, 6],
|
||||
BUCK[3, 4], and BUCK[7, 8, 10]
|
||||
|
||||
On S2MPS14 the LDO10, LDO11 and LDO12 can be configured to external control
|
||||
over GPIO. To turn this feature on this property must be added to the regulator
|
||||
sub-node:
|
||||
- samsung,ext-control-gpios: GPIO specifier for one GPIO
|
||||
controlling this regulator (enable/disable);
|
||||
Example:
|
||||
LDO12 {
|
||||
regulator-name = "V_EMMC_2.8V";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
samsung,ext-control-gpios = <&gpk0 2 0>;
|
||||
};
|
||||
|
||||
|
||||
The regulator constraints inside the regulator nodes use the standard regulator
|
||||
bindings which are documented elsewhere.
|
||||
|
||||
The following are the names of the regulators that the s2mps11 pmic block
|
||||
supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
|
||||
as per the datasheet of s2mps11.
|
||||
|
||||
- LDOn
|
||||
- valid values for n are:
|
||||
- S2MPS11: 1 to 38
|
||||
- S2MPS13: 1 to 40
|
||||
- S2MPS14: 1 to 25
|
||||
- S2MPS15: 1 to 27
|
||||
- S2MPU02: 1 to 28
|
||||
- Example: LDO1, LDO2, LDO28
|
||||
- BUCKn
|
||||
- valid values for n are:
|
||||
- S2MPS11: 1 to 10
|
||||
- S2MPS13: 1 to 10
|
||||
- S2MPS14: 1 to 5
|
||||
- S2MPS15: 1 to 10
|
||||
- S2MPU02: 1 to 7
|
||||
- Example: BUCK1, BUCK2, BUCK9
|
||||
|
||||
Example:
|
||||
|
||||
s2mps11_pmic@66 {
|
||||
compatible = "samsung,s2mps11-pmic";
|
||||
reg = <0x66>;
|
||||
|
||||
s2m_osc: clocks {
|
||||
compatible = "samsung,s2mps11-clk";
|
||||
#clock-cells = <1>;
|
||||
clock-output-names = "xx", "yy", "zz";
|
||||
};
|
||||
|
||||
regulators {
|
||||
ldo1_reg: LDO1 {
|
||||
regulator-name = "VDD_ABB_3.3V";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
ldo2_reg: LDO2 {
|
||||
regulator-name = "VDD_ALIVE_1.1V";
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
buck1_reg: BUCK1 {
|
||||
regulator-name = "vdd_mif";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
buck2_reg: BUCK2 {
|
||||
regulator-name = "vdd_arm";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-ramp-delay = <50000>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -0,0 +1,88 @@
|
|||
Binding for Samsung S2M and S5M family multi-function device
|
||||
============================================================
|
||||
|
||||
This is a part of device tree bindings for S2M and S5M family multi-function
|
||||
devices.
|
||||
|
||||
The Samsung S2MPA01, S2MPS11/13/14/15, S2MPU02 and S5M8767 is a family
|
||||
of multi-function devices which include voltage and current regulators, RTC,
|
||||
charger controller, clock outputs and other sub-blocks. It is interfaced
|
||||
to the host controller using an I2C interface. Each sub-block is usually
|
||||
addressed by the host system using different I2C slave addresses.
|
||||
|
||||
|
||||
This document describes bindings for main device node. Optional sub-blocks
|
||||
must be a sub-nodes to it. Bindings for them can be found in:
|
||||
- bindings/regulator/samsung,s2mpa01.txt
|
||||
- bindings/regulator/samsung,s2mps11.txt
|
||||
- bindings/regulator/samsung,s5m8767.txt
|
||||
- bindings/clock/samsung,s2mps11.txt
|
||||
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be one of the following
|
||||
- "samsung,s2mpa01-pmic",
|
||||
- "samsung,s2mps11-pmic",
|
||||
- "samsung,s2mps13-pmic",
|
||||
- "samsung,s2mps14-pmic",
|
||||
- "samsung,s2mps15-pmic",
|
||||
- "samsung,s2mpu02-pmic",
|
||||
- "samsung,s5m8767-pmic".
|
||||
- reg: Specifies the I2C slave address of the pmic block. It should be 0x66.
|
||||
|
||||
Optional properties:
|
||||
- interrupt-parent: Specifies the phandle of the interrupt controller to which
|
||||
the interrupts from s2mps11 are delivered to.
|
||||
- interrupts: Interrupt specifiers for interrupt sources.
|
||||
- samsung,s2mps11-wrstbi-ground: Indicates that WRSTBI pin of PMIC is pulled
|
||||
down. When the system is suspended it will always go down thus triggerring
|
||||
unwanted buck warm reset (setting buck voltages to default values).
|
||||
- samsung,s2mps11-acokb-ground: Indicates that ACOKB pin of S2MPS11 PMIC is
|
||||
connected to the ground so the PMIC must manually set PWRHOLD bit in CTRL1
|
||||
register to turn off the power. Usually the ACOKB is pulled up to VBATT so
|
||||
when PWRHOLD pin goes low, the rising ACOKB will trigger power off.
|
||||
|
||||
Example:
|
||||
|
||||
s2mps11_pmic@66 {
|
||||
compatible = "samsung,s2mps11-pmic";
|
||||
reg = <0x66>;
|
||||
|
||||
s2m_osc: clocks {
|
||||
compatible = "samsung,s2mps11-clk";
|
||||
#clock-cells = <1>;
|
||||
clock-output-names = "xx", "yy", "zz";
|
||||
};
|
||||
|
||||
regulators {
|
||||
ldo1_reg: LDO1 {
|
||||
regulator-name = "VDD_ABB_3.3V";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
ldo2_reg: LDO2 {
|
||||
regulator-name = "VDD_ALIVE_1.1V";
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
buck1_reg: BUCK1 {
|
||||
regulator-name = "vdd_mif";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
buck2_reg: BUCK2 {
|
||||
regulator-name = "vdd_arm";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-ramp-delay = <50000>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -13,6 +13,10 @@ Required properties:
|
|||
- compatible: Should contain "syscon".
|
||||
- reg: the register region can be accessed from syscon
|
||||
|
||||
Optional property:
|
||||
- reg-io-width: the size (in bytes) of the IO accesses that should be
|
||||
performed on the device.
|
||||
|
||||
Examples:
|
||||
gpr: iomuxc-gpr@020e0000 {
|
||||
compatible = "fsl,imx6q-iomuxc-gpr", "syscon";
|
||||
|
|
|
@ -45,6 +45,8 @@ Required properties:
|
|||
- #size-cells : <0>
|
||||
|
||||
Optional properties:
|
||||
- clock : reference to the clock for the NAND controller
|
||||
- clock-names : "nand" (required for the above clock)
|
||||
- brcm,nand-has-wp : Some versions of this IP include a write-protect
|
||||
(WP) control bit. It is always available on >=
|
||||
v7.0. Use this property to describe the rare
|
||||
|
@ -72,6 +74,12 @@ we define additional 'compatible' properties and associated register resources w
|
|||
and enable registers
|
||||
- reg-names: (required) "nand-int-base"
|
||||
|
||||
* "brcm,nand-bcm6368"
|
||||
- compatible: should contain "brcm,nand-bcm<soc>", "brcm,nand-bcm6368"
|
||||
- reg: (required) the 'NAND_INTR_BASE' register range, with combined status
|
||||
and enable registers, and boot address registers
|
||||
- reg-names: (required) "nand-int-base"
|
||||
|
||||
* "brcm,nand-iproc"
|
||||
- reg: (required) the "IDM" register range, for interrupt enable and APB
|
||||
bus access endianness configuration, and the "EXT" register range,
|
||||
|
@ -148,3 +156,27 @@ nand@f0442800 {
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
nand@10000200 {
|
||||
compatible = "brcm,nand-bcm63168", "brcm,nand-bcm6368",
|
||||
"brcm,brcmnand-v4.0", "brcm,brcmnand";
|
||||
reg = <0x10000200 0x180>,
|
||||
<0x10000600 0x200>,
|
||||
<0x100000b0 0x10>;
|
||||
reg-names = "nand", "nand-cache", "nand-int-base";
|
||||
interrupt-parent = <&periph_intc>;
|
||||
interrupts = <50>;
|
||||
clocks = <&periph_clk 20>;
|
||||
clock-names = "nand";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
nand0: nandcs@0 {
|
||||
compatible = "brcm,nandcs";
|
||||
reg = <0>;
|
||||
nand-on-flash-bbt;
|
||||
nand-ecc-strength = <1>;
|
||||
nand-ecc-step-size = <512>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
|
||||
Required properties:
|
||||
- compatible : Should be "fsl,vf610-qspi", "fsl,imx6sx-qspi",
|
||||
"fsl,imx7d-qspi", "fsl,imx6ul-qspi"
|
||||
"fsl,imx7d-qspi", "fsl,imx6ul-qspi",
|
||||
"fsl,ls1021-qspi"
|
||||
- reg : the first contains the register location and length,
|
||||
the second contains the memory mapping address and length
|
||||
- reg-names: Should contain the reg names "QuadSPI" and "QuadSPI-memory"
|
||||
|
|
|
@ -0,0 +1,86 @@
|
|||
* Ingenic JZ4780 NAND/BCH
|
||||
|
||||
This file documents the device tree bindings for NAND flash devices on the
|
||||
JZ4780. NAND devices are connected to the NEMC controller (described in
|
||||
memory-controllers/ingenic,jz4780-nemc.txt), and thus NAND device nodes must
|
||||
be children of the NEMC node.
|
||||
|
||||
Required NAND controller device properties:
|
||||
- compatible: Should be set to "ingenic,jz4780-nand".
|
||||
- reg: For each bank with a NAND chip attached, should specify a bank number,
|
||||
an offset of 0 and a size of 0x1000000 (i.e. the whole NEMC bank).
|
||||
|
||||
Optional NAND controller device properties:
|
||||
- ingenic,bch-controller: To make use of the hardware BCH controller, this
|
||||
property must contain a phandle for the BCH controller node. The required
|
||||
properties for this node are described below. If this is not specified,
|
||||
software BCH will be used instead.
|
||||
|
||||
Optional children nodes:
|
||||
- Individual NAND chips are children of the NAND controller node.
|
||||
|
||||
Required children node properties:
|
||||
- reg: An integer ranging from 1 to 6 representing the CS line to use.
|
||||
|
||||
Optional children node properties:
|
||||
- nand-ecc-step-size: ECC block size in bytes.
|
||||
- nand-ecc-strength: ECC strength (max number of correctable bits).
|
||||
- nand-ecc-mode: String, operation mode of the NAND ecc mode. "hw" by default
|
||||
- nand-on-flash-bbt: boolean to enable on flash bbt option, if not present false
|
||||
- rb-gpios: GPIO specifier for the busy pin.
|
||||
- wp-gpios: GPIO specifier for the write protect pin.
|
||||
|
||||
Optional child node of NAND chip nodes:
|
||||
- partitions: see Documentation/devicetree/bindings/mtd/partition.txt
|
||||
|
||||
Example:
|
||||
|
||||
nemc: nemc@13410000 {
|
||||
...
|
||||
|
||||
nandc: nand-controller@1 {
|
||||
compatible = "ingenic,jz4780-nand";
|
||||
reg = <1 0 0x1000000>; /* Bank 1 */
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ingenic,bch-controller = <&bch>;
|
||||
|
||||
nand@1 {
|
||||
reg = <1>;
|
||||
|
||||
nand-ecc-step-size = <1024>;
|
||||
nand-ecc-strength = <24>;
|
||||
nand-ecc-mode = "hw";
|
||||
nand-on-flash-bbt;
|
||||
|
||||
rb-gpios = <&gpa 20 GPIO_ACTIVE_LOW>;
|
||||
wp-gpios = <&gpf 22 GPIO_ACTIVE_LOW>;
|
||||
|
||||
partitions {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
...
|
||||
}
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
The BCH controller is a separate SoC component used for error correction on
|
||||
NAND devices. The following is a description of the device properties for a
|
||||
BCH controller.
|
||||
|
||||
Required BCH properties:
|
||||
- compatible: Should be set to "ingenic,jz4780-bch".
|
||||
- reg: Should specify the BCH controller registers location and length.
|
||||
- clocks: Clock for the BCH controller.
|
||||
|
||||
Example:
|
||||
|
||||
bch: bch@134d0000 {
|
||||
compatible = "ingenic,jz4780-bch";
|
||||
reg = <0x134d0000 0x10000>;
|
||||
|
||||
clocks = <&cgu JZ4780_CLK_BCH>;
|
||||
};
|
|
@ -1,15 +1,61 @@
|
|||
* MTD SPI driver for ST M25Pxx (and similar) serial flash chips
|
||||
* SPI NOR flash: ST M25Pxx (and similar) serial flash chips
|
||||
|
||||
Required properties:
|
||||
- #address-cells, #size-cells : Must be present if the device has sub-nodes
|
||||
representing partitions.
|
||||
- compatible : May include a device-specific string consisting of the
|
||||
manufacturer and name of the chip. Bear in mind the DT binding
|
||||
is not Linux-only, but in case of Linux, see the "m25p_ids"
|
||||
table in drivers/mtd/devices/m25p80.c for the list of supported
|
||||
chips.
|
||||
manufacturer and name of the chip. A list of supported chip
|
||||
names follows.
|
||||
Must also include "jedec,spi-nor" for any SPI NOR flash that can
|
||||
be identified by the JEDEC READ ID opcode (0x9F).
|
||||
|
||||
Supported chip names:
|
||||
at25df321a
|
||||
at25df641
|
||||
at26df081a
|
||||
mr25h256
|
||||
mx25l4005a
|
||||
mx25l1606e
|
||||
mx25l6405d
|
||||
mx25l12805d
|
||||
mx25l25635e
|
||||
n25q064
|
||||
n25q128a11
|
||||
n25q128a13
|
||||
n25q512a
|
||||
s25fl256s1
|
||||
s25fl512s
|
||||
s25sl12801
|
||||
s25fl008k
|
||||
s25fl064k
|
||||
sst25vf040b
|
||||
m25p40
|
||||
m25p80
|
||||
m25p16
|
||||
m25p32
|
||||
m25p64
|
||||
m25p128
|
||||
w25x80
|
||||
w25x32
|
||||
w25q32
|
||||
w25q32dw
|
||||
w25q80bl
|
||||
w25q128
|
||||
w25q256
|
||||
|
||||
The following chip names have been used historically to
|
||||
designate quirky versions of flash chips that do not support the
|
||||
JEDEC READ ID opcode (0x9F):
|
||||
m25p05-nonjedec
|
||||
m25p10-nonjedec
|
||||
m25p20-nonjedec
|
||||
m25p40-nonjedec
|
||||
m25p80-nonjedec
|
||||
m25p16-nonjedec
|
||||
m25p32-nonjedec
|
||||
m25p64-nonjedec
|
||||
m25p128-nonjedec
|
||||
|
||||
- reg : Chip-Select number
|
||||
- spi-max-frequency : Maximum frequency of the SPI bus the chip can operate at
|
||||
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
* Serial NOR flash controller for MTK MT81xx (and similar)
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "mediatek,mt8173-nor";
|
||||
- reg: physical base address and length of the controller's register
|
||||
- clocks: the phandle of the clocks needed by the nor controller
|
||||
- clock-names: the names of the clocks
|
||||
the clocks should be named "spi" and "sf". "spi" is used for spi bus,
|
||||
and "sf" is used for controller, these are the clocks witch
|
||||
hardware needs to enabling nor flash and nor flash controller.
|
||||
See Documentation/devicetree/bindings/clock/clock-bindings.txt for details.
|
||||
- #address-cells: should be <1>
|
||||
- #size-cells: should be <0>
|
||||
|
||||
The SPI flash must be a child of the nor_flash node and must have a
|
||||
compatible property. Also see jedec,spi-nor.txt.
|
||||
|
||||
Required properties:
|
||||
- compatible: May include a device-specific string consisting of the manufacturer
|
||||
and name of the chip. Must also include "jedec,spi-nor" for any
|
||||
SPI NOR flash that can be identified by the JEDEC READ ID opcode (0x9F).
|
||||
- reg : Chip-Select number
|
||||
|
||||
Example:
|
||||
|
||||
nor_flash: spi@1100d000 {
|
||||
compatible = "mediatek,mt8173-nor";
|
||||
reg = <0 0x1100d000 0 0xe0>;
|
||||
clocks = <&pericfg CLK_PERI_SPI>,
|
||||
<&topckgen CLK_TOP_SPINFI_IFR_SEL>;
|
||||
clock-names = "spi", "sf";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
|
||||
flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
|
@ -32,6 +32,8 @@ Optional properties:
|
|||
partition should only be mounted read-only. This is usually used for flash
|
||||
partitions containing early-boot firmware images or data which should not be
|
||||
clobbered.
|
||||
- lock : Do not unlock the partition at initialization time (not supported on
|
||||
all devices)
|
||||
|
||||
Examples:
|
||||
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
* Cadence EMAC Ethernet controller
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "cdns,[<chip>-]{emac}"
|
||||
Use "cdns,at91rm9200-emac" Atmel at91rm9200 SoC.
|
||||
Use "cdns,zynq-gem" Xilinx Zynq-7xxx SoC.
|
||||
Or the generic form: "cdns,emac".
|
||||
- reg: Address and length of the register set for the device
|
||||
- interrupts: Should contain macb interrupt
|
||||
- phy-mode: see ethernet.txt file in the same directory.
|
||||
|
||||
Examples:
|
||||
|
||||
macb0: ethernet@fffc4000 {
|
||||
compatible = "cdns,at91rm9200-emac";
|
||||
reg = <0xfffc4000 0x4000>;
|
||||
interrupts = <21>;
|
||||
phy-mode = "rmii";
|
||||
local-mac-address = [3a 0e 03 04 05 06];
|
||||
};
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
Required properties:
|
||||
- compatible: Should be "cdns,[<chip>-]{macb|gem}"
|
||||
Use "cdns,at91rm9200-emac" Atmel at91rm9200 SoC.
|
||||
Use "cdns,at91sam9260-macb" for Atmel at91sam9 SoCs or the 10/100Mbit IP
|
||||
available on sama5d3 SoCs.
|
||||
Use "cdns,np4-macb" for NP4 SoC devices.
|
||||
|
@ -11,7 +12,9 @@ Required properties:
|
|||
Use "atmel,sama5d2-gem" for the GEM IP (10/100) available on Atmel sama5d2 SoCs.
|
||||
Use "atmel,sama5d3-gem" for the Gigabit IP available on Atmel sama5d3 SoCs.
|
||||
Use "atmel,sama5d4-gem" for the GEM IP (10/100) available on Atmel sama5d4 SoCs.
|
||||
Use "cdns,zynq-gem" Xilinx Zynq-7xxx SoC.
|
||||
Use "cdns,zynqmp-gem" for Zynq Ultrascale+ MPSoC.
|
||||
Or the generic form: "cdns,emac".
|
||||
- reg: Address and length of the register set for the device
|
||||
- interrupts: Should contain macb interrupt
|
||||
- phy-mode: See ethernet.txt file in the same directory.
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
Required properties:
|
||||
- compatible: should be one or more of
|
||||
"brcm,bcm7425-sata-phy"
|
||||
"brcm,bcm7445-sata-phy"
|
||||
"brcm,phy-sata3"
|
||||
- address-cells: should be 1
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
Hisilicon hi6220 usb PHY
|
||||
-----------------------
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "hisilicon,hi6220-usb-phy"
|
||||
- #phy-cells: must be 0
|
||||
- hisilicon,peripheral-syscon: phandle of syscon used to control phy.
|
||||
Refer to phy/phy-bindings.txt for the generic PHY binding properties
|
||||
|
||||
Example:
|
||||
usb_phy: usbphy {
|
||||
compatible = "hisilicon,hi6220-usb-phy";
|
||||
#phy-cells = <0>;
|
||||
phy-supply = <&fixed_5v_hub>;
|
||||
hisilicon,peripheral-syscon = <&sys_ctrl>;
|
||||
};
|
|
@ -0,0 +1,39 @@
|
|||
* Renesas R-Car generation 3 USB 2.0 PHY
|
||||
|
||||
This file provides information on what the device node for the R-Car generation
|
||||
3 USB 2.0 PHY contains.
|
||||
|
||||
Required properties:
|
||||
- compatible: "renesas,usb2-phy-r8a7795" if the device is a part of an R8A7795
|
||||
SoC.
|
||||
- reg: offset and length of the partial USB 2.0 Host register block.
|
||||
- reg-names: must be "usb2_host".
|
||||
- clocks: clock phandle and specifier pair(s).
|
||||
- #phy-cells: see phy-bindings.txt in the same directory, must be <0>.
|
||||
|
||||
Optional properties:
|
||||
To use a USB channel where USB 2.0 Host and HSUSB (USB 2.0 Peripheral) are
|
||||
combined, the device tree node should set HSUSB properties to reg and reg-names
|
||||
properties. This is because HSUSB has registers to select USB 2.0 host or
|
||||
peripheral at that channel:
|
||||
- reg: offset and length of the partial HSUSB register block.
|
||||
- reg-names: must be "hsusb".
|
||||
- interrupts: interrupt specifier for the PHY.
|
||||
|
||||
Example (R-Car H3):
|
||||
|
||||
usb-phy@ee080200 {
|
||||
compatible = "renesas,usb2-phy-r8a7795";
|
||||
reg = <0 0xee080200 0 0x700>, <0 0xe6590100 0 0x100>;
|
||||
reg-names = "usb2_host", "hsusb";
|
||||
interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&mstp7_clks R8A7795_CLK_EHCI0>,
|
||||
<&mstp7_clks R8A7795_CLK_HSUSB>;
|
||||
};
|
||||
|
||||
usb-phy@ee0a0200 {
|
||||
compatible = "renesas,usb2-phy-r8a7795";
|
||||
reg = <0 0xee0a0200 0 0x700>;
|
||||
reg-names = "usb2_host";
|
||||
clocks = <&mstp7_clks R8A7795_CLK_EHCI0>;
|
||||
};
|
|
@ -1,7 +1,10 @@
|
|||
ROCKCHIP USB2 PHY
|
||||
|
||||
Required properties:
|
||||
- compatible: rockchip,rk3288-usb-phy
|
||||
- compatible: matching the soc type, one of
|
||||
"rockchip,rk3066a-usb-phy"
|
||||
"rockchip,rk3188-usb-phy"
|
||||
"rockchip,rk3288-usb-phy"
|
||||
- rockchip,grf : phandle to the syscon managing the "general
|
||||
register files"
|
||||
- #address-cells: should be 1
|
||||
|
@ -21,6 +24,7 @@ required properties:
|
|||
Optional Properties:
|
||||
- clocks : phandle + clock specifier for the phy clocks
|
||||
- clock-names: string, clock name, must be "phyclk"
|
||||
- #clock-cells: for users of the phy-pll, should be 0
|
||||
|
||||
Example:
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ Required properties:
|
|||
* allwinner,sun7i-a20-usb-phy
|
||||
* allwinner,sun8i-a23-usb-phy
|
||||
* allwinner,sun8i-a33-usb-phy
|
||||
* allwinner,sun8i-h3-usb-phy
|
||||
- reg : a list of offset + length pairs
|
||||
- reg-names :
|
||||
* "phy_ctrl"
|
||||
|
|
|
@ -31,6 +31,8 @@ OMAP USB2 PHY
|
|||
|
||||
Required properties:
|
||||
- compatible: Should be "ti,omap-usb2"
|
||||
Should be "ti,dra7x-usb2-phy2" for the 2nd instance of USB2 PHY
|
||||
in DRA7x
|
||||
- reg : Address and length of the register set for the device.
|
||||
- #phy-cells: determine the number of cells that should be given in the
|
||||
phandle while referencing this phy.
|
||||
|
@ -40,10 +42,14 @@ Required properties:
|
|||
* "wkupclk" - wakeup clock.
|
||||
* "refclk" - reference clock (optional).
|
||||
|
||||
Optional properties:
|
||||
Deprecated properties:
|
||||
- ctrl-module : phandle of the control module used by PHY driver to power on
|
||||
the PHY.
|
||||
|
||||
Recommended properies:
|
||||
- syscon-phy-power : phandle/offset pair. Phandle to the system control
|
||||
module and the register offset to power on/off the PHY.
|
||||
|
||||
This is usually a subnode of ocp2scp to which it is connected.
|
||||
|
||||
usb2phy@4a0ad080 {
|
||||
|
@ -77,14 +83,22 @@ Required properties:
|
|||
* "div-clk" - apll clock
|
||||
|
||||
Optional properties:
|
||||
- ctrl-module : phandle of the control module used by PHY driver to power on
|
||||
the PHY.
|
||||
- id: If there are multiple instance of the same type, in order to
|
||||
differentiate between each instance "id" can be used (e.g., multi-lane PCIe
|
||||
PHY). If "id" is not provided, it is set to default value of '1'.
|
||||
- syscon-pllreset: Handle to system control region that contains the
|
||||
CTRL_CORE_SMA_SW_0 register and register offset to the CTRL_CORE_SMA_SW_0
|
||||
register that contains the SATA_PLL_SOFT_RESET bit. Only valid for sata_phy.
|
||||
- syscon-pcs : phandle/offset pair. Phandle to the system control module and the
|
||||
register offset to write the PCS delay value.
|
||||
|
||||
Deprecated properties:
|
||||
- ctrl-module : phandle of the control module used by PHY driver to power on
|
||||
the PHY.
|
||||
|
||||
Recommended properies:
|
||||
- syscon-phy-power : phandle/offset pair. Phandle to the system control
|
||||
module and the register offset to power on/off the PHY.
|
||||
|
||||
This is usually a subnode of ocp2scp to which it is connected.
|
||||
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
TI LMU LM363x regulator device tree bindings
|
||||
|
||||
LM363x regulator driver supports LM3631 and LM3632.
|
||||
LM3631 has five regulators and LM3632 supports three regulators.
|
||||
|
||||
Required property:
|
||||
- compatible: "ti,lm363x-regulator"
|
||||
|
||||
Optional properties:
|
||||
LM3632 has external enable pins for two LDOs.
|
||||
- ti,lcm-en1-gpio: A GPIO specifier for Vpos control pin.
|
||||
- ti,lcm-en2-gpio: A GPIO specifier for Vneg control pin.
|
||||
|
||||
Child nodes:
|
||||
LM3631
|
||||
- vboost
|
||||
- vcont
|
||||
- voref
|
||||
- vpos
|
||||
- vneg
|
||||
|
||||
LM3632
|
||||
- vboost
|
||||
- vpos
|
||||
- vneg
|
||||
|
||||
Optional properties of a child node:
|
||||
Each sub-node should contain the constraints and initialization.
|
||||
Please refer to [1].
|
||||
|
||||
Examples: Please refer to ti-lmu dt-bindings [2].
|
||||
|
||||
[1] ../regulator/regulator.txt
|
||||
[2] ../mfd/ti-lmu.txt
|
|
@ -0,0 +1,124 @@
|
|||
* Powerventure Semiconductor PV88060 Voltage Regulator
|
||||
|
||||
Required properties:
|
||||
- compatible: "pvs,pv88060".
|
||||
- reg: I2C slave address, usually 0x49.
|
||||
- interrupts: the interrupt outputs of the controller
|
||||
- regulators: A node that houses a sub-node for each regulator within the
|
||||
device. Each sub-node is identified using the node's name, with valid
|
||||
values listed below. The content of each sub-node is defined by the
|
||||
standard binding for regulators; see regulator.txt.
|
||||
BUCK1, LDO1, LDO2, LDO3, LDO4, LDO5, LDO6, LDO7, SW1, SW2, SW3, SW4,
|
||||
SW5, and SW6.
|
||||
|
||||
Optional properties:
|
||||
- Any optional property defined in regulator.txt
|
||||
|
||||
Example
|
||||
|
||||
pmic: pv88060@49 {
|
||||
compatible = "pvs,pv88060";
|
||||
reg = <0x49>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <24 24>;
|
||||
|
||||
regulators {
|
||||
BUCK1 {
|
||||
regulator-name = "buck1";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <4387500>;
|
||||
regulator-min-microamp = <1496000>;
|
||||
regulator-max-microamp = <4189000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
LDO1 {
|
||||
regulator-name = "ldo1";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3350000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
LDO2 {
|
||||
regulator-name = "ldo2";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3350000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
LDO3 {
|
||||
regulator-name = "ldo3";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3350000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
LDO4 {
|
||||
regulator-name = "ldo4";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3350000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
LDO5 {
|
||||
regulator-name = "ldo5";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3350000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
LDO6 {
|
||||
regulator-name = "ldo6";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3350000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
LDO7 {
|
||||
regulator-name = "ldo7";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3350000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
SW1 {
|
||||
regulator-name = "sw1";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
};
|
||||
|
||||
SW2 {
|
||||
regulator-name = "sw2";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
SW3 {
|
||||
regulator-name = "sw3";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
SW4 {
|
||||
regulator-name = "sw4";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
SW5 {
|
||||
regulator-name = "sw5";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
SW6 {
|
||||
regulator-name = "sw6";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -0,0 +1,65 @@
|
|||
* Powerventure Semiconductor PV88090 Voltage Regulator
|
||||
|
||||
Required properties:
|
||||
- compatible: "pvs,pv88090".
|
||||
- reg: I2C slave address, usually 0x48.
|
||||
- interrupts: the interrupt outputs of the controller
|
||||
- regulators: A node that houses a sub-node for each regulator within the
|
||||
device. Each sub-node is identified using the node's name, with valid
|
||||
values listed below. The content of each sub-node is defined by the
|
||||
standard binding for regulators; see regulator.txt.
|
||||
BUCK1, BUCK2, BUCK3, LDO1, and LDO2.
|
||||
|
||||
Optional properties:
|
||||
- Any optional property defined in regulator.txt
|
||||
|
||||
Example
|
||||
|
||||
pmic: pv88090@48 {
|
||||
compatible = "pvs,pv88090";
|
||||
reg = <0x48>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <24 24>;
|
||||
|
||||
regulators {
|
||||
BUCK1 {
|
||||
regulator-name = "buck1";
|
||||
regulator-min-microvolt = < 600000>;
|
||||
regulator-max-microvolt = <1393750>;
|
||||
regulator-min-microamp = < 220000>;
|
||||
regulator-max-microamp = <7040000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
BUCK2 {
|
||||
regulator-name = "buck2";
|
||||
regulator-min-microvolt = < 600000>;
|
||||
regulator-max-microvolt = <1393750>;
|
||||
regulator-min-microamp = <1496000>;
|
||||
regulator-max-microamp = <4189000>;
|
||||
};
|
||||
|
||||
BUCK3 {
|
||||
regulator-name = "buck3";
|
||||
regulator-min-microvolt = <600000>;
|
||||
regulator-max-microvolt = <1393750>;
|
||||
regulator-min-microamp = <1496000>;
|
||||
regulator-max-microamp = <4189000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
LDO1 {
|
||||
regulator-name = "ldo1";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <4350000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
LDO2 {
|
||||
regulator-name = "ldo2";
|
||||
regulator-min-microvolt = < 650000>;
|
||||
regulator-max-microvolt = <2225000>;
|
||||
regulator-boot-on;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -1,27 +1,17 @@
|
|||
Qualcomm Resource Power Manager (RPM) over SMD
|
||||
QCOM SMD RPM REGULATOR
|
||||
|
||||
This driver is used to interface with the Resource Power Manager (RPM) found in
|
||||
various Qualcomm platforms. The RPM allows each component in the system to vote
|
||||
for state of the system resources, such as clocks, regulators and bus
|
||||
frequencies.
|
||||
The Qualcomm RPM over SMD regulator is modelled as a subdevice of the RPM.
|
||||
Because SMD is used as the communication transport mechanism, the RPM resides as
|
||||
a subnode of the SMD. As such, the SMD-RPM regulator requires that the SMD and
|
||||
RPM nodes be present.
|
||||
|
||||
- compatible:
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: must be one of:
|
||||
"qcom,rpm-msm8974"
|
||||
Please refer to Documentation/devicetree/bindings/soc/qcom/qcom,smd.txt for
|
||||
information pertaining to the SMD node.
|
||||
|
||||
- qcom,smd-channels:
|
||||
Usage: required
|
||||
Value type: <stringlist>
|
||||
Definition: Shared Memory channel used for communication with the RPM
|
||||
Please refer to Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt for
|
||||
information regarding the RPM node.
|
||||
|
||||
= SUBDEVICES
|
||||
|
||||
The RPM exposes resources to its subnodes. The below bindings specify the set
|
||||
of valid subnodes that can operate on these resources.
|
||||
|
||||
== Regulators
|
||||
== Regulator
|
||||
|
||||
Regulator nodes are identified by their compatible:
|
||||
|
||||
|
@ -30,7 +20,9 @@ Regulator nodes are identified by their compatible:
|
|||
Value type: <string>
|
||||
Definition: must be one of:
|
||||
"qcom,rpm-pm8841-regulators"
|
||||
"qcom,rpm-pm8916-regulators"
|
||||
"qcom,rpm-pm8941-regulators"
|
||||
"qcom,rpm-pma8084-regulators"
|
||||
|
||||
- vdd_s1-supply:
|
||||
- vdd_s2-supply:
|
||||
|
@ -45,6 +37,19 @@ Regulator nodes are identified by their compatible:
|
|||
Definition: reference to regulator supplying the input pin, as
|
||||
described in the data sheet
|
||||
|
||||
- vdd_s1-supply:
|
||||
- vdd_s2-supply:
|
||||
- vdd_s3-supply:
|
||||
- vdd_s4-supply:
|
||||
- vdd_l1_l2_l3-supply:
|
||||
- vdd_l4_l5_l6-supply:
|
||||
- vdd_l7-supply:
|
||||
- vdd_l8_l9_l10_l11_l12_l13_l14_l15_l16_l17_l18-supply:
|
||||
Usage: optional (pm8916 only)
|
||||
Value type: <phandle>
|
||||
Definition: reference to regulator supplying the input pin, as
|
||||
described in the data sheet
|
||||
|
||||
- vdd_s1-supply:
|
||||
- vdd_s2-supply:
|
||||
- vdd_s3-supply:
|
||||
|
@ -63,6 +68,35 @@ Regulator nodes are identified by their compatible:
|
|||
Definition: reference to regulator supplying the input pin, as
|
||||
described in the data sheet
|
||||
|
||||
- vdd_s1-supply:
|
||||
- vdd_s2-supply:
|
||||
- vdd_s3-supply:
|
||||
- vdd_s4-supply:
|
||||
- vdd_s5-supply:
|
||||
- vdd_s6-supply:
|
||||
- vdd_s7-supply:
|
||||
- vdd_s8-supply:
|
||||
- vdd_s9-supply:
|
||||
- vdd_s10-supply:
|
||||
- vdd_s11-supply:
|
||||
- vdd_s12-supply:
|
||||
- vdd_l1_l11-supply:
|
||||
- vdd_l2_l3_l4_l27-supply:
|
||||
- vdd_l5_l7-supply:
|
||||
- vdd_l6_l12_l14_l15_l26-supply:
|
||||
- vdd_l8-supply:
|
||||
- vdd_l9_l10_l13_l20_l23_l24-supply:
|
||||
- vdd_l16_l25-supply:
|
||||
- vdd_l17-supply:
|
||||
- vdd_l18-supply:
|
||||
- vdd_l19-supply:
|
||||
- vdd_l21-supply:
|
||||
- vdd_l22-supply:
|
||||
Usage: optional (pma8084 only)
|
||||
Value type: <phandle>
|
||||
Definition: reference to regulator supplying the input pin, as
|
||||
described in the data sheet
|
||||
|
||||
The regulator node houses sub-nodes for each regulator within the device. Each
|
||||
sub-node is identified using the node's name, with valid values listed for each
|
||||
of the pmics below.
|
||||
|
@ -70,11 +104,20 @@ of the pmics below.
|
|||
pm8841:
|
||||
s1, s2, s3, s4, s5, s6, s7, s8
|
||||
|
||||
pm8916:
|
||||
s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13,
|
||||
l14, l15, l16, l17, l18
|
||||
|
||||
pm8941:
|
||||
s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13,
|
||||
l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, lvs1, lvs2,
|
||||
lvs3, 5vs1, 5vs2
|
||||
|
||||
pma8084:
|
||||
s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, l1, l2, l3, l4, l5,
|
||||
l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18, l19, l20,
|
||||
l21, l22, l23, l24, l25, l26, l27, lvs1, lvs2, lvs3, lvs4, 5vs1
|
||||
|
||||
The content of each sub-node is defined by the standard binding for regulators -
|
||||
see regulator.txt.
|
||||
|
||||
|
@ -114,4 +157,3 @@ see regulator.txt.
|
|||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -1,163 +0,0 @@
|
|||
* Samsung S5M8767 Voltage and Current Regulator
|
||||
|
||||
The Samsung S5M8767 is a multi-function device which includes voltage and
|
||||
current regulators, rtc, charger controller and other sub-blocks. It is
|
||||
interfaced to the host controller using a i2c interface. Each sub-block is
|
||||
addressed by the host system using different i2c slave address. This document
|
||||
describes the bindings for 'pmic' sub-block of s5m8767.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "samsung,s5m8767-pmic".
|
||||
- reg: Specifies the i2c slave address of the pmic block. It should be 0x66.
|
||||
|
||||
- s5m8767,pmic-buck2-dvs-voltage: A set of 8 voltage values in micro-volt (uV)
|
||||
units for buck2 when changing voltage using gpio dvs. Refer to [1] below
|
||||
for additional information.
|
||||
|
||||
- s5m8767,pmic-buck3-dvs-voltage: A set of 8 voltage values in micro-volt (uV)
|
||||
units for buck3 when changing voltage using gpio dvs. Refer to [1] below
|
||||
for additional information.
|
||||
|
||||
- s5m8767,pmic-buck4-dvs-voltage: A set of 8 voltage values in micro-volt (uV)
|
||||
units for buck4 when changing voltage using gpio dvs. Refer to [1] below
|
||||
for additional information.
|
||||
|
||||
- s5m8767,pmic-buck-ds-gpios: GPIO specifiers for three host gpio's used
|
||||
for selecting GPIO DVS lines. It is one-to-one mapped to dvs gpio lines.
|
||||
|
||||
[1] If none of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional
|
||||
property is specified, the 's5m8767,pmic-buck[2/3/4]-dvs-voltage'
|
||||
property should specify atleast one voltage level (which would be a
|
||||
safe operating voltage).
|
||||
|
||||
If either of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional
|
||||
property is specified, then all the eight voltage values for the
|
||||
's5m8767,pmic-buck[2/3/4]-dvs-voltage' should be specified.
|
||||
|
||||
Optional properties:
|
||||
- interrupt-parent: Specifies the phandle of the interrupt controller to which
|
||||
the interrupts from s5m8767 are delivered to.
|
||||
- interrupts: Interrupt specifiers for two interrupt sources.
|
||||
- First interrupt specifier is for 'irq1' interrupt.
|
||||
- Second interrupt specifier is for 'alert' interrupt.
|
||||
- s5m8767,pmic-buck2-uses-gpio-dvs: 'buck2' can be controlled by gpio dvs.
|
||||
- s5m8767,pmic-buck3-uses-gpio-dvs: 'buck3' can be controlled by gpio dvs.
|
||||
- s5m8767,pmic-buck4-uses-gpio-dvs: 'buck4' can be controlled by gpio dvs.
|
||||
|
||||
Additional properties required if either of the optional properties are used:
|
||||
|
||||
- s5m8767,pmic-buck234-default-dvs-idx: Default voltage setting selected from
|
||||
the possible 8 options selectable by the dvs gpios. The value of this
|
||||
property should be between 0 and 7. If not specified or if out of range, the
|
||||
default value of this property is set to 0.
|
||||
|
||||
- s5m8767,pmic-buck-dvs-gpios: GPIO specifiers for three host gpio's used
|
||||
for dvs. The format of the gpio specifier depends in the gpio controller.
|
||||
|
||||
Regulators: The regulators of s5m8767 that have to be instantiated should be
|
||||
included in a sub-node named 'regulators'. Regulator nodes included in this
|
||||
sub-node should be of the format as listed below.
|
||||
|
||||
regulator_name {
|
||||
ldo1_reg: LDO1 {
|
||||
regulator-name = "VDD_ALIVE_1.0V";
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
op_mode = <1>; /* Normal Mode */
|
||||
};
|
||||
};
|
||||
The above regulator entries are defined in regulator bindings documentation
|
||||
except these properties:
|
||||
- op_mode: describes the different operating modes of the LDO's with
|
||||
power mode change in SOC. The different possible values are,
|
||||
0 - always off mode
|
||||
1 - on in normal mode
|
||||
2 - low power mode
|
||||
3 - suspend mode
|
||||
- s5m8767,pmic-ext-control-gpios: (optional) GPIO specifier for one
|
||||
GPIO controlling this regulator (enable/disable); This is
|
||||
valid only for buck9.
|
||||
|
||||
The following are the names of the regulators that the s5m8767 pmic block
|
||||
supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
|
||||
as per the datasheet of s5m8767.
|
||||
|
||||
- LDOn
|
||||
- valid values for n are 1 to 28
|
||||
- Example: LDO1, LDO2, LDO28
|
||||
- BUCKn
|
||||
- valid values for n are 1 to 9.
|
||||
- Example: BUCK1, BUCK2, BUCK9
|
||||
|
||||
The bindings inside the regulator nodes use the standard regulator bindings
|
||||
which are documented elsewhere.
|
||||
|
||||
Example:
|
||||
|
||||
s5m8767_pmic@66 {
|
||||
compatible = "samsung,s5m8767-pmic";
|
||||
reg = <0x66>;
|
||||
|
||||
s5m8767,pmic-buck2-uses-gpio-dvs;
|
||||
s5m8767,pmic-buck3-uses-gpio-dvs;
|
||||
s5m8767,pmic-buck4-uses-gpio-dvs;
|
||||
|
||||
s5m8767,pmic-buck-default-dvs-idx = <0>;
|
||||
|
||||
s5m8767,pmic-buck-dvs-gpios = <&gpx0 0 0>, /* DVS1 */
|
||||
<&gpx0 1 0>, /* DVS2 */
|
||||
<&gpx0 2 0>; /* DVS3 */
|
||||
|
||||
s5m8767,pmic-buck-ds-gpios = <&gpx2 3 0>, /* SET1 */
|
||||
<&gpx2 4 0>, /* SET2 */
|
||||
<&gpx2 5 0>; /* SET3 */
|
||||
|
||||
s5m8767,pmic-buck2-dvs-voltage = <1350000>, <1300000>,
|
||||
<1250000>, <1200000>,
|
||||
<1150000>, <1100000>,
|
||||
<1000000>, <950000>;
|
||||
|
||||
s5m8767,pmic-buck3-dvs-voltage = <1100000>, <1100000>,
|
||||
<1100000>, <1100000>,
|
||||
<1000000>, <1000000>,
|
||||
<1000000>, <1000000>;
|
||||
|
||||
s5m8767,pmic-buck4-dvs-voltage = <1200000>, <1200000>,
|
||||
<1200000>, <1200000>,
|
||||
<1200000>, <1200000>,
|
||||
<1200000>, <1200000>;
|
||||
|
||||
regulators {
|
||||
ldo1_reg: LDO1 {
|
||||
regulator-name = "VDD_ABB_3.3V";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
op_mode = <1>; /* Normal Mode */
|
||||
};
|
||||
|
||||
ldo2_reg: LDO2 {
|
||||
regulator-name = "VDD_ALIVE_1.1V";
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
buck1_reg: BUCK1 {
|
||||
regulator-name = "VDD_MIF_1.2V";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vemmc_reg: BUCK9 {
|
||||
regulator-name = "VMEM_VDD_2.8V";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
op_mode = <3>; /* Standby Mode */
|
||||
s5m8767,pmic-ext-control-gpios = <&gpk0 2 0>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -0,0 +1,79 @@
|
|||
Binding for Samsung S2MPA01 regulator block
|
||||
===========================================
|
||||
|
||||
This is a part of device tree bindings for S2M family multi-function devices.
|
||||
More information can be found in bindings/mfd/sec-core.txt file.
|
||||
|
||||
The S2MPA01 device provide buck and LDO regulators.
|
||||
|
||||
To register these with regulator framework instantiate under main device node
|
||||
a sub-node named "regulators" with more sub-nodes for each regulator using the
|
||||
common regulator binding documented in:
|
||||
- Documentation/devicetree/bindings/regulator/regulator.txt
|
||||
|
||||
|
||||
Names of regulators supported by S2MPA01 device:
|
||||
- LDOn
|
||||
- valid values for n are 1 to 26
|
||||
- Example: LDO1, LD02, LDO26
|
||||
- BUCKn
|
||||
- valid values for n are 1 to 10.
|
||||
- Example: BUCK1, BUCK2, BUCK9
|
||||
Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
|
||||
as per the datasheet of device.
|
||||
|
||||
|
||||
Optional properties of buck regulator nodes under "regulators" sub-node:
|
||||
- regulator-ramp-delay: ramp delay in uV/us. May be 6250, 12500
|
||||
(default), 25000, or 50000. May be 0 for disabling the ramp delay on
|
||||
BUCK{1,2,3,4}.
|
||||
|
||||
In the absence of the regulator-ramp-delay property, the default ramp
|
||||
delay will be used.
|
||||
|
||||
Note: Some bucks share the ramp rate setting i.e. same ramp value
|
||||
will be set for a particular group of bucks so provide the same
|
||||
regulator-ramp-delay value for them.
|
||||
Groups sharing ramp rate:
|
||||
- buck{1,6},
|
||||
- buck{2,4},
|
||||
- buck{8,9,10}.
|
||||
|
||||
Example:
|
||||
|
||||
s2mpa01_pmic@66 {
|
||||
compatible = "samsung,s2mpa01-pmic";
|
||||
reg = <0x66>;
|
||||
|
||||
regulators {
|
||||
ldo1_reg: LDO1 {
|
||||
regulator-name = "VDD_ALIVE";
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
};
|
||||
|
||||
ldo2_reg: LDO2 {
|
||||
regulator-name = "VDDQ_MMC2";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
buck1_reg: BUCK1 {
|
||||
regulator-name = "vdd_mif";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
buck2_reg: BUCK2 {
|
||||
regulator-name = "vdd_arm";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-ramp-delay = <50000>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -0,0 +1,102 @@
|
|||
Binding for Samsung S2M family regulator block
|
||||
==============================================
|
||||
|
||||
This is a part of device tree bindings for S2M family multi-function devices.
|
||||
More information can be found in bindings/mfd/sec-core.txt file.
|
||||
|
||||
The S2MPS11/13/14/15 and S2MPU02 devices provide buck and LDO regulators.
|
||||
|
||||
To register these with regulator framework instantiate under main device node
|
||||
a sub-node named "regulators" with more sub-nodes for each regulator using the
|
||||
common regulator binding documented in:
|
||||
- Documentation/devicetree/bindings/regulator/regulator.txt
|
||||
|
||||
|
||||
Names of regulators supported by different devices:
|
||||
- LDOn
|
||||
- valid values for n are:
|
||||
- S2MPS11: 1 to 38
|
||||
- S2MPS13: 1 to 40
|
||||
- S2MPS14: 1 to 25
|
||||
- S2MPS15: 1 to 27
|
||||
- S2MPU02: 1 to 28
|
||||
- Example: LDO1, LDO2, LDO28
|
||||
- BUCKn
|
||||
- valid values for n are:
|
||||
- S2MPS11: 1 to 10
|
||||
- S2MPS13: 1 to 10
|
||||
- S2MPS14: 1 to 5
|
||||
- S2MPS15: 1 to 10
|
||||
- S2MPU02: 1 to 7
|
||||
- Example: BUCK1, BUCK2, BUCK9
|
||||
Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
|
||||
as per the datasheet of device.
|
||||
|
||||
|
||||
Optional properties of the nodes under "regulators" sub-node:
|
||||
- regulator-ramp-delay: ramp delay in uV/us. May be 6250, 12500,
|
||||
25000 (default) or 50000.
|
||||
|
||||
Additionally S2MPS11 supports disabling ramp delay for BUCK{2,3,4,6}
|
||||
by setting it to <0>.
|
||||
|
||||
Note: On S2MPS11 some bucks share the ramp rate setting i.e. same ramp value
|
||||
will be set for a particular group of bucks so provide the same
|
||||
regulator-ramp-delay value for them.
|
||||
Groups sharing ramp rate:
|
||||
- buck{1,6},
|
||||
- buck{3,4},
|
||||
- buck{7,8,10}.
|
||||
|
||||
- samsung,ext-control-gpios: On S2MPS14 the LDO10, LDO11 and LDO12 can be
|
||||
configured to external control over GPIO. To turn this feature on this
|
||||
property must be added to the regulator sub-node:
|
||||
- samsung,ext-control-gpios: GPIO specifier for one GPIO
|
||||
controlling this regulator (enable/disable)
|
||||
Example:
|
||||
LDO12 {
|
||||
regulator-name = "V_EMMC_2.8V";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
samsung,ext-control-gpios = <&gpk0 2 0>;
|
||||
};
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
s2mps11_pmic@66 {
|
||||
compatible = "samsung,s2mps11-pmic";
|
||||
reg = <0x66>;
|
||||
|
||||
regulators {
|
||||
ldo1_reg: LDO1 {
|
||||
regulator-name = "VDD_ABB_3.3V";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
ldo2_reg: LDO2 {
|
||||
regulator-name = "VDD_ALIVE_1.1V";
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
buck1_reg: BUCK1 {
|
||||
regulator-name = "vdd_mif";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
buck2_reg: BUCK2 {
|
||||
regulator-name = "vdd_arm";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-ramp-delay = <50000>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -0,0 +1,145 @@
|
|||
Binding for Samsung S5M8767 regulator block
|
||||
===========================================
|
||||
|
||||
This is a part of device tree bindings for S5M family multi-function devices.
|
||||
More information can be found in bindings/mfd/sec-core.txt file.
|
||||
|
||||
The S5M8767 device provide buck and LDO regulators.
|
||||
|
||||
To register these with regulator framework instantiate under main device node
|
||||
a sub-node named "regulators" with more sub-nodes for each regulator using the
|
||||
common regulator binding documented in:
|
||||
- Documentation/devicetree/bindings/regulator/regulator.txt
|
||||
|
||||
|
||||
Required properties of the main device node (the parent!):
|
||||
- s5m8767,pmic-buck2-dvs-voltage: A set of 8 voltage values in micro-volt (uV)
|
||||
units for buck2 when changing voltage using gpio dvs. Refer to [1] below
|
||||
for additional information.
|
||||
|
||||
- s5m8767,pmic-buck3-dvs-voltage: A set of 8 voltage values in micro-volt (uV)
|
||||
units for buck3 when changing voltage using gpio dvs. Refer to [1] below
|
||||
for additional information.
|
||||
|
||||
- s5m8767,pmic-buck4-dvs-voltage: A set of 8 voltage values in micro-volt (uV)
|
||||
units for buck4 when changing voltage using gpio dvs. Refer to [1] below
|
||||
for additional information.
|
||||
|
||||
- s5m8767,pmic-buck-ds-gpios: GPIO specifiers for three host gpio's used
|
||||
for selecting GPIO DVS lines. It is one-to-one mapped to dvs gpio lines.
|
||||
|
||||
[1] If none of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional
|
||||
property is specified, the 's5m8767,pmic-buck[2/3/4]-dvs-voltage'
|
||||
property should specify atleast one voltage level (which would be a
|
||||
safe operating voltage).
|
||||
|
||||
If either of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional
|
||||
property is specified, then all the eight voltage values for the
|
||||
's5m8767,pmic-buck[2/3/4]-dvs-voltage' should be specified.
|
||||
|
||||
Optional properties of the main device node (the parent!):
|
||||
- s5m8767,pmic-buck2-uses-gpio-dvs: 'buck2' can be controlled by gpio dvs.
|
||||
- s5m8767,pmic-buck3-uses-gpio-dvs: 'buck3' can be controlled by gpio dvs.
|
||||
- s5m8767,pmic-buck4-uses-gpio-dvs: 'buck4' can be controlled by gpio dvs.
|
||||
|
||||
Additional properties required if either of the optional properties are used:
|
||||
|
||||
- s5m8767,pmic-buck234-default-dvs-idx: Default voltage setting selected from
|
||||
the possible 8 options selectable by the dvs gpios. The value of this
|
||||
property should be between 0 and 7. If not specified or if out of range, the
|
||||
default value of this property is set to 0.
|
||||
|
||||
- s5m8767,pmic-buck-dvs-gpios: GPIO specifiers for three host gpio's used
|
||||
for dvs. The format of the gpio specifier depends in the gpio controller.
|
||||
|
||||
|
||||
Names of regulators supported by S5M8767 device:
|
||||
- LDOn
|
||||
- valid values for n are 1 to 28
|
||||
- Example: LDO1, LDO2, LDO28
|
||||
- BUCKn
|
||||
- valid values for n are 1 to 9.
|
||||
- Example: BUCK1, BUCK2, BUCK9
|
||||
Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
|
||||
as per the datasheet of device.
|
||||
|
||||
|
||||
Optional properties of the nodes under "regulators" sub-node:
|
||||
- op_mode: describes the different operating modes of the LDO's with
|
||||
power mode change in SOC. The different possible values are,
|
||||
0 - always off mode
|
||||
1 - on in normal mode
|
||||
2 - low power mode
|
||||
3 - suspend mode
|
||||
- s5m8767,pmic-ext-control-gpios: (optional) GPIO specifier for one
|
||||
GPIO controlling this regulator
|
||||
(enable/disable); This is valid only
|
||||
for buck9.
|
||||
|
||||
Example:
|
||||
|
||||
s5m8767_pmic@66 {
|
||||
compatible = "samsung,s5m8767-pmic";
|
||||
reg = <0x66>;
|
||||
|
||||
s5m8767,pmic-buck2-uses-gpio-dvs;
|
||||
s5m8767,pmic-buck3-uses-gpio-dvs;
|
||||
s5m8767,pmic-buck4-uses-gpio-dvs;
|
||||
|
||||
s5m8767,pmic-buck-default-dvs-idx = <0>;
|
||||
|
||||
s5m8767,pmic-buck-dvs-gpios = <&gpx0 0 0>, /* DVS1 */
|
||||
<&gpx0 1 0>, /* DVS2 */
|
||||
<&gpx0 2 0>; /* DVS3 */
|
||||
|
||||
s5m8767,pmic-buck-ds-gpios = <&gpx2 3 0>, /* SET1 */
|
||||
<&gpx2 4 0>, /* SET2 */
|
||||
<&gpx2 5 0>; /* SET3 */
|
||||
|
||||
s5m8767,pmic-buck2-dvs-voltage = <1350000>, <1300000>,
|
||||
<1250000>, <1200000>,
|
||||
<1150000>, <1100000>,
|
||||
<1000000>, <950000>;
|
||||
|
||||
s5m8767,pmic-buck3-dvs-voltage = <1100000>, <1100000>,
|
||||
<1100000>, <1100000>,
|
||||
<1000000>, <1000000>,
|
||||
<1000000>, <1000000>;
|
||||
|
||||
s5m8767,pmic-buck4-dvs-voltage = <1200000>, <1200000>,
|
||||
<1200000>, <1200000>,
|
||||
<1200000>, <1200000>,
|
||||
<1200000>, <1200000>;
|
||||
|
||||
regulators {
|
||||
ldo1_reg: LDO1 {
|
||||
regulator-name = "VDD_ABB_3.3V";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
op_mode = <1>; /* Normal Mode */
|
||||
};
|
||||
|
||||
ldo2_reg: LDO2 {
|
||||
regulator-name = "VDD_ALIVE_1.1V";
|
||||
regulator-min-microvolt = <1100000>;
|
||||
regulator-max-microvolt = <1100000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
buck1_reg: BUCK1 {
|
||||
regulator-name = "VDD_MIF_1.2V";
|
||||
regulator-min-microvolt = <950000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vemmc_reg: BUCK9 {
|
||||
regulator-name = "VMEM_VDD_2.8V";
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
op_mode = <3>; /* Standby Mode */
|
||||
s5m8767,pmic-ext-control-gpios = <&gpk0 2 0>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -0,0 +1,69 @@
|
|||
* HiSilicon SAS controller
|
||||
|
||||
The HiSilicon SAS controller supports SAS/SATA.
|
||||
|
||||
Main node required properties:
|
||||
- compatible : value should be as follows:
|
||||
(a) "hisilicon,hip05-sas-v1" for v1 hw in hip05 chipset
|
||||
- sas-addr : array of 8 bytes for host SAS address
|
||||
- reg : Address and length of the SAS register
|
||||
- hisilicon,sas-syscon: phandle of syscon used for sas control
|
||||
- ctrl-reset-reg : offset to controller reset register in ctrl reg
|
||||
- ctrl-reset-sts-reg : offset to controller reset status register in ctrl reg
|
||||
- ctrl-clock-ena-reg : offset to controller clock enable register in ctrl reg
|
||||
- queue-count : number of delivery and completion queues in the controller
|
||||
- phy-count : number of phys accessible by the controller
|
||||
- interrupts : Interrupts for phys, completion queues, and fatal
|
||||
sources; the interrupts are ordered in 3 groups, as follows:
|
||||
- Phy interrupts
|
||||
- Completion queue interrupts
|
||||
- Fatal interrupts
|
||||
Phy interrupts : Each phy has 3 interrupt sources:
|
||||
- broadcast
|
||||
- phyup
|
||||
- abnormal
|
||||
The phy interrupts are ordered into groups of 3 per phy
|
||||
(broadcast, phyup, and abnormal) in increasing order.
|
||||
Completion queue interrupts : each completion queue has 1
|
||||
interrupt source.
|
||||
The interrupts are ordered in increasing order.
|
||||
Fatal interrupts : the fatal interrupts are ordered as follows:
|
||||
- ECC
|
||||
- AXI bus
|
||||
|
||||
Example:
|
||||
sas0: sas@c1000000 {
|
||||
compatible = "hisilicon,hip05-sas-v1";
|
||||
sas-addr = [50 01 88 20 16 00 00 0a];
|
||||
reg = <0x0 0xc1000000 0x0 0x10000>;
|
||||
hisilicon,sas-syscon = <&pcie_sas>;
|
||||
ctrl-reset-reg = <0xa60>;
|
||||
ctrl-reset-sts-reg = <0x5a30>;
|
||||
ctrl-clock-ena-reg = <0x338>;
|
||||
queue-count = <32>;
|
||||
phy-count = <8>;
|
||||
dma-coherent;
|
||||
interrupt-parent = <&mbigen_dsa>;
|
||||
interrupts = <259 4>,<263 4>,<264 4>,/* phy0 */
|
||||
<269 4>,<273 4>,<274 4>,/* phy1 */
|
||||
<279 4>,<283 4>,<284 4>,/* phy2 */
|
||||
<289 4>,<293 4>,<294 4>,/* phy3 */
|
||||
<299 4>,<303 4>,<304 4>,/* phy4 */
|
||||
<309 4>,<313 4>,<314 4>,/* phy5 */
|
||||
<319 4>,<323 4>,<324 4>,/* phy6 */
|
||||
<329 4>,<333 4>,<334 4>,/* phy7 */
|
||||
<336 1>,<337 1>,<338 1>,/* cq0-2 */
|
||||
<339 1>,<340 1>,<341 1>,/* cq3-5 */
|
||||
<342 1>,<343 1>,<344 1>,/* cq6-8 */
|
||||
<345 1>,<346 1>,<347 1>,/* cq9-11 */
|
||||
<348 1>,<349 1>,<350 1>,/* cq12-14 */
|
||||
<351 1>,<352 1>,<353 1>,/* cq15-17 */
|
||||
<354 1>,<355 1>,<356 1>,/* cq18-20 */
|
||||
<357 1>,<358 1>,<359 1>,/* cq21-23 */
|
||||
<360 1>,<361 1>,<362 1>,/* cq24-26 */
|
||||
<363 1>,<364 1>,<365 1>,/* cq27-29 */
|
||||
<366 1>,<367 1>/* cq30-31 */
|
||||
<376 4>,/* fatal ecc */
|
||||
<381 4>;/* fatal axi */
|
||||
status = "disabled";
|
||||
};
|
|
@ -14,7 +14,6 @@ Required properties:
|
|||
tegra132, or tegra210.
|
||||
- "nxp,lpc3220-uart"
|
||||
- "ralink,rt2880-uart"
|
||||
- "ibm,qpace-nwp-serial"
|
||||
- "altr,16550-FIFO32"
|
||||
- "altr,16550-FIFO64"
|
||||
- "altr,16550-FIFO128"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Required properties:
|
||||
|
||||
- compatible: Must contain one of the following:
|
||||
- compatible: Must contain one or more of the following:
|
||||
|
||||
- "renesas,scif-r7s72100" for R7S72100 (RZ/A1H) SCIF compatible UART.
|
||||
- "renesas,scifa-r8a73a4" for R8A73A4 (R-Mobile APE6) SCIFA compatible UART.
|
||||
|
@ -15,10 +15,14 @@ Required properties:
|
|||
- "renesas,scifa-r8a7790" for R8A7790 (R-Car H2) SCIFA compatible UART.
|
||||
- "renesas,scifb-r8a7790" for R8A7790 (R-Car H2) SCIFB compatible UART.
|
||||
- "renesas,hscif-r8a7790" for R8A7790 (R-Car H2) HSCIF compatible UART.
|
||||
- "renesas,scif-r8a7791" for R8A7791 (R-Car M2) SCIF compatible UART.
|
||||
- "renesas,scifa-r8a7791" for R8A7791 (R-Car M2) SCIFA compatible UART.
|
||||
- "renesas,scifb-r8a7791" for R8A7791 (R-Car M2) SCIFB compatible UART.
|
||||
- "renesas,hscif-r8a7791" for R8A7791 (R-Car M2) HSCIF compatible UART.
|
||||
- "renesas,scif-r8a7791" for R8A7791 (R-Car M2-W) SCIF compatible UART.
|
||||
- "renesas,scifa-r8a7791" for R8A7791 (R-Car M2-W) SCIFA compatible UART.
|
||||
- "renesas,scifb-r8a7791" for R8A7791 (R-Car M2-W) SCIFB compatible UART.
|
||||
- "renesas,hscif-r8a7791" for R8A7791 (R-Car M2-W) HSCIF compatible UART.
|
||||
- "renesas,scif-r8a7793" for R8A7793 (R-Car M2-N) SCIF compatible UART.
|
||||
- "renesas,scifa-r8a7793" for R8A7793 (R-Car M2-N) SCIFA compatible UART.
|
||||
- "renesas,scifb-r8a7793" for R8A7793 (R-Car M2-N) SCIFB compatible UART.
|
||||
- "renesas,hscif-r8a7793" for R8A7793 (R-Car M2-N) HSCIF compatible UART.
|
||||
- "renesas,scif-r8a7794" for R8A7794 (R-Car E2) SCIF compatible UART.
|
||||
- "renesas,scifa-r8a7794" for R8A7794 (R-Car E2) SCIFA compatible UART.
|
||||
- "renesas,scifb-r8a7794" for R8A7794 (R-Car E2) SCIFB compatible UART.
|
||||
|
@ -27,6 +31,14 @@ Required properties:
|
|||
- "renesas,hscif-r8a7795" for R8A7795 (R-Car H3) HSCIF compatible UART.
|
||||
- "renesas,scifa-sh73a0" for SH73A0 (SH-Mobile AG5) SCIFA compatible UART.
|
||||
- "renesas,scifb-sh73a0" for SH73A0 (SH-Mobile AG5) SCIFB compatible UART.
|
||||
- "renesas,rcar-gen1-scif" for R-Car Gen1 SCIF compatible UART,
|
||||
- "renesas,rcar-gen2-scif" for R-Car Gen2 SCIF compatible UART,
|
||||
- "renesas,rcar-gen3-scif" for R-Car Gen3 SCIF compatible UART,
|
||||
- "renesas,rcar-gen2-scifa" for R-Car Gen2 SCIFA compatible UART,
|
||||
- "renesas,rcar-gen2-scifb" for R-Car Gen2 SCIFB compatible UART,
|
||||
- "renesas,rcar-gen1-hscif" for R-Car Gen1 HSCIF compatible UART,
|
||||
- "renesas,rcar-gen2-hscif" for R-Car Gen2 HSCIF compatible UART,
|
||||
- "renesas,rcar-gen3-hscif" for R-Car Gen3 HSCIF compatible UART,
|
||||
- "renesas,scif" for generic SCIF compatible UART.
|
||||
- "renesas,scifa" for generic SCIFA compatible UART.
|
||||
- "renesas,scifb" for generic SCIFB compatible UART.
|
||||
|
@ -34,15 +46,26 @@ Required properties:
|
|||
- "renesas,sci" for generic SCI compatible UART.
|
||||
|
||||
When compatible with the generic version, nodes must list the
|
||||
SoC-specific version corresponding to the platform first followed by the
|
||||
generic version.
|
||||
SoC-specific version corresponding to the platform first, followed by the
|
||||
family-specific and/or generic versions.
|
||||
|
||||
- reg: Base address and length of the I/O registers used by the UART.
|
||||
- interrupts: Must contain an interrupt-specifier for the SCIx interrupt.
|
||||
|
||||
- clocks: Must contain a phandle and clock-specifier pair for each entry
|
||||
in clock-names.
|
||||
- clock-names: Must contain "sci_ick" for the SCIx UART interface clock.
|
||||
- clock-names: Must contain "fck" for the SCIx UART functional clock.
|
||||
Apart from the divided functional clock, there may be other possible
|
||||
sources for the sampling clock, depending on SCIx variant.
|
||||
On (H)SCI(F) and some SCIFA, an additional clock may be specified:
|
||||
- "hsck" for the optional external clock input (on HSCIF),
|
||||
- "sck" for the optional external clock input (on other variants).
|
||||
On UARTs equipped with a Baud Rate Generator for External Clock (BRG)
|
||||
(some SCIF and HSCIF), additional clocks may be specified:
|
||||
- "brg_int" for the optional internal clock source for the frequency
|
||||
divider (typically the (AXI or SHwy) bus clock),
|
||||
- "scif_clk" for the optional external clock source for the frequency
|
||||
divider (SCIF_CLK).
|
||||
|
||||
Note: Each enabled SCIx UART should have an alias correctly numbered in the
|
||||
"aliases" node.
|
||||
|
@ -58,12 +81,13 @@ Example:
|
|||
};
|
||||
|
||||
scifa0: serial@e6c40000 {
|
||||
compatible = "renesas,scifa-r8a7790", "renesas,scifa";
|
||||
compatible = "renesas,scifa-r8a7790",
|
||||
"renesas,rcar-gen2-scifa", "renesas,scifa";
|
||||
reg = <0 0xe6c40000 0 64>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 144 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&mstp2_clks R8A7790_CLK_SCIFA0>;
|
||||
clock-names = "sci_ick";
|
||||
clock-names = "fck";
|
||||
dmas = <&dmac0 0x21>, <&dmac0 0x22>;
|
||||
dma-names = "tx", "rx";
|
||||
};
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
Qualcomm Resource Power Manager (RPM) over SMD
|
||||
|
||||
This driver is used to interface with the Resource Power Manager (RPM) found in
|
||||
various Qualcomm platforms. The RPM allows each component in the system to vote
|
||||
for state of the system resources, such as clocks, regulators and bus
|
||||
frequencies.
|
||||
|
||||
The SMD information for the RPM edge should be filled out. See qcom,smd.txt for
|
||||
the required edge properties. All SMD related properties will reside within the
|
||||
RPM node itself.
|
||||
|
||||
= SUBDEVICES
|
||||
|
||||
The RPM exposes resources to its subnodes. The rpm_requests node must be
|
||||
present and this subnode may contain children that designate regulator
|
||||
resources.
|
||||
|
||||
- compatible:
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: must be one of:
|
||||
"qcom,rpm-apq8084"
|
||||
"qcom,rpm-msm8916"
|
||||
"qcom,rpm-msm8974"
|
||||
|
||||
- qcom,smd-channels:
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: must be "rpm_requests"
|
||||
|
||||
Refer to Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.txt
|
||||
for information on the regulator subnodes that can exist under the rpm_requests.
|
||||
|
||||
Example:
|
||||
|
||||
soc {
|
||||
apcs: syscon@f9011000 {
|
||||
compatible = "syscon";
|
||||
reg = <0xf9011000 0x1000>;
|
||||
};
|
||||
};
|
||||
|
||||
smd {
|
||||
compatible = "qcom,smd";
|
||||
|
||||
rpm {
|
||||
interrupts = <0 168 1>;
|
||||
qcom,ipc = <&apcs 8 0>;
|
||||
qcom,smd-edge = <15>;
|
||||
|
||||
rpm_requests {
|
||||
compatible = "qcom,rpm-msm8974";
|
||||
qcom,smd-channels = "rpm_requests";
|
||||
|
||||
...
|
||||
};
|
||||
};
|
||||
};
|
|
@ -16,6 +16,10 @@ Required properties:
|
|||
Required elements: "pclk", "gclk" and "aclk".
|
||||
- clocks
|
||||
Please refer to clock-bindings.txt.
|
||||
- assigned-clocks
|
||||
Should be <&classd_gclk>.
|
||||
- assigned-clock-parents
|
||||
Should be <&audio_pll_pmc>.
|
||||
|
||||
Optional properties:
|
||||
- pinctrl-names, pinctrl-0
|
||||
|
@ -43,6 +47,8 @@ classd: classd@fc048000 {
|
|||
dma-names = "tx";
|
||||
clocks = <&classd_clk>, <&classd_gclk>, <&audio_pll_pmc>;
|
||||
clock-names = "pclk", "gclk", "aclk";
|
||||
assigned-clocks = <&classd_gclk>;
|
||||
assigned-clock-parents = <&audio_pll_pmc>;
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_classd_default>;
|
||||
|
|
|
@ -30,7 +30,7 @@ Optional properties:
|
|||
- #interrupt-cells: the number of cells to describe an IRQ, this should be 2.
|
||||
The first cell is the IRQ number.
|
||||
The second cell is the flags, encoded as the trigger masks from
|
||||
Documentation/devicetree/bindings/interrupts.txt
|
||||
Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
|
||||
|
||||
- clocks : A list of up to two phandle and clock specifier pairs
|
||||
- clock-names : A list of clock names sorted in the same order as clocks.
|
||||
|
|
|
@ -10,6 +10,7 @@ Required properties:
|
|||
"renesas,msiof-r8a7792" (R-Car V2H)
|
||||
"renesas,msiof-r8a7793" (R-Car M2-N)
|
||||
"renesas,msiof-r8a7794" (R-Car E2)
|
||||
"renesas,msiof-sh73a0" (SH-Mobile AG5)
|
||||
- reg : A list of offsets and lengths of the register sets for
|
||||
the device.
|
||||
If only one register set is present, it is to be used
|
||||
|
|
|
@ -2,9 +2,10 @@ Binding for MTK SPI controller
|
|||
|
||||
Required properties:
|
||||
- compatible: should be one of the following.
|
||||
- mediatek,mt8173-spi: for mt8173 platforms
|
||||
- mediatek,mt8135-spi: for mt8135 platforms
|
||||
- mediatek,mt2701-spi: for mt2701 platforms
|
||||
- mediatek,mt6589-spi: for mt6589 platforms
|
||||
- mediatek,mt8135-spi: for mt8135 platforms
|
||||
- mediatek,mt8173-spi: for mt8173 platforms
|
||||
|
||||
- #address-cells: should be 1.
|
||||
|
||||
|
@ -29,10 +30,10 @@ Required properties:
|
|||
muxes clock, and "spi-clk" for the clock gate.
|
||||
|
||||
Optional properties:
|
||||
-cs-gpios: see spi-bus.txt, only required for MT8173.
|
||||
-cs-gpios: see spi-bus.txt.
|
||||
|
||||
- mediatek,pad-select: specify which pins group(ck/mi/mo/cs) spi
|
||||
controller used. This is a array, the element value should be 0~3,
|
||||
controller used. This is an array, the element value should be 0~3,
|
||||
only required for MT8173.
|
||||
0: specify GPIO69,70,71,72 for spi pins.
|
||||
1: specify GPIO102,103,104,105 for spi pins.
|
||||
|
|
|
@ -12,7 +12,7 @@ Required sub-node properties:
|
|||
- compatible : should be "rockchip,rk3066-smp-sram"
|
||||
|
||||
The rest of the properties should follow the generic mmio-sram discription
|
||||
found in ../../misc/sram.txt
|
||||
found in Documentation/devicetree/bindings/sram/sram.txt
|
||||
|
||||
Example:
|
||||
|
|
@ -15,7 +15,7 @@ Required sub-node properties:
|
|||
"samsung,exynos4210-sysram-ns" : for Non-secure SYSRAM
|
||||
|
||||
The rest of the properties should follow the generic mmio-sram discription
|
||||
found in ../../misc/sysram.txt
|
||||
found in Documentation/devicetree/bindings/sram/sram.txt
|
||||
|
||||
Example:
|
||||
|
|
@ -16,7 +16,7 @@ SRAM nodes
|
|||
----------
|
||||
|
||||
Each SRAM is described using the mmio-sram bindings documented in
|
||||
Documentation/devicetree/bindings/misc/sram.txt
|
||||
Documentation/devicetree/bindings/sram/sram.txt
|
||||
|
||||
Each SRAM will have SRAM sections that are going to be handled by the
|
||||
SRAM controller as subnodes. These sections are represented following
|
|
@ -0,0 +1,31 @@
|
|||
Hi6220 SoC ION
|
||||
===================================================================
|
||||
Required properties:
|
||||
- compatible : "hisilicon,hi6220-ion"
|
||||
- list of the ION heaps
|
||||
- heap name : maybe heap_sys_user@0
|
||||
- heap id : id should be unique in the system.
|
||||
- heap base : base ddr address of the heap,0 means that
|
||||
it is dynamic.
|
||||
- heap size : memory size and 0 means it is dynamic.
|
||||
- heap type : the heap type of the heap, please also
|
||||
see the define in ion.h(drivers/staging/android/uapi/ion.h)
|
||||
-------------------------------------------------------------------
|
||||
Example:
|
||||
hi6220-ion {
|
||||
compatible = "hisilicon,hi6220-ion";
|
||||
heap_sys_user@0 {
|
||||
heap-name = "sys_user";
|
||||
heap-id = <0x0>;
|
||||
heap-base = <0x0>;
|
||||
heap-size = <0x0>;
|
||||
heap-type = "ion_system";
|
||||
};
|
||||
heap_sys_contig@0 {
|
||||
heap-name = "sys_contig";
|
||||
heap-id = <0x1>;
|
||||
heap-base = <0x0>;
|
||||
heap-size = <0x0>;
|
||||
heap-type = "ion_system_contig";
|
||||
};
|
||||
};
|
|
@ -0,0 +1,63 @@
|
|||
* Thermal Monitoring Unit (TMU) on Freescale QorIQ SoCs
|
||||
|
||||
Required properties:
|
||||
- compatible : Must include "fsl,qoriq-tmu". The version of the device is
|
||||
determined by the TMU IP Block Revision Register (IPBRR0) at
|
||||
offset 0x0BF8.
|
||||
Table of correspondences between IPBRR0 values and example chips:
|
||||
Value Device
|
||||
---------- -----
|
||||
0x01900102 T1040
|
||||
- reg : Address range of TMU registers.
|
||||
- interrupts : Contains the interrupt for TMU.
|
||||
- fsl,tmu-range : The values to be programmed into TTRnCR, as specified by
|
||||
the SoC reference manual. The first cell is TTR0CR, the second is
|
||||
TTR1CR, etc.
|
||||
- fsl,tmu-calibration : A list of cell pairs containing temperature
|
||||
calibration data, as specified by the SoC reference manual.
|
||||
The first cell of each pair is the value to be written to TTCFGR,
|
||||
and the second is the value to be written to TSCFGR.
|
||||
|
||||
Example:
|
||||
|
||||
tmu@f0000 {
|
||||
compatible = "fsl,qoriq-tmu";
|
||||
reg = <0xf0000 0x1000>;
|
||||
interrupts = <18 2 0 0>;
|
||||
fsl,tmu-range = <0x000a0000 0x00090026 0x0008004a 0x0001006a>;
|
||||
fsl,tmu-calibration = <0x00000000 0x00000025
|
||||
0x00000001 0x00000028
|
||||
0x00000002 0x0000002d
|
||||
0x00000003 0x00000031
|
||||
0x00000004 0x00000036
|
||||
0x00000005 0x0000003a
|
||||
0x00000006 0x00000040
|
||||
0x00000007 0x00000044
|
||||
0x00000008 0x0000004a
|
||||
0x00000009 0x0000004f
|
||||
0x0000000a 0x00000054
|
||||
|
||||
0x00010000 0x0000000d
|
||||
0x00010001 0x00000013
|
||||
0x00010002 0x00000019
|
||||
0x00010003 0x0000001f
|
||||
0x00010004 0x00000025
|
||||
0x00010005 0x0000002d
|
||||
0x00010006 0x00000033
|
||||
0x00010007 0x00000043
|
||||
0x00010008 0x0000004b
|
||||
0x00010009 0x00000053
|
||||
|
||||
0x00020000 0x00000010
|
||||
0x00020001 0x00000017
|
||||
0x00020002 0x0000001f
|
||||
0x00020003 0x00000029
|
||||
0x00020004 0x00000031
|
||||
0x00020005 0x0000003c
|
||||
0x00020006 0x00000042
|
||||
0x00020007 0x0000004d
|
||||
0x00020008 0x00000056
|
||||
|
||||
0x00030000 0x00000012
|
||||
0x00030001 0x0000001d>;
|
||||
};
|
|
@ -4,6 +4,7 @@ Platform DesignWare HS OTG USB 2.0 controller
|
|||
Required properties:
|
||||
- compatible : One of:
|
||||
- brcm,bcm2835-usb: The DWC2 USB controller instance in the BCM2835 SoC.
|
||||
- hisilicon,hi6220-usb: The DWC2 USB controller instance in the hi6220 SoC.
|
||||
- rockchip,rk3066-usb: The DWC2 USB controller instance in the rk3066 Soc;
|
||||
- "rockchip,rk3188-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3188 Soc;
|
||||
- "rockchip,rk3288-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3288 Soc;
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
Xilinx SuperSpeed DWC3 USB SoC controller
|
||||
|
||||
Required properties:
|
||||
- compatible: Should contain "xlnx,zynqmp-dwc3"
|
||||
- clocks: A list of phandles for the clocks listed in clock-names
|
||||
- clock-names: Should contain the following:
|
||||
"bus_clk" Master/Core clock, have to be >= 125 MHz for SS
|
||||
operation and >= 60MHz for HS operation
|
||||
|
||||
"ref_clk" Clock source to core during PHY power down
|
||||
|
||||
Required child node:
|
||||
A child node must exist to represent the core DWC3 IP block. The name of
|
||||
the node is not important. The content of the node is defined in dwc3.txt.
|
||||
|
||||
Example device node:
|
||||
|
||||
usb@0 {
|
||||
#address-cells = <0x2>;
|
||||
#size-cells = <0x1>;
|
||||
status = "okay";
|
||||
compatible = "xlnx,zynqmp-dwc3";
|
||||
clock-names = "bus_clk" "ref_clk";
|
||||
clocks = <&clk125>, <&clk125>;
|
||||
ranges;
|
||||
|
||||
dwc3@fe200000 {
|
||||
compatible = "snps,dwc3";
|
||||
reg = <0x0 0xfe200000 0x40000>;
|
||||
interrupts = <0x0 0x41 0x4>;
|
||||
dr_mode = "host";
|
||||
};
|
||||
};
|
|
@ -0,0 +1,51 @@
|
|||
MT8173 xHCI
|
||||
|
||||
The device node for Mediatek SOC USB3.0 host controller
|
||||
|
||||
Required properties:
|
||||
- compatible : should contain "mediatek,mt8173-xhci"
|
||||
- reg : specifies physical base address and size of the registers,
|
||||
the first one for MAC, the second for IPPC
|
||||
- interrupts : interrupt used by the controller
|
||||
- power-domains : a phandle to USB power domain node to control USB's
|
||||
mtcmos
|
||||
- vusb33-supply : regulator of USB avdd3.3v
|
||||
|
||||
- clocks : a list of phandle + clock-specifier pairs, one for each
|
||||
entry in clock-names
|
||||
- clock-names : must contain
|
||||
"sys_ck": for clock of xHCI MAC
|
||||
"wakeup_deb_p0": for USB wakeup debounce clock of port0
|
||||
"wakeup_deb_p1": for USB wakeup debounce clock of port1
|
||||
|
||||
- phys : a list of phandle + phy specifier pairs
|
||||
|
||||
Optional properties:
|
||||
- mediatek,wakeup-src : 1: ip sleep wakeup mode; 2: line state wakeup
|
||||
mode;
|
||||
- mediatek,syscon-wakeup : phandle to syscon used to access USB wakeup
|
||||
control register, it depends on "mediatek,wakeup-src".
|
||||
- vbus-supply : reference to the VBUS regulator;
|
||||
- usb3-lpm-capable : supports USB3.0 LPM
|
||||
|
||||
Example:
|
||||
usb30: usb@11270000 {
|
||||
compatible = "mediatek,mt8173-xhci";
|
||||
reg = <0 0x11270000 0 0x1000>,
|
||||
<0 0x11280700 0 0x0100>;
|
||||
interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_LOW>;
|
||||
power-domains = <&scpsys MT8173_POWER_DOMAIN_USB>;
|
||||
clocks = <&topckgen CLK_TOP_USB30_SEL>,
|
||||
<&pericfg CLK_PERI_USB0>,
|
||||
<&pericfg CLK_PERI_USB1>;
|
||||
clock-names = "sys_ck",
|
||||
"wakeup_deb_p0",
|
||||
"wakeup_deb_p1";
|
||||
phys = <&phy_port0 PHY_TYPE_USB3>,
|
||||
<&phy_port1 PHY_TYPE_USB2>;
|
||||
vusb33-supply = <&mt6397_vusb_reg>;
|
||||
vbus-supply = <&usb_p1_vbus>;
|
||||
usb3-lpm-capable;
|
||||
mediatek,syscon-wakeup = <&pericfg>;
|
||||
mediatek,wakeup-src = <1>;
|
||||
};
|
|
@ -0,0 +1,62 @@
|
|||
OCTEON/OCTEON+ USB BLOCK
|
||||
|
||||
1) Main node
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: must be "cavium,octeon-5750-usbn"
|
||||
|
||||
- reg: specifies the physical base address of the USBN block and
|
||||
the length of the memory mapped region.
|
||||
|
||||
- #address-cells: specifies the number of cells needed to encode an
|
||||
address. The value must be 2.
|
||||
|
||||
- #size-cells: specifies the number of cells used to represent the size
|
||||
of an address. The value must be 2.
|
||||
|
||||
- ranges: specifies the translation between child address space and parent
|
||||
address space.
|
||||
|
||||
- clock-frequency: speed of the USB reference clock. Allowed values are
|
||||
12000000, 24000000 or 48000000.
|
||||
|
||||
- cavium,refclk-type: type of the USB reference clock. Allowed values are
|
||||
"crystal" or "external".
|
||||
|
||||
- refclk-frequency: deprecated, use "clock-frequency".
|
||||
|
||||
- refclk-type: deprecated, use "cavium,refclk-type".
|
||||
|
||||
2) Child node
|
||||
|
||||
The main node must have one child node which describes the built-in
|
||||
USB controller.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: must be "cavium,octeon-5750-usbc"
|
||||
|
||||
- reg: specifies the physical base address of the USBC block and
|
||||
the length of the memory mapped region.
|
||||
|
||||
- interrupts: specifies the interrupt number for the USB controller.
|
||||
|
||||
3) Example:
|
||||
|
||||
usbn: usbn@1180068000000 {
|
||||
compatible = "cavium,octeon-5750-usbn";
|
||||
reg = <0x11800 0x68000000 0x0 0x1000>;
|
||||
ranges; /* Direct mapping */
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
clock-frequency = <12000000>;
|
||||
cavium,refclk-type = "crystal";
|
||||
|
||||
usbc@16f0010000000 {
|
||||
compatible = "cavium,octeon-5750-usbc";
|
||||
reg = <0x16f00 0x10000000 0x0 0x80000>;
|
||||
interrupts = <0 56>;
|
||||
};
|
||||
};
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue