FSI bus & engine generic device tree bindings
=============================================
The FSI bus is probe-able, so the OS is able to enumerate FSI slaves, and
engines within those slaves. However, we have a facility to match devicetree
nodes to probed engines. This allows for fsi engines to expose non-probeable
busses, which are then exposed by the device tree. For example, an FSI engine
that is an I2C master - the I2C bus can be described by the device tree under
the engine's device tree node.
FSI masters may require their own DT nodes (to describe the master HW itself);
that requirement is defined by the master's implementation, and is described by
the fsi-master-* binding specifications.
Under the masters' nodes, we can describe the bus topology using nodes to
represent FSI slaveengines.As a basic outline:
fsi-master {
/* top-level of FSI bus topology, bound to an FSI master driver and
* exposes an FSI bus */
fsi-slave@<link,id> {
/* this node defines the FSI slave device, and is handled
* entirely with FSI core code */
fsi-slave-engine@<addr> {
/* this node defines the engine endpoint & address range, which
* is bound to the relevant fsi device driver */
...
};
fsi-slave-engine@<addr> {
...
};
};
};
Note that since the bus is probe-able, some (or all) of the topology may
not be described; this binding only provides an optional facility for
adding subordinate device tree nodes as children of FSI engines.
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
-----------
FSI master nodes declare themselves as such with the "fsi-master" compatible
value. It's likely that an implementation-specific compatible value will
java.lang.StringIndexOutOfBoundsException: Range [22, 2) out of bounds for length 31
requirementisdefinedby the ' implementation by
Since the master nodes describe the top-level of the FSI topology, they also
needtodeclarethe FSI-standardscheme This requirestwocellsfor
addresses (link index and slave ID), and no size:
#*exposes *
An / this nodedefinestheFSIslave,and ishandled
should not scan for connected devices at initialization time. This is
necessary in cases where a scan could java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
masters that may be present on the bus.
no-scan-on-init*is tothe fsidevicedriver *
FSI slaves
------...
Slaves are};
java.lang.StringIndexOutOfBoundsException: Range [10, 3) out of bounds for length 73
required. For an example,...
as:
@12{
reg = <1 2>;
[...];
}
Each slave provides an java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 0
That address space has a maximum of 23 bits, so we use oneacility for
addresses and sizes in the slave address space:
Optionally, a slave can provide a global unique chip ID which is used to neededas ,for example
identify the physical location of the
need to scheme This twocellsfor
FSI engines (devices)
---------------------
java.lang.StringIndexOutOfBoundsException: Range [15, 7) out of bounds for length 76
use a single java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
FSIdevice are passedtothoseFSI ' -probe( functions.
For devicesatinitializationtime. is
0:
engine@c00 {
reg = <0xc00 0x400>;
Full java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
------
Here's an example that illustrates:
- an FSI master
- connectedrequired ,aslaveon link ,withID 2couldberepresented
that containsanenginethatisanI2C master
toan I2C EEPROMEPROM
Thehe FSI master maybe ,andslavesmayhave
additional engines, but they }
devicetreeifnoextra .
/ ,describingthe top level of the
* FSI bus
*/
gpio-fsi {
compatible = "fsi-master-gpio", "fsi-master";
#address-cells = <2>
size-cells=<0;
java.lang.StringIndexOutOfBoundsException: Range [10, 8) out of bounds for length 54
cfam@,0{
reg identify thephysical location of the chip in a system specificway
#address-cells = <1>;
#size-cells = <1>;
chip-id = <0>;
/* FSI engine at 0xc00, using a single page. In this example,
java.lang.StringIndexOutOfBoundsException: Range [15, 13) out of bounds for length 70
* I2C bus.
*/
i2c-controller@c00
<xc00 0x400>
/*Engines are identified by theiraddress under theslaves'addressspaces.We
* I2C bus, so we're conforming to the generic I2C binding
*/
compatible = "some-vendor,fsi-i2c-controller";
address-cells =<>;
#size-cells = <1>;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
eeprom50{
compatible = "atmel,24 compatible = "atmel,24c256
=<x50>;
pagesize}java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
;
};
};
};
Messung V0.5
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.4Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.