Merge branch 'merge' of git://git.secretlab.ca/git/linux-2.6
* 'merge' of git://git.secretlab.ca/git/linux-2.6: powerpc/5200: in lpbfifo, flag DMA irqs as enabled after requesting them powerpc/fsl: add device tree binding for QE firmware of/flattree: Fix unhandled OF_DT_NOP tag when unflattening the device tree
This commit is contained in:
commit
d4509e5a6e
@ -21,6 +21,15 @@ Required properties:
|
|||||||
- fsl,qe-num-snums: define how many serial number(SNUM) the QE can use for the
|
- fsl,qe-num-snums: define how many serial number(SNUM) the QE can use for the
|
||||||
threads.
|
threads.
|
||||||
|
|
||||||
|
Optional properties:
|
||||||
|
- fsl,firmware-phandle:
|
||||||
|
Usage: required only if there is no fsl,qe-firmware child node
|
||||||
|
Value type: <phandle>
|
||||||
|
Definition: Points to a firmware node (see "QE Firmware Node" below)
|
||||||
|
that contains the firmware that should be uploaded for this QE.
|
||||||
|
The compatible property for the firmware node should say,
|
||||||
|
"fsl,qe-firmware".
|
||||||
|
|
||||||
Recommended properties
|
Recommended properties
|
||||||
- brg-frequency : the internal clock source frequency for baud-rate
|
- brg-frequency : the internal clock source frequency for baud-rate
|
||||||
generators in Hz.
|
generators in Hz.
|
||||||
@ -59,3 +68,48 @@ Example:
|
|||||||
reg = <0 c000>;
|
reg = <0 c000>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
* QE Firmware Node
|
||||||
|
|
||||||
|
This node defines a firmware binary that is embedded in the device tree, for
|
||||||
|
the purpose of passing the firmware from bootloader to the kernel, or from
|
||||||
|
the hypervisor to the guest.
|
||||||
|
|
||||||
|
The firmware node itself contains the firmware binary contents, a compatible
|
||||||
|
property, and any firmware-specific properties. The node should be placed
|
||||||
|
inside a QE node that needs it. Doing so eliminates the need for a
|
||||||
|
fsl,firmware-phandle property. Other QE nodes that need the same firmware
|
||||||
|
should define an fsl,firmware-phandle property that points to the firmware node
|
||||||
|
in the first QE node.
|
||||||
|
|
||||||
|
The fsl,firmware property can be specified in the DTS (possibly using incbin)
|
||||||
|
or can be inserted by the boot loader at boot time.
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible
|
||||||
|
Usage: required
|
||||||
|
Value type: <string>
|
||||||
|
Definition: A standard property. Specify a string that indicates what
|
||||||
|
kind of firmware it is. For QE, this should be "fsl,qe-firmware".
|
||||||
|
|
||||||
|
- fsl,firmware
|
||||||
|
Usage: required
|
||||||
|
Value type: <prop-encoded-array>, encoded as an array of bytes
|
||||||
|
Definition: A standard property. This property contains the firmware
|
||||||
|
binary "blob".
|
||||||
|
|
||||||
|
Example:
|
||||||
|
qe1@e0080000 {
|
||||||
|
compatible = "fsl,qe";
|
||||||
|
qe_firmware:qe-firmware {
|
||||||
|
compatible = "fsl,qe-firmware";
|
||||||
|
fsl,firmware = [0x70 0xcd 0x00 0x00 0x01 0x46 0x45 ...];
|
||||||
|
};
|
||||||
|
...
|
||||||
|
};
|
||||||
|
|
||||||
|
qe2@e0090000 {
|
||||||
|
compatible = "fsl,qe";
|
||||||
|
fsl,firmware-phandle = <&qe_firmware>;
|
||||||
|
...
|
||||||
|
};
|
||||||
|
@ -481,6 +481,8 @@ mpc52xx_lpbfifo_probe(struct of_device *op, const struct of_device_id *match)
|
|||||||
if (rc)
|
if (rc)
|
||||||
goto err_bcom_rx_irq;
|
goto err_bcom_rx_irq;
|
||||||
|
|
||||||
|
lpbfifo.dma_irqs_enabled = 1;
|
||||||
|
|
||||||
/* Request the Bestcomm transmit (memory --> fifo) task and IRQ */
|
/* Request the Bestcomm transmit (memory --> fifo) task and IRQ */
|
||||||
lpbfifo.bcom_tx_task =
|
lpbfifo.bcom_tx_task =
|
||||||
bcom_gen_bd_tx_init(2, res.start + LPBFIFO_REG_FIFO_DATA,
|
bcom_gen_bd_tx_init(2, res.start + LPBFIFO_REG_FIFO_DATA,
|
||||||
|
@ -376,8 +376,11 @@ unsigned long __init unflatten_dt_node(unsigned long mem,
|
|||||||
if (!np->type)
|
if (!np->type)
|
||||||
np->type = "<NULL>";
|
np->type = "<NULL>";
|
||||||
}
|
}
|
||||||
while (tag == OF_DT_BEGIN_NODE) {
|
while (tag == OF_DT_BEGIN_NODE || tag == OF_DT_NOP) {
|
||||||
mem = unflatten_dt_node(mem, p, np, allnextpp, fpsize);
|
if (tag == OF_DT_NOP)
|
||||||
|
*p += 4;
|
||||||
|
else
|
||||||
|
mem = unflatten_dt_node(mem, p, np, allnextpp, fpsize);
|
||||||
tag = be32_to_cpup((__be32 *)(*p));
|
tag = be32_to_cpup((__be32 *)(*p));
|
||||||
}
|
}
|
||||||
if (tag != OF_DT_END_NODE) {
|
if (tag != OF_DT_END_NODE) {
|
||||||
|
Loading…
Reference in New Issue
Block a user