Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
fd0cca75
Commit
fd0cca75
authored
Jun 26, 2009
by
Benjamin Herrenschmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge commit 'kumar/next' into merge
parents
5ba762c9
66c6b856
Changes
16
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
1157 additions
and
1180 deletions
+1157
-1180
Documentation/powerpc/booting-without-of.txt
Documentation/powerpc/booting-without-of.txt
+2
-1166
Documentation/powerpc/dts-bindings/4xx/emac.txt
Documentation/powerpc/dts-bindings/4xx/emac.txt
+148
-0
Documentation/powerpc/dts-bindings/gpio/gpio.txt
Documentation/powerpc/dts-bindings/gpio/gpio.txt
+50
-0
Documentation/powerpc/dts-bindings/gpio/mdio.txt
Documentation/powerpc/dts-bindings/gpio/mdio.txt
+19
-0
Documentation/powerpc/dts-bindings/marvell.txt
Documentation/powerpc/dts-bindings/marvell.txt
+521
-0
Documentation/powerpc/dts-bindings/phy.txt
Documentation/powerpc/dts-bindings/phy.txt
+25
-0
Documentation/powerpc/dts-bindings/spi-bus.txt
Documentation/powerpc/dts-bindings/spi-bus.txt
+57
-0
Documentation/powerpc/dts-bindings/usb-ehci.txt
Documentation/powerpc/dts-bindings/usb-ehci.txt
+25
-0
Documentation/powerpc/dts-bindings/xilinx.txt
Documentation/powerpc/dts-bindings/xilinx.txt
+295
-0
arch/powerpc/boot/dts/mpc8569mds.dts
arch/powerpc/boot/dts/mpc8569mds.dts
+1
-0
arch/powerpc/include/asm/cpm1.h
arch/powerpc/include/asm/cpm1.h
+0
-2
arch/powerpc/platforms/85xx/mpc85xx_mds.c
arch/powerpc/platforms/85xx/mpc85xx_mds.c
+1
-0
arch/powerpc/platforms/85xx/smp.c
arch/powerpc/platforms/85xx/smp.c
+4
-5
arch/powerpc/platforms/85xx/socrates.c
arch/powerpc/platforms/85xx/socrates.c
+3
-3
arch/powerpc/platforms/85xx/xes_mpc85xx.c
arch/powerpc/platforms/85xx/xes_mpc85xx.c
+0
-1
arch/powerpc/sysdev/qe_lib/qe.c
arch/powerpc/sysdev/qe_lib/qe.c
+6
-3
No files found.
Documentation/powerpc/booting-without-of.txt
View file @
fd0cca75
This diff is collapsed.
Click to expand it.
Documentation/powerpc/dts-bindings/4xx/emac.txt
0 → 100644
View file @
fd0cca75
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
Documentation/powerpc/dts-bindings/gpio/gpio.txt
0 → 100644
View file @
fd0cca75
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;
};
Documentation/powerpc/dts-bindings/gpio/mdio.txt
0 → 100644
View file @
fd0cca75
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>;
};
Documentation/powerpc/dts-bindings/marvell.txt
0 → 100644
View file @
fd0cca75
This diff is collapsed.
Click to expand it.
Documentation/powerpc/dts-bindings/phy.txt
0 → 100644
View file @
fd0cca75
PHY nodes
Required properties:
- device_type : Should be "ethernet-phy"
- interrupts : <a b> where a is the interrupt number and b is a
field that represents an encoding of the sense and level
information for the interrupt. This should be encoded based on
the information in section 2) depending on the type of interrupt
controller you have.
- interrupt-parent : the phandle for the interrupt controller that
services interrupts for this device.
- reg : The ID number for the phy, usually a small integer
- linux,phandle : phandle for this node; likely referenced by an
ethernet controller node.
Example:
ethernet-phy@0 {
linux,phandle = <2452000>
interrupt-parent = <40000>;
interrupts = <35 1>;
reg = <0>;
device_type = "ethernet-phy";
};
Documentation/powerpc/dts-bindings/spi-bus.txt
0 → 100644
View file @
fd0cca75
SPI (Serial Peripheral Interface) busses
SPI busses can be described with a node for the SPI master device
and a set of child nodes for each SPI slave on the bus. For this
discussion, it is assumed that the system's SPI controller is in
SPI master mode. This binding does not describe SPI controllers
in slave mode.
The SPI master node requires the following properties:
- #address-cells - number of cells required to define a chip select
address on the SPI bus.
- #size-cells - should be zero.
- compatible - name of SPI bus controller following generic names
recommended practice.
No other properties are required in the SPI bus node. It is assumed
that a driver for an SPI bus device will understand that it is an SPI bus.
However, the binding does not attempt to define the specific method for
assigning chip select numbers. Since SPI chip select configuration is
flexible and non-standardized, it is left out of this binding with the
assumption that board specific platform code will be used to manage
chip selects. Individual drivers can define additional properties to
support describing the chip select layout.
SPI slave nodes must be children of the SPI master node and can
contain the following properties.
- reg - (required) chip select address of device.
- compatible - (required) name of SPI device following generic names
recommended practice
- spi-max-frequency - (required) Maximum SPI clocking speed of device in Hz
- spi-cpol - (optional) Empty property indicating device requires
inverse clock polarity (CPOL) mode
- spi-cpha - (optional) Empty property indicating device requires
shifted clock phase (CPHA) mode
- spi-cs-high - (optional) Empty property indicating device requires
chip select active high
SPI example for an MPC5200 SPI bus:
spi@f00 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,mpc5200b-spi","fsl,mpc5200-spi";
reg = <0xf00 0x20>;
interrupts = <2 13 0 2 14 0>;
interrupt-parent = <&mpc5200_pic>;
ethernet-switch@0 {
compatible = "micrel,ks8995m";
spi-max-frequency = <1000000>;
reg = <0>;
};
codec@1 {
compatible = "ti,tlv320aic26";
spi-max-frequency = <100000>;
reg = <1>;
};
};
Documentation/powerpc/dts-bindings/usb-ehci.txt
0 → 100644
View file @
fd0cca75
USB EHCI controllers
Required properties:
- compatible : should be "usb-ehci".
- reg : should contain at least address and length of the standard EHCI
register set for the device. Optional platform-dependent registers
(debug-port or other) can be also specified here, but only after
definition of standard EHCI registers.
- interrupts : one EHCI interrupt should be described here.
If device registers are implemented in big endian mode, the device
node should have "big-endian-regs" property.
If controller implementation operates with big endian descriptors,
"big-endian-desc" property should be specified.
If both big endian registers and descriptors are used by the controller
implementation, "big-endian" property can be specified instead of having
both "big-endian-regs" and "big-endian-desc".
Example (Sequoia 440EPx):
ehci@e0000300 {
compatible = "ibm,usb-ehci-440epx", "usb-ehci";
interrupt-parent = <&UIC0>;
interrupts = <1a 4>;
reg = <0 e0000300 90 0 e0000390 70>;
big-endian;
};
Documentation/powerpc/dts-bindings/xilinx.txt
0 → 100644
View file @
fd0cca75
This diff is collapsed.
Click to expand it.
arch/powerpc/boot/dts/mpc8569mds.dts
View file @
fd0cca75
...
...
@@ -253,6 +253,7 @@ sdhci@2e000 {
/*
Filled
in
by
U
-
Boot
*/
clock
-
frequency
=
<
0
>;
status
=
"disabled"
;
sdhci
,
1
-
bit
-
only
;
};
crypto
@
30000
{
...
...
arch/powerpc/include/asm/cpm1.h
View file @
fd0cca75
...
...
@@ -598,8 +598,6 @@ typedef struct risc_timer_pram {
#define CICR_IEN ((uint)0x00000080)
/* Int. enable */
#define CICR_SPS ((uint)0x00000001)
/* SCC Spread */
#define IMAP_ADDR (get_immrbase())
#define CPM_PIN_INPUT 0
#define CPM_PIN_OUTPUT 1
#define CPM_PIN_PRIMARY 0
...
...
arch/powerpc/platforms/85xx/mpc85xx_mds.c
View file @
fd0cca75
...
...
@@ -285,6 +285,7 @@ static struct of_device_id mpc85xx_ids[] = {
{
.
type
=
"qe"
,
},
{
.
compatible
=
"fsl,qe"
,
},
{
.
compatible
=
"gianfar"
,
},
{
.
compatible
=
"fsl,rapidio-delta"
,
},
{},
};
...
...
arch/powerpc/platforms/85xx/smp.c
View file @
fd0cca75
...
...
@@ -52,20 +52,19 @@ smp_85xx_kick_cpu(int nr)
pr_debug
(
"smp_85xx_kick_cpu: kick CPU #%d
\n
"
,
nr
);
local_irq_save
(
flags
);
np
=
of_get_cpu_node
(
nr
,
NULL
);
cpu_rel_addr
=
of_get_property
(
np
,
"cpu-release-addr"
,
NULL
);
if
(
cpu_rel_addr
==
NULL
)
{
printk
(
KERN_ERR
"No cpu-release-addr for cpu %d
\n
"
,
nr
);
local_irq_restore
(
flags
);
return
;
}
/* Map the spin table */
bptr_vaddr
=
ioremap
(
*
cpu_rel_addr
,
SIZE_BOOT_ENTRY
);
local_irq_save
(
flags
);
out_be32
(
bptr_vaddr
+
BOOT_ENTRY_PIR
,
nr
);
out_be32
(
bptr_vaddr
+
BOOT_ENTRY_ADDR_LOWER
,
__pa
(
__early_start
));
...
...
@@ -73,10 +72,10 @@ smp_85xx_kick_cpu(int nr)
while
((
__secondary_hold_acknowledge
!=
nr
)
&&
(
++
n
<
1000
))
mdelay
(
1
);
iounmap
(
bptr_vaddr
);
local_irq_restore
(
flags
);
iounmap
(
bptr_vaddr
);
pr_debug
(
"waited %d msecs for CPU #%d.
\n
"
,
n
,
nr
);
}
...
...
arch/powerpc/platforms/85xx/socrates.c
View file @
fd0cca75
...
...
@@ -102,10 +102,11 @@ static struct of_device_id __initdata socrates_of_bus_ids[] = {
{},
};
static
void
__init
socrates_init
(
void
)
static
int
__init
socrates_publish_devices
(
void
)
{
of_platform_bus_probe
(
NULL
,
socrates_of_bus_ids
,
NULL
);
return
of_platform_bus_probe
(
NULL
,
socrates_of_bus_ids
,
NULL
);
}
machine_device_initcall
(
socrates
,
socrates_publish_devices
);
/*
* Called very early, device-tree isn't unflattened
...
...
@@ -124,7 +125,6 @@ define_machine(socrates) {
.
name
=
"Socrates"
,
.
probe
=
socrates_probe
,
.
setup_arch
=
socrates_setup_arch
,
.
init
=
socrates_init
,
.
init_IRQ
=
socrates_pic_init
,
.
get_irq
=
mpic_get_irq
,
.
restart
=
fsl_rstcr_restart
,
...
...
arch/powerpc/platforms/85xx/xes_mpc85xx.c
View file @
fd0cca75
...
...
@@ -32,7 +32,6 @@
#include <sysdev/fsl_soc.h>
#include <sysdev/fsl_pci.h>
#include <linux/of_platform.h>
/* A few bit definitions needed for fixups on some boards */
#define MPC85xx_L2CTL_L2E 0x80000000
/* L2 enable */
...
...
arch/powerpc/sysdev/qe_lib/qe.c
View file @
fd0cca75
...
...
@@ -112,6 +112,7 @@ int qe_issue_cmd(u32 cmd, u32 device, u8 mcn_protocol, u32 cmd_input)
{
unsigned
long
flags
;
u8
mcn_shift
=
0
,
dev_shift
=
0
;
u32
ret
;
spin_lock_irqsave
(
&
qe_lock
,
flags
);
if
(
cmd
==
QE_RESET
)
{
...
...
@@ -139,11 +140,13 @@ int qe_issue_cmd(u32 cmd, u32 device, u8 mcn_protocol, u32 cmd_input)
}
/* wait for the QE_CR_FLG to clear */
while
(
in_be32
(
&
qe_immr
->
cp
.
cecr
)
&
QE_CR_FLG
)
cpu_relax
();
ret
=
spin_event_timeout
((
in_be32
(
&
qe_immr
->
cp
.
cecr
)
&
QE_CR_FLG
)
==
0
,
100
,
0
);
/* On timeout (e.g. failure), the expression will be false (ret == 0),
otherwise it will be true (ret == 1). */
spin_unlock_irqrestore
(
&
qe_lock
,
flags
);
return
0
;
return
ret
==
1
;
}
EXPORT_SYMBOL
(
qe_issue_cmd
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment