forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git…
…/benh/powerpc * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (29 commits) powerpc/rtas: Fix watchdog driver temperature read functionality powerpc/mm: Fix potential access to freed pages when using hugetlbfs powerpc/440: Fix warning early debug code powerpc/of: Fix usage of dev_set_name() in of_device_alloc() powerpc/pasemi: Use raw spinlock in SMP TB sync powerpc: Use one common impl. of RTAS timebase sync and use raw spinlock powerpc/rtas: Turn rtas lock into a raw spinlock powerpc: Add irqtrace support for 32-bit powerpc powerpc/BSR: Fix BSR to allow mmap of small BSR on 64k kernel powerpc/BSR: add 4096 byte BSR size powerpc: Map more memory early on 601 processors powerpc/pmac: Fix DMA ops for MacIO devices powerpc/mm: Make k(un)map_atomic out of line powerpc: Fix mpic alloc warning powerpc: Fix output from show_regs powerpc/pmac: Fix issues with PowerMac "PowerSurge" SMP powerpc/amigaone: Limit ISA I/O range to 4k in the device tree powerpc/warp: Platform fix for i2c change powerpc: Have git ignore generated files from dtc compile powerpc/mpic: Fix mapping of "DCR" based MPIC variants ...
- Loading branch information
Showing
46 changed files
with
1,691 additions
and
1,531 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,148 @@ | ||
4xx/Axon EMAC ethernet nodes | ||
|
||
The EMAC ethernet controller in IBM and AMCC 4xx chips, and also | ||
the Axon bridge. To operate this needs to interact with a ths | ||
special McMAL DMA controller, and sometimes an RGMII or ZMII | ||
interface. In addition to the nodes and properties described | ||
below, the node for the OPB bus on which the EMAC sits must have a | ||
correct clock-frequency property. | ||
|
||
i) The EMAC node itself | ||
|
||
Required properties: | ||
- device_type : "network" | ||
|
||
- compatible : compatible list, contains 2 entries, first is | ||
"ibm,emac-CHIP" where CHIP is the host ASIC (440gx, | ||
405gp, Axon) and second is either "ibm,emac" or | ||
"ibm,emac4". For Axon, thus, we have: "ibm,emac-axon", | ||
"ibm,emac4" | ||
- interrupts : <interrupt mapping for EMAC IRQ and WOL IRQ> | ||
- interrupt-parent : optional, if needed for interrupt mapping | ||
- reg : <registers mapping> | ||
- local-mac-address : 6 bytes, MAC address | ||
- mal-device : phandle of the associated McMAL node | ||
- mal-tx-channel : 1 cell, index of the tx channel on McMAL associated | ||
with this EMAC | ||
- mal-rx-channel : 1 cell, index of the rx channel on McMAL associated | ||
with this EMAC | ||
- cell-index : 1 cell, hardware index of the EMAC cell on a given | ||
ASIC (typically 0x0 and 0x1 for EMAC0 and EMAC1 on | ||
each Axon chip) | ||
- max-frame-size : 1 cell, maximum frame size supported in bytes | ||
- rx-fifo-size : 1 cell, Rx fifo size in bytes for 10 and 100 Mb/sec | ||
operations. | ||
For Axon, 2048 | ||
- tx-fifo-size : 1 cell, Tx fifo size in bytes for 10 and 100 Mb/sec | ||
operations. | ||
For Axon, 2048. | ||
- fifo-entry-size : 1 cell, size of a fifo entry (used to calculate | ||
thresholds). | ||
For Axon, 0x00000010 | ||
- mal-burst-size : 1 cell, MAL burst size (used to calculate thresholds) | ||
in bytes. | ||
For Axon, 0x00000100 (I think ...) | ||
- phy-mode : string, mode of operations of the PHY interface. | ||
Supported values are: "mii", "rmii", "smii", "rgmii", | ||
"tbi", "gmii", rtbi", "sgmii". | ||
For Axon on CAB, it is "rgmii" | ||
- mdio-device : 1 cell, required iff using shared MDIO registers | ||
(440EP). phandle of the EMAC to use to drive the | ||
MDIO lines for the PHY used by this EMAC. | ||
- zmii-device : 1 cell, required iff connected to a ZMII. phandle of | ||
the ZMII device node | ||
- zmii-channel : 1 cell, required iff connected to a ZMII. Which ZMII | ||
channel or 0xffffffff if ZMII is only used for MDIO. | ||
- rgmii-device : 1 cell, required iff connected to an RGMII. phandle | ||
of the RGMII device node. | ||
For Axon: phandle of plb5/plb4/opb/rgmii | ||
- rgmii-channel : 1 cell, required iff connected to an RGMII. Which | ||
RGMII channel is used by this EMAC. | ||
Fox Axon: present, whatever value is appropriate for each | ||
EMAC, that is the content of the current (bogus) "phy-port" | ||
property. | ||
|
||
Optional properties: | ||
- phy-address : 1 cell, optional, MDIO address of the PHY. If absent, | ||
a search is performed. | ||
- phy-map : 1 cell, optional, bitmap of addresses to probe the PHY | ||
for, used if phy-address is absent. bit 0x00000001 is | ||
MDIO address 0. | ||
For Axon it can be absent, though my current driver | ||
doesn't handle phy-address yet so for now, keep | ||
0x00ffffff in it. | ||
- rx-fifo-size-gige : 1 cell, Rx fifo size in bytes for 1000 Mb/sec | ||
operations (if absent the value is the same as | ||
rx-fifo-size). For Axon, either absent or 2048. | ||
- tx-fifo-size-gige : 1 cell, Tx fifo size in bytes for 1000 Mb/sec | ||
operations (if absent the value is the same as | ||
tx-fifo-size). For Axon, either absent or 2048. | ||
- tah-device : 1 cell, optional. If connected to a TAH engine for | ||
offload, phandle of the TAH device node. | ||
- tah-channel : 1 cell, optional. If appropriate, channel used on the | ||
TAH engine. | ||
|
||
Example: | ||
|
||
EMAC0: ethernet@40000800 { | ||
device_type = "network"; | ||
compatible = "ibm,emac-440gp", "ibm,emac"; | ||
interrupt-parent = <&UIC1>; | ||
interrupts = <1c 4 1d 4>; | ||
reg = <40000800 70>; | ||
local-mac-address = [00 04 AC E3 1B 1E]; | ||
mal-device = <&MAL0>; | ||
mal-tx-channel = <0 1>; | ||
mal-rx-channel = <0>; | ||
cell-index = <0>; | ||
max-frame-size = <5dc>; | ||
rx-fifo-size = <1000>; | ||
tx-fifo-size = <800>; | ||
phy-mode = "rmii"; | ||
phy-map = <00000001>; | ||
zmii-device = <&ZMII0>; | ||
zmii-channel = <0>; | ||
}; | ||
|
||
ii) McMAL node | ||
|
||
Required properties: | ||
- device_type : "dma-controller" | ||
- compatible : compatible list, containing 2 entries, first is | ||
"ibm,mcmal-CHIP" where CHIP is the host ASIC (like | ||
emac) and the second is either "ibm,mcmal" or | ||
"ibm,mcmal2". | ||
For Axon, "ibm,mcmal-axon","ibm,mcmal2" | ||
- interrupts : <interrupt mapping for the MAL interrupts sources: | ||
5 sources: tx_eob, rx_eob, serr, txde, rxde>. | ||
For Axon: This is _different_ from the current | ||
firmware. We use the "delayed" interrupts for txeob | ||
and rxeob. Thus we end up with mapping those 5 MPIC | ||
interrupts, all level positive sensitive: 10, 11, 32, | ||
33, 34 (in decimal) | ||
- dcr-reg : < DCR registers range > | ||
- dcr-parent : if needed for dcr-reg | ||
- num-tx-chans : 1 cell, number of Tx channels | ||
- num-rx-chans : 1 cell, number of Rx channels | ||
|
||
iii) ZMII node | ||
|
||
Required properties: | ||
- compatible : compatible list, containing 2 entries, first is | ||
"ibm,zmii-CHIP" where CHIP is the host ASIC (like | ||
EMAC) and the second is "ibm,zmii". | ||
For Axon, there is no ZMII node. | ||
- reg : <registers mapping> | ||
|
||
iv) RGMII node | ||
|
||
Required properties: | ||
- compatible : compatible list, containing 2 entries, first is | ||
"ibm,rgmii-CHIP" where CHIP is the host ASIC (like | ||
EMAC) and the second is "ibm,rgmii". | ||
For Axon, "ibm,rgmii-axon","ibm,rgmii" | ||
- reg : <registers mapping> | ||
- revision : as provided by the RGMII new version register if | ||
available. | ||
For Axon: 0x0000012a | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
Specifying GPIO information for devices | ||
============================================ | ||
|
||
1) gpios property | ||
----------------- | ||
|
||
Nodes that makes use of GPIOs should define them using `gpios' property, | ||
format of which is: <&gpio-controller1-phandle gpio1-specifier | ||
&gpio-controller2-phandle gpio2-specifier | ||
0 /* holes are permitted, means no GPIO 3 */ | ||
&gpio-controller4-phandle gpio4-specifier | ||
...>; | ||
|
||
Note that gpio-specifier length is controller dependent. | ||
|
||
gpio-specifier may encode: bank, pin position inside the bank, | ||
whether pin is open-drain and whether pin is logically inverted. | ||
|
||
Example of the node using GPIOs: | ||
|
||
node { | ||
gpios = <&qe_pio_e 18 0>; | ||
}; | ||
|
||
In this example gpio-specifier is "18 0" and encodes GPIO pin number, | ||
and empty GPIO flags as accepted by the "qe_pio_e" gpio-controller. | ||
|
||
2) gpio-controller nodes | ||
------------------------ | ||
|
||
Every GPIO controller node must have #gpio-cells property defined, | ||
this information will be used to translate gpio-specifiers. | ||
|
||
Example of two SOC GPIO banks defined as gpio-controller nodes: | ||
|
||
qe_pio_a: gpio-controller@1400 { | ||
#gpio-cells = <2>; | ||
compatible = "fsl,qe-pario-bank-a", "fsl,qe-pario-bank"; | ||
reg = <0x1400 0x18>; | ||
gpio-controller; | ||
}; | ||
|
||
qe_pio_e: gpio-controller@1460 { | ||
#gpio-cells = <2>; | ||
compatible = "fsl,qe-pario-bank-e", "fsl,qe-pario-bank"; | ||
reg = <0x1460 0x18>; | ||
gpio-controller; | ||
}; | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
MDIO on GPIOs | ||
|
||
Currently defined compatibles: | ||
- virtual,gpio-mdio | ||
|
||
MDC and MDIO lines connected to GPIO controllers are listed in the | ||
gpios property as described in section VIII.1 in the following order: | ||
|
||
MDC, MDIO. | ||
|
||
Example: | ||
|
||
mdio { | ||
compatible = "virtual,mdio-gpio"; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
gpios = <&qe_pio_a 11 | ||
&qe_pio_c 6>; | ||
}; |
Oops, something went wrong.