Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d0fc2eaa authored by Kumar Gala's avatar Kumar Gala
Browse files

powerpc/fsl: Refactor device bindings



Moved Freescale SoC related bindings out of booting-without-of.txt and into
their own files.

Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
parent b93eeba4
Loading
Loading
Loading
Loading
+12 −1206

File changed.

Preview size limit exceeded, changes collapsed.

+29 −0
Original line number Diff line number Diff line
* Board Control and Status (BCSR)

Required properties:

 - device_type : Should be "board-control"
 - reg : Offset and length of the register set for the device

Example:

	bcsr@f8000000 {
		device_type = "board-control";
		reg = <f8000000 8000>;
	};

* Freescale on board FPGA

This is the memory-mapped registers for on board FPGA.

Required properities:
- compatible : should be "fsl,fpga-pixis".
- reg : should contain the address and the lenght of the FPPGA register
  set.

Example (MPC8610HPCD):

	board-control@e8000000 {
		compatible = "fsl,fpga-pixis";
		reg = <0xe8000000 32>;
	};
+67 −0
Original line number Diff line number Diff line
* Freescale Communications Processor Module

NOTE: This is an interim binding, and will likely change slightly,
as more devices are supported.  The QE bindings especially are
incomplete.

* Root CPM node

Properties:
- compatible : "fsl,cpm1", "fsl,cpm2", or "fsl,qe".
- reg : A 48-byte region beginning with CPCR.

Example:
     cpm@119c0 {
	#address-cells = <1>;
	#size-cells = <1>;
	#interrupt-cells = <2>;
	compatible = "fsl,mpc8272-cpm", "fsl,cpm2";
	reg = <119c0 30>;
     }

* Properties common to mulitple CPM/QE devices

- fsl,cpm-command : This value is ORed with the opcode and command flag
                    to specify the device on which a CPM command operates.

- fsl,cpm-brg : Indicates which baud rate generator the device
                is associated with.  If absent, an unused BRG
                should be dynamically allocated.  If zero, the
                device uses an external clock rather than a BRG.

- reg : Unless otherwise specified, the first resource represents the
        scc/fcc/ucc registers, and the second represents the device's
        parameter RAM region (if it has one).

* Multi-User RAM (MURAM)

The multi-user/dual-ported RAM is expressed as a bus under the CPM node.

Ranges must be set up subject to the following restrictions:

- Children's reg nodes must be offsets from the start of all muram, even
  if the user-data area does not begin at zero.
- If multiple range entries are used, the difference between the parent
  address and the child address must be the same in all, so that a single
  mapping can cover them all while maintaining the ability to determine
  CPM-side offsets with pointer subtraction.  It is recommended that
  multiple range entries not be used.
- A child address of zero must be translatable, even if no reg resources
  contain it.

A child "data" node must exist, compatible with "fsl,cpm-muram-data", to
indicate the portion of muram that is usable by the OS for arbitrary
purposes.  The data node may have an arbitrary number of reg resources,
all of which contribute to the allocatable muram pool.

Example, based on mpc8272:
	muram@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0 0 10000>;

		data@0 {
			compatible = "fsl,cpm-muram-data";
			reg = <0 2000 9800 800>;
		};
	};
+21 −0
Original line number Diff line number Diff line
* Baud Rate Generators

Currently defined compatibles:
fsl,cpm-brg
fsl,cpm1-brg
fsl,cpm2-brg

Properties:
- reg : There may be an arbitrary number of reg resources; BRG
  numbers are assigned to these in order.
- clock-frequency : Specifies the base frequency driving
  the BRG.

Example:
	brg@119f0 {
		compatible = "fsl,mpc8272-brg",
			     "fsl,cpm2-brg",
			     "fsl,cpm-brg";
		reg = <119f0 10 115f0 10>;
		clock-frequency = <d#25000000>;
	};
+41 −0
Original line number Diff line number Diff line
* I2C

The I2C controller is expressed as a bus under the CPM node.

Properties:
- compatible : "fsl,cpm1-i2c", "fsl,cpm2-i2c"
- reg : On CPM2 devices, the second resource doesn't specify the I2C
  Parameter RAM itself, but the I2C_BASE field of the CPM2 Parameter RAM
  (typically 0x8afc 0x2).
- #address-cells : Should be one. The cell is the i2c device address with
  the r/w bit set to zero.
- #size-cells : Should be zero.
- clock-frequency : Can be used to set the i2c clock frequency. If
  unspecified, a default frequency of 60kHz is being used.
The following two properties are deprecated. They are only used by legacy
i2c drivers to find the bus to probe:
- linux,i2c-index : Can be used to hard code an i2c bus number. By default,
  the bus number is dynamically assigned by the i2c core.
- linux,i2c-class : Can be used to override the i2c class. The class is used
  by legacy i2c device drivers to find a bus in a specific context like
  system management, video or sound. By default, I2C_CLASS_HWMON (1) is
  being used. The definition of the classes can be found in
  include/i2c/i2c.h

Example, based on mpc823:

	i2c@860 {
		compatible = "fsl,mpc823-i2c",
			     "fsl,cpm1-i2c";
		reg = <0x860 0x20 0x3c80 0x30>;
		interrupts = <16>;
		interrupt-parent = <&CPM_PIC>;
		fsl,cpm-command = <0x10>;
		#address-cells = <1>;
		#size-cells = <0>;

		rtc@68 {
			compatible = "dallas,ds1307";
			reg = <0x68>;
		};
	};
Loading