diff options
Diffstat (limited to 'Documentation')
34 files changed, 2246 insertions, 62 deletions
diff --git a/Documentation/DocBook/uio-howto.tmpl b/Documentation/DocBook/uio-howto.tmpl index 9561815..88451f7 100644 --- a/Documentation/DocBook/uio-howto.tmpl +++ b/Documentation/DocBook/uio-howto.tmpl @@ -510,6 +510,18 @@ interrupts from userspace by writing to <filename>/dev/uioX</filename>, you can implement this function. The parameter <varname>irq_on</varname> will be 0 to disable interrupts and 1 to enable them. </para></listitem> + +<listitem><para> +<varname>pgprot_t (*set_pgprot)(struct uio_info *info, unsigned int mem_idx, +pgprot_t prot)</varname>: Optional. If special flags are required when mapping +certain hardware regions, then this callback can be used to specify those flags. +The default flags are given by the host architecture's definition of +<function>pgprot_noncached()</function> and are passed to the callback as the +<varname>prot</varname> parameter, but the return value is what is used for the +resulting mapping. Note that this callback is only used by the built in mapping +logic (when the <function>mmap()</function> callback has not been set), and then +only for UIO_MEM_PHYS regions. +</para></listitem> </itemizedlist> <para> diff --git a/Documentation/devicetree/bindings/arm/fsl.txt b/Documentation/devicetree/bindings/arm/fsl.txt index e935d7d..2e9b283 100644 --- a/Documentation/devicetree/bindings/arm/fsl.txt +++ b/Documentation/devicetree/bindings/arm/fsl.txt @@ -74,3 +74,31 @@ Required root node properties: i.MX6q generic board Required root node properties: - compatible = "fsl,imx6q"; + + +------------------------------------------------ + +Freescale LS1021A platfform device tree bindings +------------------------------------------------ + +Each device tree must specify the following compatible values: + + "fsl,ls1021a" + +SoC-specific device tree bindings +------------------------------------------- + +Each device tree must specify the following SoC-specific compatible values: + + - compatible = "fsl,ls1021a-scfg": + scfg is the supplemental configuration unit, provides SoC specific + configuration and status registers for the chip.there isn't a dedicate + driver for it, device that has configuration and status register located + in this space can operate on it. Such as getting PEX port status. + + - compatible = "fsl,ls1021a-dcfg": + dcfg is the device configuration unit that provides general purpose + configuration and status for the device, there isn't a dedicate driver + for it, device that has configuration and status register located in + this space can operate on it. Such as setting the secondary core start + address and release the secondary core from holdoff and startup. diff --git a/Documentation/devicetree/bindings/clock/ls1021a-clock.txt b/Documentation/devicetree/bindings/clock/ls1021a-clock.txt new file mode 100644 index 0000000..e53d976 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/ls1021a-clock.txt @@ -0,0 +1,27 @@ +Gating clock bindings for Freescale LS1021A SOC + +Required properties: +- compatible: Should be "fsl,ls1021a-gate" +- reg: Address and length of the register set +- #clock-cells: Should be <1> + +The clock consumers should specify the desired clock by having one clock +ID in its "clocks" phandle cell. +Please see include/dt-bindings/clock/ls1021a-clock.h for the full list of +LS1021A clock IDs. + +Example: + +gate: gate@1ee0000 { + compatible = "fsl,ls1021a-gate"; + reg = <0x0 0x1ee0000 0x0 0x10000>; + #clock-cells = <1>; +}; + +wdog0: wdog@2ad0000 { + compatible = "fsl,ls1021a-wdt", "fsl,imx21-wdt"; + reg = <0x0 0x2ad0000 0x0 0x10000>; + interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&gate LS1021A_CLK_WDOG12_EN>; + clock-names = "wdog12_en"; +}; diff --git a/Documentation/devicetree/bindings/dma/fsl-edma.txt b/Documentation/devicetree/bindings/dma/fsl-edma.txt new file mode 100644 index 0000000..191d7bd --- /dev/null +++ b/Documentation/devicetree/bindings/dma/fsl-edma.txt @@ -0,0 +1,76 @@ +* Freescale enhanced Direct Memory Access(eDMA) Controller + + The eDMA channels have multiplex capability by programmble memory-mapped +registers. channels are split into two groups, called DMAMUX0 and DMAMUX1, +specific DMA request source can only be multiplexed by any channel of certain +group, DMAMUX0 or DMAMUX1, but not both. + +* eDMA Controller +Required properties: +- compatible : + - "fsl,vf610-edma" for eDMA used similar to that on Vybrid vf610 SoC +- reg : Specifies base physical address(s) and size of the eDMA registers. + The 1st region is eDMA control register's address and size. + The 2nd and the 3rd regions are programmable channel multiplexing + control register's address and size. +- interrupts : A list of interrupt-specifiers, one for each entry in + interrupt-names. +- interrupt-names : Should contain: + "edma-tx" - the transmission interrupt + "edma-err" - the error interrupt +- #dma-cells : Must be <2>. + The 1st cell specifies the DMAMUX(0 for DMAMUX0 and 1 for DMAMUX1). + Specific request source can only be multiplexed by specific channels + group called DMAMUX. + The 2nd cell specifies the request source(slot) ID. + See the SoC's reference manual for all the supported request sources. +- dma-channels : Number of channels supported by the controller +- clock-names : A list of channel group clock names. Should contain: + "dmamux0" - clock name of mux0 group + "dmamux1" - clock name of mux1 group +- clocks : A list of phandle and clock-specifier pairs, one for each entry in + clock-names. + +Optional properties: +- big-endian: If present registers and hardware scatter/gather descriptors + of the eDMA are implemented in big endian mode, otherwise in little + mode. + + +Examples: + +edma0: dma-controller@40018000 { + #dma-cells = <2>; + compatible = "fsl,vf610-edma"; + reg = <0x40018000 0x2000>, + <0x40024000 0x1000>, + <0x40025000 0x1000>; + interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>, + <0 9 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "edma-tx", "edma-err"; + dma-channels = <32>; + clock-names = "dmamux0", "dmamux1"; + clocks = <&clks VF610_CLK_DMAMUX0>, + <&clks VF610_CLK_DMAMUX1>; +}; + + +* DMA clients +DMA client drivers that uses the DMA function must use the format described +in the dma.txt file, using a two-cell specifier for each channel: the 1st +specifies the channel group(DMAMUX) in which this request can be multiplexed, +and the 2nd specifies the request source. + +Examples: + +sai2: sai@40031000 { + compatible = "fsl,vf610-sai"; + reg = <0x40031000 0x1000>; + interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>; + clock-names = "sai"; + clocks = <&clks VF610_CLK_SAI2>; + dma-names = "tx", "rx"; + dmas = <&edma0 0 21>, + <&edma0 0 20>; + status = "disabled"; +}; diff --git a/Documentation/devicetree/bindings/powerpc/fsl/ifc.txt b/Documentation/devicetree/bindings/memory-controllers/fsl/ifc.txt index d5e3704..ee6226b 100644 --- a/Documentation/devicetree/bindings/powerpc/fsl/ifc.txt +++ b/Documentation/devicetree/bindings/memory-controllers/fsl/ifc.txt @@ -18,6 +18,8 @@ Properties: interrupt (NAND_EVTER_STAT). If there is only one, that interrupt reports both types of event. +- little-endian : If this property is absent, the big-endian mode will + be in use as default for registers. - ranges : Each range corresponds to a single chipselect, and covers the entire access window as configured. diff --git a/Documentation/devicetree/bindings/mtd/fsl-quadspi.txt b/Documentation/devicetree/bindings/mtd/fsl-quadspi.txt new file mode 100644 index 0000000..7e1dbaf --- /dev/null +++ b/Documentation/devicetree/bindings/mtd/fsl-quadspi.txt @@ -0,0 +1,51 @@ +* Freescale Quad Serial Peripheral Interface(QuadSPI) + +The QuadSPI controller acts as the SPI master. It is described with a node +for the controller and a set of child nodes for each SPI NOR flash. + +Part I - The DT node for the controller: +------------------------------ + +Required properties: + - compatible : Should be "fsl,vf610-qspi" + - reg : the first contains the register location and length, + the second contains the memory mapping address and length + - reg-names: Should contain the reg names "QuadSPI" and "QuadSPI-memory" + - interrupts : Should contain the interrupt for the device + - clocks : The clocks needed by the QuadSPI controller + - clock-names : the name of the clocks + +Optional properties: + - fsl,qspi-has-second-chip: The controller has two buses, bus A and bus B. + Each bus can be connected with two NOR flashes. + Most of the time, each bus only has one NOR flash + connected, this is the default case. + But if there are two NOR flashes connected to the + bus, you should enable this property. + (Please check the board's schematic.) + +Part II - The DT nodes for each SPI NOR flash +------------------------------ +Required properties: +- spi-max-frequency : Maximum frequency of the SPI bus the chip can operate at + +Optional properties: + Please refer to the Documentation/devicetree/bindings/mtd/spi-nor-flash.txt + If you set the "spi-nor,ddr-quad-read-dummy", it means you enable the DDR + quad read feature for the driver. + +Example: + +qspi0: quadspi@40044000 { + compatible = "fsl,vf610-qspi"; + reg = <0x40044000 0x1000>, <0x20000000 0x10000000>; + reg-names = "QuadSPI", "QuadSPI-memory"; + interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks VF610_CLK_QSPI0_EN>, + <&clks VF610_CLK_QSPI0>; + clock-names = "qspi_en", "qspi"; + + flash0: s25fl128s@0 { + .... + }; +}; diff --git a/Documentation/devicetree/bindings/mtd/spi-nor-flash.txt b/Documentation/devicetree/bindings/mtd/spi-nor-flash.txt new file mode 100644 index 0000000..aba4d54 --- /dev/null +++ b/Documentation/devicetree/bindings/mtd/spi-nor-flash.txt @@ -0,0 +1,7 @@ +This file defines some DT properties for specific SPI NOR flash features. +The SPI NOR controller drivers may refer to this file, such as fsl-quadspi.txt + +Optional properties: + - spi-nor,ddr-quad-read-dummy: The dummy cycles used by the DDR Quad read. + Please refer to the chip's datasheet. This + property can be 4 or 6 which is less then 8. diff --git a/Documentation/devicetree/bindings/net/fsl-tsec-phy.txt b/Documentation/devicetree/bindings/net/fsl-tsec-phy.txt index d2ea460..ffbfc63 100644 --- a/Documentation/devicetree/bindings/net/fsl-tsec-phy.txt +++ b/Documentation/devicetree/bindings/net/fsl-tsec-phy.txt @@ -93,6 +93,16 @@ Clock Properties: - fsl,tmr-fiper1 Fixed interval period pulse generator. - fsl,tmr-fiper2 Fixed interval period pulse generator. - fsl,max-adj Maximum frequency adjustment in parts per billion. + - fsl,clock-source-select Value type: <u32>, + select 1588 Timer reference clock source. + 0. External high precision timer reference + clock (TSEC_1588_CLK_IN) + 1. eTSEC system clock + 2. eTSEC1 transmit clock + 3. RTC clock input. + - fsl,ts-to-buffer Value type <none>, if present, indicates that TSEC + has ability to write time stamp of the transmitted + frame to memory in the padding. These properties set the operational parameters for the PTP clock. You must choose these carefully for the clock to work right. @@ -143,4 +153,6 @@ Example: fsl,tmr-fiper1 = <0x3B9AC9F6>; fsl,tmr-fiper2 = <0x00018696>; fsl,max-adj = <659999998>; + fsl,clock-source-select = <1>; + fsl,ts-to-buffer; }; diff --git a/Documentation/devicetree/bindings/pci/designware-pcie.txt b/Documentation/devicetree/bindings/pci/designware-pcie.txt index e216af3..83ccba4 100644 --- a/Documentation/devicetree/bindings/pci/designware-pcie.txt +++ b/Documentation/devicetree/bindings/pci/designware-pcie.txt @@ -20,6 +20,7 @@ Required properties: numbers. - num-lanes: number of lanes to use - reset-gpio: gpio pin number of power good signal +- num-atus: number of ATUs. The default value is 2 if not present Example: diff --git a/Documentation/devicetree/bindings/pci/layerscape-pci.txt b/Documentation/devicetree/bindings/pci/layerscape-pci.txt new file mode 100644 index 0000000..d7b0026 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/layerscape-pci.txt @@ -0,0 +1,46 @@ +Freescale Layerscape PCIe controller + +This PCIe host controller is based on the Synopsis Designware PCIe IP +and thus inherits all the common properties defined in designware-pcie.txt. + +Required properties: +- compatible: should contain the platform identifier such as "fsl,ls1021a-pcie" +- reg: base addresses and lengths of the PCIe controller +- interrupts: A list of interrupt outputs of the controller. Must contain an + entry for each entry in the interrupt-names property. +- interrupt-names: Must include the following entries: + "intr": The interrupt that is asserted for controller interrupts + "msi": The interrupt that is asserted when an MSI is received + "pme": The interrupt that is asserted when PME state changes +- fsl,pcie-scfg: Must include two entries. + The first entry must be a link to the SCFG device node + The second entry must be '0' or '1' based on physical PCIe controller index. + used to get SCFG PEXN registers + +Example: + + pcie@3400000 { + compatible = "fsl,ls1021a-pcie", "snps,dw-pcie"; + reg = <0x00 0x03400000 0x0 0x00010000 /* controller registers */ + 0x40 0x00000000 0x0 0x00002000>; /* configuration space */ + reg-names = "regs", "config"; + interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */ + <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>, /* MSI interrupt */ + <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>; /* PME interrupt */ + interrupt-names = "intr", "msi", "pme"; + fsl,pcie-scfg = <&scfg 0>; + #address-cells = <3>; + #size-cells = <2>; + device_type = "pci"; + num-lanes = <4>; + bus-range = <0x0 0xff>; + ranges = <0x81000000 0x0 0x00000000 0x40 0x00010000 0x0 0x00010000 /* downstream I/O */ + 0xc2000000 0x0 0x20000000 0x40 0x20000000 0x0 0x20000000 /* prefetchable memory */ + 0x82000000 0x0 0x40000000 0x40 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */ + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 7>; + interrupt-map = <0000 0 0 1 &gic GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>, + <0000 0 0 2 &gic GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>, + <0000 0 0 3 &gic GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>, + <0000 0 0 4 &gic GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>; + }; diff --git a/Documentation/devicetree/bindings/powerpc/fsl/board.txt b/Documentation/devicetree/bindings/powerpc/fsl/board.txt index 380914e..ecc2e52 100644 --- a/Documentation/devicetree/bindings/powerpc/fsl/board.txt +++ b/Documentation/devicetree/bindings/powerpc/fsl/board.txt @@ -67,3 +67,21 @@ Example: gpio-controller; }; }; + +* Freescale on-board FPGA connected on I2C bus + +Some Freescale boards like BSC9132QDS have on board FPGA connected on +the i2c bus. + +Required properties: +- compatible: Should be a board-specific string followed by a string + indicating the type of FPGA. Example: + "fsl,<board>-fpga", "fsl,fpga-qixis-i2c" +- reg: Should contain the address of the FPGA + +Example: + fpga: fpga@66 { + compatible = "fsl,bsc9132qds-fpga", "fsl,fpga-qixis-i2c"; + reg = <0x66>; + }; + diff --git a/Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/ucc.txt b/Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/ucc.txt index e47734b..5e4a61b 100644 --- a/Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/ucc.txt +++ b/Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/ucc.txt @@ -2,8 +2,10 @@ Required properties: - device_type : should be "network", "hldc", "uart", "transparent" - "bisync", "atm", or "serial". -- compatible : could be "ucc_geth" or "fsl_atm" and so on. + "bisync", "atm", "tdm" or "serial". +- compatible : Describes the specific device attached to the UCC. + Examples include "ucc_geth", "fsl_atm", "ucc_uart","fsl,ucc-tdm", + and "fsl,ucc_hdlc". - cell-index : the ucc number(1-8), corresponding to UCCx in UM. - reg : Offset and length of the register set for the device - interrupts : <a b> where a is the interrupt number and b is a @@ -53,6 +55,24 @@ Recommended properties: Delay), "rgmii-txid" (delay on TX only), "rgmii-rxid" (delay on RX only), "tbi", or "rtbi". +Required properties for fsl, ucc-tdm, compatible: +- fsl,rx-sync-clock, fsl,tx-sync-clock: the TDM sync clock source for + receive/transmit + "none": clock source is disabled + "rsync_pin" : clock source is TDM_A1 RSYNC pin + "brg9" through "brg15" : clock source is BRG9-BRG15, respectively +- fsl,tdm-tx-timeslot, fsl,tdm-rx-timeslot: time slot mask for transmit/receive + Each bit (LSB first) corresponds to a time slot. The time slot is enabled + if the bit is set +- fsl,tdm-id : It is the tdm port number. e.g. P1021E has 4 ports - port + A/B/C/D mapping to number 0/1/2/3. +- fsl,tdm-framer-type : It should be "t1" or "e1", "t1" for T1 line rate, and + "e1" for E1 line rate +- fsl,tdm-mode : It is tsa working mode. It should be "normal" or + "internal-loopback" +- fsl,siram-entry-id : This number is used for setting index siram entry + It should be 0/2/4.../14. Each TDM should not use the same number + with others Example: ucc@2000 { device_type = "network"; @@ -68,3 +88,23 @@ Example: phy-connection-type = "gmii"; pio-handle = <140001>; }; + + tdmc: ucc@2400 { + compatible = "fsl,ucc-tdm"; + cell-index = <5>; + reg = <0x2400 0x200>; + interrupts = <40>; + interrupt-parent = <&qeic>; + rx-clock-name = "clk7"; + tx-clock-name = "clk13"; + fsl,rx-sync-clock = "rsync_pin"; + fsl,tx-sync-clock = "tsync_pin"; + fsl,tx-timeslot = <0x00ffffff>; + fsl,rx-timeslot = <0x00ffffff>; + pio-handle = <&pio_tdmc>; + fsl,tdm-framer-type = "t1"; + fsl,tdm-mode = "normal"; + fsl,tdm-id = <2>; + fsl,siram-entry-id = <4>; + phy-handle = <&tdmphy>; + }; diff --git a/Documentation/devicetree/bindings/powerpc/fsl/dma.txt b/Documentation/devicetree/bindings/powerpc/fsl/dma.txt index 2a4b4bc..67e7c1a 100644 --- a/Documentation/devicetree/bindings/powerpc/fsl/dma.txt +++ b/Documentation/devicetree/bindings/powerpc/fsl/dma.txt @@ -134,6 +134,76 @@ Example: }; }; +** Freescale Elo3 DMA Controller + DMA controller which has same function as EloPlus except that Elo3 has 8 + channels while EloPlus has only 4, it is used in Freescale Txxx and Bxxx + series chips, such as t1040, t4240, b4860. + +Required properties: + +- compatible : must include "fsl,elo3-dma" +- reg : contains two entries for DMA General Status Registers, + i.e. DGSR0 which includes status for channel 1~4, and + DGSR1 for channel 5~8 +- ranges : describes the mapping between the address space of the + DMA channels and the address space of the DMA controller + +- DMA channel nodes: + - compatible : must include "fsl,eloplus-dma-channel" + - reg : DMA channel specific registers + - interrupts : interrupt specifier for DMA channel IRQ + - interrupt-parent : optional, if needed for interrupt mapping + +Example: +dma@100300 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "fsl,elo3-dma"; + reg = <0x100300 0x4>, + <0x100600 0x4>; + ranges = <0x0 0x100100 0x500>; + dma-channel@0 { + compatible = "fsl,eloplus-dma-channel"; + reg = <0x0 0x80>; + interrupts = <28 2 0 0>; + }; + dma-channel@80 { + compatible = "fsl,eloplus-dma-channel"; + reg = <0x80 0x80>; + interrupts = <29 2 0 0>; + }; + dma-channel@100 { + compatible = "fsl,eloplus-dma-channel"; + reg = <0x100 0x80>; + interrupts = <30 2 0 0>; + }; + dma-channel@180 { + compatible = "fsl,eloplus-dma-channel"; + reg = <0x180 0x80>; + interrupts = <31 2 0 0>; + }; + dma-channel@300 { + compatible = "fsl,eloplus-dma-channel"; + reg = <0x300 0x80>; + interrupts = <76 2 0 0>; + }; + dma-channel@380 { + compatible = "fsl,eloplus-dma-channel"; + reg = <0x380 0x80>; + interrupts = <77 2 0 0>; + }; + dma-channel@400 { + compatible = "fsl,eloplus-dma-channel"; + reg = <0x400 0x80>; + interrupts = <78 2 0 0>; + }; + dma-channel@480 { + compatible = "fsl,eloplus-dma-channel"; + reg = <0x480 0x80>; + interrupts = <79 2 0 0>; + }; +}; + Note on DMA channel compatible properties: The compatible property must say "fsl,elo-dma-channel" or "fsl,eloplus-dma-channel" to be used by the Elo DMA driver (fsldma). Any DMA channel used by fsldma cannot be used by another diff --git a/Documentation/devicetree/bindings/powerpc/fsl/fman_chosen_node_device_tree.txt b/Documentation/devicetree/bindings/powerpc/fsl/fman_chosen_node_device_tree.txt new file mode 100644 index 0000000..86f6dac --- /dev/null +++ b/Documentation/devicetree/bindings/powerpc/fsl/fman_chosen_node_device_tree.txt @@ -0,0 +1,292 @@ +================================================================================= +Chosen Node - DPAA extended arguments Bindings + +Copyright 2013 Freescale Semiconductor Inc. + +CONTENTS + - FMan Extended Args Node + - FMan-Port Extended Args Node + - Example + - General note on FMan internal resources + +NOTE: The bindings described in this document are preliminary and subject to change. + +================================================================================= +FMan Extended Args Node + +DESCRIPTION + +The purpose of this node it to provide means to implicitly initialize some of the +FMan advanced arguments as described below. This node is entirely optional; i.e. +the FMan Linux driver already sets the appropriate default values that should +fit most of the standard applications. + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: Must include "fsl,fman-extended-args" + + - cell-index + Usage: required + Value type: <u32> + Definition: Specifies the index of the FMan unit. The index should match + exactly the numbering of the cell-index of the FMan device-tree node. + It is recommended to use the "reference-to-node" method to assure matching. + + - dma-aid-mode + Usage: optional + Value type: <string> + Definition: Sets the AID mode. + The optional values are "port" and "tnum". + + - total-fifo-size + Usage: optional + Value type: <u32> + Definition: Specifies the total space allocated for data FIFOs. + This attribute could be used when tuning the fman block. + It might be needed when expecting heavy traffic load and + then an increased value is required. + The extra-space will be taken from the PCD space portion + which means less space for classification patterns. + More information can be found in the note below - + "FMan Internal Resources". + + +Example + +fman1-extd-args { + cell-index = <1>; + compatible = "fsl,fman-extended-args"; + dma-aid-mode = "port"; + total-fifo-size = <0x27000>; +}; + +================================================================================= +FMan-Port Extended Args Node + +DESCRIPTION + +The purpose of this node it to provide means to implicitly initialize some of the +FMan-port advanced arguments as described below. This node supports all FMan-Port +types: OP, RX, 10G-RX, TX and 10G-TX ports. This node is entirely optional; i.e. +the FMan Linux driver already sets the appropriate default values that should +fit most of the standard applications. + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: A standard property. + An Offline-Parsing port must include "fsl,fman-port-op-extended-args". + The Rx port must include "fsl,fman-port-1g-rx-extended-args" or + "fsl,fman-port-10g-rx-extended-args" for 10G Rx ports. + The Tx port must include "fsl,fman-port-1g-tx-extended-args" or + "fsl,fman-port-10g-tx-extended-args" for 10G Tx ports. + + - cell-index + Usage: required + Value type: <u32> + Definition: Specifies the index of the FMan Port unit. + The types of ports: offline-parsing, 1G Rx, 10G Rx, 1G Tx and 10G Tx + ports. The index should match exactly the numbering of the cell-index of the + FMan-Port device-tree node. It is recommended to use the "reference-to-node" + method to assure matching. + + - num-tnums + Usage: optional + Value type: <prop-encoded-array> + Definition: Specifies the number of tnums required (first value) + as well as the extra required tnums (second value). + In the fman-port case "tnums" represent the number of tasks that the + Fman controller allocates to handle the appropriate port RX or TX activities. + For more details please refer to the Fman RM. + + - num-dmas + Usage: optional + Value type: <prop-encoded-array> + Definition: Specifies the number of dmas required (first value) + as well as the extra required dmas (second value). + In the fman-port case "num-dmas" represent the number of dma channels + that the Fman controller allocates to handle the appropriate port + RX or TX activities. + For more details please refer to the Fman RM. + + - fifo-size + Usage: optional + Value type: <prop-encoded-array> + Definition: Specifies the fifo size required (first value) + as well as the required excessive buffer size (second value). + In the fman-port case "fifo-size" represent the size of memory (in bytes) + that the Fman controller allocates to handle the appropriate port + RX or TX activities. + For more details please refer to the Fman RM. + + - buffer-layout + Usage: optional + Value type: <prop-encoded-array> + Definition: Specifies the manipulation extra space needed (first value) + and the data alignment (second value). + For more information please refer to the FMan User's guide + + - vsp-window + Usage: optional + Value type: <prop-encoded-array> + Definition: Specifies the number of profiles for this port (first value) + and the dfault virtual port relative id (second value). Note that the + kernel FMan driver automatically initializes the default VSP (using + the configuration from the Linux dpaa Ethernet Driver of the equivalent + port) while the rest of the VSPs should be initialized by the user + (using the appropriate IOCTLs). + For more information please refer to the FMan User's guide + + - errors-to-discard + Usage: optional + Value type: <u32> + Definition: Specifies which errors should be discarded. + Errors that are not in the mask, will not be discarded; + I.e. those errors will be enqueued and sent to the default error queue. + + - ar-tables-sizes + Usage: optional + Value type: <prop-encoded-array> + Definition: Specifies the max number of entries which would be allocated + to each protocol in the auto response module. 0 value means protocol is + not supported. This field is only relevant for Rx ports. + A special value is the SNMP_char which stands for total + number of characters that would be available for the SNMP protocol in + auto response; Since all memory for the auto response must be pre + allocated, this is the only value that can't be auto calculated from + number of entries. + For example, if SNMP table uses among other values 3 strings: + "General printer", "idle", "Floor 2", + then the number of characters used is 15+4+7=26. The SNMP_char should + be a maximal value for such cases, i.e. worst case for such combination. + the location of the protocols is as followes: + < ARP ICMPv4 NDP ICMPv6 SNMP_ipv4 SNMP_ipv6 SNMP_oid SNMP_char > + + - ar-filters-sizes + Usage: optional + Value type: <prop-encoded-array> + Definition: Specifies the max number of entries which would be allocated + to each filtering table in the auto response module. + 0 value means such filtering table will not be used. + This field is only relevant for Rx ports. + the location of the filtering tables is as followes: + < IP_prot TCP_port UDP_port > + +Example + +fman1_rx4-extd-args { + cell-index = <4>; + compatible = "fsl,fman-port-1g-rx-extended-args"; + num-tnums = <16 0>; + num-dmas = <8 0>; + fifo-size = <0x3000 0>; + buffer-layout = <64 128>; + vsp-window = <8 0>; + errors-to-discard = <0x00020000>; +}; + +=============================================================================== +Example + +chosen { + name = "chosen"; + + dpaa-extended-args { + fman1-extd-args { + cell-index = <1>; + compatible = "fsl,fman-extended-args"; + dma-aid-mode = "port"; + + fman1_rx4-extd-args { + cell-index = <4>; + compatible = "fsl,fman-port-1g-rx-extended-args"; + policer-profile-window = <8>; + num-tnums = <16 0>; + num-dmas = <8 0>; + fifo-size = <0x3000 0>; + buffer-layout = <64 128>; + vsp-window = <8 0>; + errors-to-discard = <0x00020000>; + }; + + fman1_tx4-extd-args { + cell-index = <4>; + compatible = "fsl,fman-port-1g-tx-extended-args"; + num-tnums = <16 0>; + num-dmas = <8 0>; + fifo-size = <0x3000 0>; + }; + }; + }; +}; + +=============================================================================== +FMan Internal Resources + +The FMan internal resources are: FIFO buffers, number of open DMA lines, +number of tasks (TNUMs), excessive buffer size, shared extra TNUMs and +shared extra DMAs. + +FIFO allocation size ("total-fifo-size"): +The P2/P3/P4/P5 devices have 160KB total size of MURAM. +The MURAM resource has two consumers: the FIFOs and the microcode. +In the FMan driver we reserve by default 32KB for the coarse-classification +microcode and the rest of the 128KB are reserved for the ports FIFOs data. + +There are 4 types of ports ("fifo-size"): 10G, 1G, host command and +Offline Parsing (O/H). Each one requires reservation of FIFOs space +on the RX and on the TX sides. In addition there is a general space reservation +called Excessive Buffer Size (Excessive Buffer Size: When Rx port FIFO size +exceeds its max value BMI may allocate additional internal buffers to avoid +frames discard) Default initialization values for committed FIFO sizes are: + +10G Tx Ports: 16KB for all ports +10G Rx Ports: 16KB for regular ports + (if largest buffer pool is larger than 14K, fifo size should be + ((largest buffer pool size rounded up to 256) +1792)). +1G Tx Ports: 4KB for regular frames (assuming 'dequeue pipeline depth' <= 2) + 11008B for regular ports using jumbo frames. +1G Rx Ports: 4KB for regular ports (unless largest buffer pool is larger than + 2304B, in which case FIFO should be: + ((largest buffer pool size rounded up to 256) +1792)). +O/H Ports: 1536B (assuming 'dequeue pipeline depth' <= 2) + +Default initialization value for Rx ports excessive FIFO size is: +16KB of excessive buffer size. + +Tasks allocation ("num-tnums"): +Committed number of tnums is defined per port and specifies the maximum number +of concurrent tasks that the port can create. The total number of committed +tnums for all ports should not exceed the total number of tnums defined for +the whole FMan block. There's a max number of 128 tnums per FM. By default, +the total number is configured to be 96. When a port reached its max number +of committed tasks, the BMI, if configured accordingly, may allocate +extra tnums to the port in order to ease its stress. +The committed number of tnums (and excessive tnums) are initialized by default: +with the following values: +10G Rx/Tx Ports: 16 (8) +1G Rx/Tx Ports: 3 (2) +Offline parsing ports: 3 (2) +Host command ports: 1 (0) + +Number of open DMAs allocation ("num-dmas") +The number of open DMAs is defined per port and specifies the number of maximum +outstanding DMA requests allowed. The total number of committed open DMAs +for all ports should not exceed the total number of open DMAs defined for +the whole FM. There's a max number of 32 open DMA's per FM. By default, +the total number is configured to be 24. When a port reached its max DMA +transactions, the BMI may allocate extra DMA to the port (if configured to +do so) in order to ease its stress. + +The committed number of DMAs (and excessive dmas) is initialized by default +with the following values: +10G Rx Port: 4 (8) +10G Tx Port: 10 (8) +1G Rx/Tx Ports: 1 (1) +Offline parsing ports: 1 (1) +Host command ports: 1 (0) diff --git a/Documentation/devicetree/bindings/powerpc/fsl/fman_device_tree.txt b/Documentation/devicetree/bindings/powerpc/fsl/fman_device_tree.txt new file mode 100755 index 0000000..0d670b0 --- /dev/null +++ b/Documentation/devicetree/bindings/powerpc/fsl/fman_device_tree.txt @@ -0,0 +1,712 @@ +================================================================================= +P4080 Frame Manager Device Bindings +Copyright 2008 Freescale Semiconductor Inc. +Version 1, September 16, 2008 + +CONTENTS + - FMan Node + - FMan Port Node + - FMan MURAM Node + - FMan Parser Node + - FMan KeyGen Node + - FMan Coarse-Classification Node + - FMan Policer Node + - FMan dTSEC/XGEC Node + - FMan MDIO Node + - Example + +NOTE: The bindings described in this document are preliminary and subject to +change. + +================================================================================= +FMan Node + +DESCRIPTION + +Due to the fact that the FMan is an aggregation of sub-engines (ports, MACs, +KeyGen, etc.) the FMan node will have child nodes for each of them. In order for +these child nodes to be probed by the kernel, the FMan node must be "simple-bus" +compatible. + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: Must include "fsl,fman" and "simple-bus" + + - #address-cells + Usage: required + Value type: <u32> + Definition: A standard property. Defines the number of cells + for representing physical addresses in child nodes. Must + have a value of 1. + + - #size-cells + Usage: required + Value type: <u32> + Definition: A standard property. Defines the number of cells + for representing the size of physical addresses in + child nodes. Must have a value of 1. + + - cell-index + Usage: required + Value type: <u32> + Definition: Specifies the index of the FMan unit. In P4080 there + two FMan blocks. + + - reg + Usage: required + Value type: <prop-encoded-array> + Definition: A standard property. Specifies the physical + address and length of the FMan configuration (SkyBlue) + registers + + - ranges + Usage: required + Value type: <prop-encoded-array> + Definition: A standard property. Specifies the physical address + and length of the FMan memory space + + - clock-frequency + Usage: required + Value type: <u32> + Definition: Specifies the FM clock frequency in Hz units. + +Note(s): All other standard properties (see the ePAPR) are allowed but are + optional. + +================================================================================= +FMan MURAM Node + +DESCRIPTION + +FMan Internal memory - shared between all the FMan modules. +It contains data structures that are common and written to or read by the modules. +FMan internal memory is split into the following parts: + Packet buffering (Tx/Rx FIFOs) + Coarse classification table + Frames internal context + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: Must include "fsl,fman-muram" + + - ranges + Usage: required + Value type: <prop-encoded-array> + Definition: A standard property. Specifies the physical address + and length of the FMan memory space + +EXAMPLE + +muram@0 { + compatible = "fsl,fman-muram"; + ranges = <0 0x000000 0x28000>; +}; + +================================================================================= +FMan Port Node + +DESCRIPTION + +The Frame Manager (FMan) supports several types of hardware ports: + Ethernet receiver (RX) + Ethernet transmitter (TX) + Offline (O/H) + Host command (O/H) + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: A standard property. Must include "fsl,fman-port". + An OH must include "fsl,fman-port-hc" for Host-Command port + or "fsl,fman-port-op" for Offline-Parsing port. + The Rx port must include "fsl,fman-port-rx" or "fsl,fman-port-xgrx" + for 10G Rx ports. + The Tx port must include "fsl,fman-port-tx" or "fsl,fman-port-xgtx" + for 10G Tx ports. + + - cell-index + Usage: optional + Value type: <u32> + Definition: Specifies the index of the FMan Port unit. Note that there are + types of ports: host-command/offline-parsing, Rx, 10G Rx, Tx and 10G Tx + ports. The index is the port location according to its memory-map. + I.e. the index is relative for each group/type of ports (rx, 10grx, tx, + 10gtx, oh). + + - reg + Usage: required + Value type: <prop-encoded-array> + Definition: A standard property. Specifies the physical address + offset and length of the port configuration (SkyBlue) + registers within the Fman node's address space. + + - fsl,liodn + Usage: see definition + Value type: <u32> + Definition: The logical I/O device number (LIODN) for this + device. The LIODN is a number expressed by this device + and used to perform look-ups in the IOMMU (PAMU) address + table when performing DMAs. This property is required + if the PAMU is enabled. + + - fsl,qman-channel-id + Usage: required for Tx, HC, and OP ports, unused for Rx ports. + Value type <u32> + Definition: Specifies the channel to dequeue from for this port. + +Note(s): All other standard properties (see the ePAPR) are allowed but are + optional. + +EXAMPLE + +fman0_tx0: port@a8000 { + cell-index = <0>; + compatible = "fsl,p4080-fman-port-1g-tx", "fsl,fman-port-1g-tx"; + reg = <0xa8000 0x1000>; + fsl,qman-channel-id = <0x47>; +}; + +================================================================================= +FMan Parser Node + +DESCRIPTION + +The FMan Parser parses incoming frames and generates parser results that +contain header types and indexes to the headers + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: A standard property. Must include "fsl,fman-parser". + + - reg + Usage: required + Value type: <prop-encoded-array> + Definition: A standard property. Specifies the physical address + offset and length of the KeyGen configuration (SkyBlue) + registers within the Fman node's address space. + +EXAMPLE + +parser@80000 { + compatible = "fsl,fman-parser"; + reg = <0x80000 0x1000>; +}; + +================================================================================= +FMan KeyGen Node + +DESCRIPTION + +KeyGen - key generator module. + This module determines how frames are distributed to a range of FQs + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: A standard property. Must include "fsl,fman-keygen". + + - reg + Usage: required + Value type: <prop-encoded-array> + Definition: A standard property. Specifies the physical address + offset and length of the KeyGen configuration (SkyBlue) + registers within the Fman node's address space. + +EXAMPLE + +keygen@c1000 { + compatible = "fsl,fman-keygen"; + reg = <0xc1000 0x1000>; +}; + +================================================================================= +FMan Coarse-Classification Node + +DESCRIPTION + +The Coarse Classification block is a tree data structure inside the FMan controller +that provides exact matching by searching predefined classification tables. + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: A standard property. Must include "fsl,fman-cc". + +EXAMPLE + +cc: { + compatible = "fsl,fman-cc"; +}; + +================================================================================= +FMan Policer Node + +DESCRIPTION + +The Ploicer provides means to configure policy profiles that are used to +prioritize a flow of frames over the other + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: A standard property. Must include "fsl,fman-policer". + + - reg + Usage: required + Value type: <prop-encoded-array> + Definition: A standard property. Specifies the physical address + offset and length of the KeyGen configuration (SkyBlue) + registers within the Fman node's address space. + +EXAMPLE + +policer@c2000 { + compatible = "fsl,fman-policer"; + reg = <0xc2000 0x1000>; +}; + +================================================================================= +FMan common BMI Node + +DESCRIPTION + +Tha BMI is the FMan interfacet to the Buffer Manager (BMan) +which allocates/deallocates frames buffers + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: A standard property. Must include "fsl,fman-bmi". + + - reg + Usage: required + Value type: <prop-encoded-array> + Definition: A standard property. Specifies the physical address + offset and length of the KeyGen configuration (SkyBlue) + registers within the Fman node's address space. + +EXAMPLE + +bmi@80000 { + compatible = "fsl,p4080-fman-bmi", "fsl,fman-bmi"; + reg = <0x80000 0x400>; +}; + +================================================================================= +FMan common QMI Node + +DESCRIPTION + +The QMI is the FMan interface to the Queue Manager (QMan) +It dequeues/enqueues frame descriptors (FD) from/to the QMan + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: A standard property. Must include "fsl,fman-qmi". + + - reg + Usage: required + Value type: <prop-encoded-array> + Definition: A standard property. Specifies the physical address + offset and length of the KeyGen configuration (SkyBlue) + registers within the Fman node's address space. + +EXAMPLE + +bmi@80400 { + compatible = "fsl,p4080-fman-qmi", "fsl,fman-qmi"; + reg = <0x80400 0x400>; +}; + +================================================================================= +FMan dTSEC/XGEC Node + +DESCRIPTION + +dTSEC/XGEC are the Ethernet network interfaces + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: A standard property. Must include "fsl,fman-mac". + dTSEC MAC must include "fsl,fman-mac-dtsec". + 10G MAC must include "fsl,fman-mac-xgec". + + - cell-index + Usage: optional + Value type: <u32> + Definition: Specifies the index of the FMan MAC unit. Note that there are + types of MACs: dTSEC and XGMAC. The index is the MAC location according + to its memory-map. I.e. the index is relative for each group/type of MACs. + + - reg + Usage: required + Value type: <prop-encoded-array> + Definition: A standard property. Specifies the physical address + offset and length of the MAC configuration (SkyBlue) + registers within the Fman node's address space. + + - fsl,port-handles + Usage: required + Value type: <prop-encoded-array> + Definition: An array of two phandles-- the first references the + FMan RX port and the second the TX port used by this MAC. + + - local-mac-address + Usage: required + Value type: <prop-encoded-array>, encoded as array of 6 hex numbers + Definition: Specifies IEEE 802.3 MAC address for this MAC. + + - phy-handle + Usage: required + Value type: <phandle> + Definition: Specifies the PHY connected to this MAC + + - phy-connection-type + Usage: required + Value type: <string> + Definition: Specifies the PHY type connected to this MAC. + Defaults to "mii". See the ePAPR for further details. + +Note(s): All other standard properties (see the ePAPR) are allowed but are + optional. + +EXAMPLE + +enet0: ethernet@e0000 { + cell-index = <0>; + compatible = "fsl,p4080-fman-1g-mac", "fsl,fman-1g-mac"; + reg = <0xe0000 0x1000>; + fsl,port-handles = <&fman0_rx0 &fman0_tx0>; + phy-handle = <&phy0>; + phy-connection-type = "rgmii-id"; +}; + +================================================================================= +FMan MDIO Node + +DESCRIPTION + +The MDIO is a bus to which network PHY devices are attached. Each PHY device on +the MDIO bus should be represented by a child node. + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: A standard property. Must include "fsl,fman-mdio". + + - #address-cells + Usage: required + Value type: <u32> + Definition: A standard property. Defines the number of cells + for representing physical addresses in child node. Must + have a value of 1. + + - #size-cells + Usage: required + Value type: <u32> + Definition: A standard property. Must be 0. + + - reg + Usage: required + Value type: <prop-encoded-array> + Definition: A standard property. Specifies the physical address + offset and length of the MDIO configuration (SkyBlue) + registers within the Fman node's address space. + +Note(s): All other standard properties (see the ePAPR) are allowed but are + optional. + +EXAMPLE + +mdio@e1000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,fman-mdio"; + reg = <0xe1000 0x1000>; + interrupts = <100 1>; + + phy0: ethernet-phy@0 { + reg = <0>; + }; +}; + +================================================================================= +Example + +fman0: fman@400000 { + #address-cells = <1>; + #size-cells = <1>; + cell-index = <0>; + compatible = "fsl,p4080-fman", "fsl,fman", "simple-bus"; + ranges = <0 0x400000 0x100000>; + reg = <0x400000 0x100000>; + clock-frequency = <666>; + interrupts = <96 2 16 2>; + interrupt-parent = <&mpic>; + + cc@0 { + compatible = "fsl,p4080-fman-cc", "fsl,fman-cc"; + }; + + parser@c7000 { + compatible = "fsl,p4080-fman-parser", "fsl,fman-parser"; + reg = <0xc7000 0x1000>; + }; + + keygen@c1000 { + compatible = "fsl,p4080-fman-keygen", "fsl,fman-keygen"; + reg = <0xc1000 0x1000>; + }; + + policer@c0000 { + compatible = "fsl,p4080-fman-policer", "fsl,fman-policer"; + reg = <0xc0000 0x1000>; + }; + + muram@0 { + compatible = "fsl,p4080-fman-muram", "fsl,fman-muram"; + reg = <0x0 0x28000>; + }; + + bmi@80000 { + compatible = "fsl,p4080-fman-bmi", "fsl,fman-bmi"; + reg = <0x80000 0x400>; + }; + + qmi@80400 { + compatible = "fsl,p4080-fman-qmi", "fsl,fman-qmi"; + reg = <0x80400 0x400>; + }; + + fman0_oh0: port@81000 { + cell-index = <0>; + compatible = "fsl,p4080-fman-port-oh", "fsl,fman-port-oh"; + reg = <0x81000 0x1000>; + fsl,qman-channel-id = <0x40>; + }; + fman0_oh1: port@82000 { + cell-index = <1>; + compatible = "fsl,p4080-fman-port-oh", "fsl,fman-port-oh"; + reg = <0x82000 0x1000>; + fsl,qman-channel-id = <0x41>; + }; + fman0_oh2: port@83000 { + cell-index = <2>; + compatible = "fsl,p4080-fman-port-oh", "fsl,fman-port-oh"; + reg = <0x83000 0x1000>; + fsl,qman-channel-id = <0x42>; + }; + fman0_oh3: port@84000 { + cell-index = <3>; + compatible = "fsl,p4080-fman-port-oh", "fsl,fman-port-oh"; + reg = <0x84000 0x1000>; + fsl,qman-channel-id = <0x43>; + }; + fman0_oh4: port@85000 { + cell-index = <4>; + compatible = "fsl,p4080-fman-port-oh", "fsl,fman-port-oh"; + reg = <0x85000 0x1000>; + fsl,qman-channel-id = <0x44>; + }; + fman0_oh5: port@86000 { + cell-index = <5>; + compatible = "fsl,p4080-fman-port-oh", "fsl,fman-port-oh"; + reg = <0x86000 0x1000>; + fsl,qman-channel-id = <0x45>; + }; + fman0_oh6: port@87000 { + cell-index = <6>; + compatible = "fsl,p4080-fman-port-oh", "fsl,fman-port-oh"; + reg = <0x87000 0x1000>; + fsl,qman-channel-id = <0x46>; + }; + + fman0_rx0: port@88000 { + cell-index = <0>; + compatible = "fsl,p4080-fman-port-1g-rx", "fsl,fman-port-1g-rx"; + reg = <0x88000 0x1000>; + }; + fman0_rx1: port@89000 { + cell-index = <1>; + compatible = "fsl,p4080-fman-port-1g-rx", "fsl,fman-port-1g-rx"; + reg = <0x89000 0x1000>; + }; + fman0_rx2: port@8a000 { + cell-index = <2>; + compatible = "fsl,p4080-fman-port-1g-rx", "fsl,fman-port-1g-rx"; + reg = <0x8a000 0x1000>; + }; + fman0_rx3: port@8b000 { + cell-index = <3>; + compatible = "fsl,p4080-fman-port-1g-rx", "fsl,fman-port-1g-rx"; + reg = <0x8b000 0x1000>; + }; + fman0_rx4: port@90000 { + cell-index = <0>; + compatible = "fsl,p4080-fman-port-10g-rx", "fsl,fman-port-10g-rx"; + reg = <0x90000 0x1000>; + }; + + fman0_tx0: port@a8000 { + cell-index = <0>; + compatible = "fsl,p4080-fman-port-1g-tx", "fsl,fman-port-1g-tx"; + reg = <0xa8000 0x1000>; + fsl,qman-channel-id = <0x47>; + }; + fman0_tx1: port@a9000 { + cell-index = <1>; + compatible = "fsl,p4080-fman-port-1g-tx", "fsl,fman-port-1g-tx"; + reg = <0xa9000 0x1000>; + fsl,qman-channel-id = <0x48>; + }; + fman0_tx2: port@aa000 { + cell-index = <2>; + compatible = "fsl,p4080-fman-port-1g-tx", "fsl,fman-port-1g-tx"; + reg = <0xaa000 0x1000>; + fsl,qman-channel-id = <0x49>; + }; + fman0_tx3: port@ab000 { + cell-index = <3>; + compatible = "fsl,p4080-fman-port-1g-tx", "fsl,fman-port-1g-tx"; + reg = <0xab000 0x1000>; + fsl,qman-channel-id = <0x4a>; + }; + fman0_tx4: port@b0000 { + cell-index = <0>; + compatible = "fsl,p4080-fman-port-10g-tx", "fsl,fman-port-10g-tx"; + reg = <0xb0000 0x1000>; + fsl,qman-channel-id = <0x4b>; + }; + + enet0: ethernet@e0000 { + cell-index = <0>; + compatible = "fsl,p4080-fman-1g-mac", "fsl,fman-1g-mac"; + reg = <0xe0000 0x1000>; + fsl,port-handles = <&fman0_rx0 &fman0_tx0>; + phy-handle = <&phy0>; + phy-connection-type = "rgmii-id"; + }; + + mdio@e1000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,fman-mdio"; + reg = <0xe1000 0x1000>; + interrupts = <100 1>; + + phy0: ethernet-phy@0 { + reg = <0>; + }; + }; + + enet1: ethernet@e2000 { + cell-index = <1>; + compatible = "fsl,p4080-fman-1g-mac", "fsl,fman-1g-mac"; + reg = <0xe2000 0x1000>; + fsl,port-handles = <&fman0_rx1 &fman0_tx1>; + phy-handle = <&phy1>; + phy-connection-type = "rgmii-id"; + }; + + mdio@e3000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,fman-mdio"; + reg = <0xe3000 0x1000>; + interrupts = <100 1>; + + phy1: ethernet-phy@0 { + reg = <0>; + }; + }; + + enet2: ethernet@e4000 { + cell-index = <2>; + compatible = "fsl,p4080-fman-1g-mac", "fsl,fman-1g-mac"; + reg = <0xe4000 0x1000>; + fsl,port-handles = <&fman0_rx2 &fman0_tx2>; + phy-handle = <&phy2>; + phy-connection-type = "rgmii-id"; + }; + + mdio@e5000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,fman-mdio"; + reg = <0xe5000 0x1000>; + interrupts = <100 1>; + + phy2: ethernet-phy@0 { + reg = <0>; + }; + }; + + enet3: ethernet@e6000 { + cell-index = <3>; + compatible = "fsl,p4080-fman-1g-mac", "fsl,fman-1g-mac"; + reg = <0xe6000 0x1000>; + fsl,port-handles = <&fman0_rx3 &fman0_tx3>; + phy-handle = <&phy3>; + phy-connection-type = "rgmii-id"; + }; + + mdio@e7000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,fman-mdio"; + reg = <0xe7000 0x1000>; + interrupts = <100 1>; + + phy3: ethernet-phy@0 { + reg = <0>; + }; + }; + + enet4: ethernet@f0000 { + cell-index = <0>; + compatible = "fsl,p4080-fman-10g-mac", "fsl,fman-10g-mac"; + reg = <0xf0000 0x1000>; + fsl,port-handles = <&fman0_rx4 &fman0_tx4>; + phy-handle = <&phy4>; + phy-connection-type = "rgmii-id"; + }; + + mdio@f1000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,fman-mdio"; + reg = <0xf1000 0x1000>; + interrupts = <100 1>; + + phy4: ethernet-phy@0 { + reg = <0>; + }; + }; +}; diff --git a/Documentation/devicetree/bindings/powerpc/fsl/fsl-dce.txt b/Documentation/devicetree/bindings/powerpc/fsl/fsl-dce.txt new file mode 100644 index 0000000..7eb50d2 --- /dev/null +++ b/Documentation/devicetree/bindings/powerpc/fsl/fsl-dce.txt @@ -0,0 +1,66 @@ +===================================================================== +DCE Device Tree Binding +Copyright (C) 2012 Freescale Semiconductor Inc. + + CONTENTS + -Overview + -DCE Node and Example + +NOTE: the DCE is also known as Freescale's Decompression and Compression Engine + +===================================================================== +Overview + +DESCRIPTION + + The Decompression and Compression Engine is an accelerator compatible + with Datapath Architecture providing lossless data decompression and + compression for the QorIQ family of SoCs. + +===================================================================== +DCE Node + +Description + + Node defines the base address of the DCE block. + This block specifies the address range of all global + configuration registers for the DCE block. It + also receives error interrupts + + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: Must include "fsl,dce" + + - reg + Usage: required + Value type: <prop-encoded-array> + Definition: A standard property. Specifies the physical + address and length of the DCE configuration registers. + registers + + - interrupts + Usage: required + Value type: <prop_encoded-array> + Definition: Specifies the interrupts generated by this + device. The value of the interrupts property + consists of one interrupt specifier. The format + of the specifier is defined by the binding document + describing the node's interrupt parent. + This device only generates an error interrupt. + + Note: All other standard properties (see the ePAPR) are allowed + but are optional. + + +EXAMPLE + dce@312000 { + compatible = "fsl,dce"; + reg = <0x312000 0x10000>; + interrupts = <16 2 1 4>; + }; + +===================================================================== diff --git a/Documentation/devicetree/bindings/powerpc/fsl/l2-switch.txt b/Documentation/devicetree/bindings/powerpc/fsl/l2-switch.txt new file mode 100644 index 0000000..c192f74 --- /dev/null +++ b/Documentation/devicetree/bindings/powerpc/fsl/l2-switch.txt @@ -0,0 +1,99 @@ +T1040 L2switch Device Tree Binding +Copyright (C) 2013 Freescale Semiconductor Inc. + +CONTENTS + - Overview + - L2switch Node + - Port Node + +===================================================================== +Overview + +DESCRIPTION + + T1040 integrates a Gigabit Ethernet switch core with eight 10/100/1000 Mbps + Ethernet ports and two 10/100/1000/2500 Mbps ports. + +===================================================================== +L2switch Node + +Description + + This node specifies the address range of l2switch configuration registers + and interrupts. It also contains a set of child nodes defining the + Ethernet ports. + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: Must include "vitesse-9953" + + - reg + Usage: required + Value type: <prop-encoded-array> + Definition: Standard property which specifies the physical address and + length of the l2switch configuration registers. + + - interrupts + Usage: required + Value type: <prop_encoded-array> + Definition: Standard property, specifies the interrupts generated by + this device. + The value of the interrupts property consists of one interrupt + specifier. The format of the specifier is defined by the binding + document describing the node's interrupt parent. + +===================================================================== +Port Node + +Description + + This node specifies the status and connection type of each of the Ethernet + ports. + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: Must include "vitesse-9953-port" + + - port-index + Usage: required + Value type: <u32> + Definition: Specifies the port index. Values 0, 1 are used by the two + internal 10/100/1000/2500 Mbps ports, values 2-9 are used by the + eight external 10/100/1000 Mbps ports. + + - phy-connection-type + Usage: required + Value type: <string> + Definition: Specifies the controller/PHY interface type. + + - status + Usage: optional + Value type: <string> + Definition: Standard property. + Indicates the operational status of the port. "disabled" is used + to indicate that the port is not usable (for example because the + QSGMII link to the PHYs is not available with current RCW). + + - fixed-link + Usage: optional + Value type: <prop_encoded-array> + Definition: Specifies link parameters in the absence of a PHY. + <a b c d e> where a is emulated phy id - must be unique to among + all specified fixed-links, b is duplex - 0 half, 1 full, c is + link speed - 10/100/1000/2500, d is pause - 0 no pause, 1 pause, + e is asym_pause - 0 no asym_pause, 1 asym_pause. + + - phy-handle + Usage: optional + Value type: <phandle> + Definition: The phandle for the PHY connected to this l2switch port. + + + Note: All other standard properties (see the ePAPR) are allowed but are + optional. diff --git a/Documentation/devicetree/bindings/powerpc/fsl/pmc.txt b/Documentation/devicetree/bindings/powerpc/fsl/pmc.txt index 07256b7..f1f749f 100644 --- a/Documentation/devicetree/bindings/powerpc/fsl/pmc.txt +++ b/Documentation/devicetree/bindings/powerpc/fsl/pmc.txt @@ -9,15 +9,20 @@ Properties: "fsl,mpc8548-pmc" should be listed for any chip whose PMC is compatible. "fsl,mpc8536-pmc" should also be listed for any chip - whose PMC is compatible, and implies deep-sleep capability. + whose PMC is compatible, and implies deep-sleep capability and + wake on user defined packet(wakeup on ARP). + + "fsl,p1022-pmc" should be listed for any chip whose PMC is + compatible, and implies lossless Ethernet capability during sleep. "fsl,mpc8641d-pmc" should be listed for any chip whose PMC is compatible; all statements below that apply to "fsl,mpc8548-pmc" also apply to "fsl,mpc8641d-pmc". Compatibility does not include bit assignments in SCCR/PMCDR/DEVDISR; these - bit assignments are indicated via the sleep specifier in each device's - sleep property. + bit assignments are indicated via the clock nodes. Device which has a + controllable clock source should have a "fsl,pmc-handle" property pointing + to the clock node. - reg: For devices compatible with "fsl,mpc8349-pmc", the first resource is the PMC block, and the second resource is the Clock Configuration @@ -33,31 +38,35 @@ Properties: this is a phandle to an "fsl,gtm" node on which timer 4 can be used as a wakeup source from deep sleep. -Sleep specifiers: +Clock nodes: +The clock nodes are to describe the masks in PM controller registers for each +soc clock. +- fsl,pmcdr-mask: For "fsl,mpc8548-pmc"-compatible devices, the mask will be + ORed into PMCDR before suspend if the device using this clock is the wake-up + source and need to be running during low power mode; clear the mask if + otherwise. - fsl,mpc8349-pmc: Sleep specifiers consist of one cell. For each bit - that is set in the cell, the corresponding bit in SCCR will be saved - and cleared on suspend, and restored on resume. This sleep controller - supports disabling and resuming devices at any time. +- fsl,sccr-mask: For "fsl,mpc8349-pmc"-compatible devices, the corresponding + bit specified by the mask in SCCR will be saved and cleared on suspend, and + restored on resume. - fsl,mpc8536-pmc: Sleep specifiers consist of three cells, the third of - which will be ORed into PMCDR upon suspend, and cleared from PMCDR - upon resume. The first two cells are as described for fsl,mpc8578-pmc. - This sleep controller only supports disabling devices during system - sleep, or permanently. - - fsl,mpc8548-pmc: Sleep specifiers consist of one or two cells, the - first of which will be ORed into DEVDISR (and the second into - DEVDISR2, if present -- this cell should be zero or absent if the - hardware does not have DEVDISR2) upon a request for permanent device - disabling. This sleep controller does not support configuring devices - to disable during system sleep (unless supported by another compatible - match), or dynamically. +- fsl,devdisr-mask: Contain one or two cells, depending on the availability of + DEVDISR2 register. For compatible devices, the mask will be ORed into DEVDISR + or DEVDISR2 when the clock should be permenently disabled. Example: - power@b00 { - compatible = "fsl,mpc8313-pmc", "fsl,mpc8349-pmc"; - reg = <0xb00 0x100 0xa00 0x100>; - interrupts = <80 8>; + power@e0070 { + compatible = "fsl,mpc8536-pmc", "fsl,mpc8548-pmc"; + reg = <0xe0070 0x20>; + + etsec1_clk: soc-clk@24 { + fsl,pmcdr-mask = <0x00000080>; + }; + etsec2_clk: soc-clk@25 { + fsl,pmcdr-mask = <0x00000040>; + }; + etsec3_clk: soc-clk@26 { + fsl,pmcdr-mask = <0x00000020>; + }; }; diff --git a/Documentation/devicetree/bindings/powerpc/fsl/rman.txt b/Documentation/devicetree/bindings/powerpc/fsl/rman.txt new file mode 100644 index 0000000..76a86fd --- /dev/null +++ b/Documentation/devicetree/bindings/powerpc/fsl/rman.txt @@ -0,0 +1,178 @@ +================================================================================= +Freescale RapidIO Message Manager Device Bindings +Copyright 2013 Freescale Semiconductor Inc. + +CONTENTS + - RMan Node + - RMan Inbound Block Node + - RMan Global CFG Node + - Example + +NOTE: The bindings described in this document are preliminary and subject to +change. + +================================================================================= +RMan Node + +DESCRIPTION + +The RapidIO message manager (RMan) supports a message passing programming model +for inter-processor and inter-device communication. Due to the fact RMan has +multiple inbound blocks, the RMan node will have child nodes for each block. +The RMan's revision information can be get from IPBRRO and IPBRR1 registers. + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: Must include "fsl,rman". + Definition: Must include "fsl,rman" for IP blocks with IP Block + Revision Register (SRIO IPBRR1) Major ID equal to 0x0a20. + + Optionally, a compatiable string of "fsl,rman-vX.Y" where X is Major + version in IP Block Revision Register and Y is Minor version. If this + compatiable is provided it should be ordered before "fsl,rman". + + - #address-cells + Usage: required + Value type: <u32> + Definition: A standard property. Defines the number of cells for + representing physical addresses in child nodes. Must have a + value of 1. + + - #size-cells + Usage: required + Value type: <u32> + Definition: A standard property. Defines the number of cells for + representing the size of physical addresses in child nodes. + Must have a value of 1. + + - reg + Usage: required + Value type: <prop-encoded-array> + Definition: A standard property. Specifies the physical address and + length of the RMan configuration registers within the CCSR + address space. + + - ranges + Usage: required + Value type: <prop-encoded-array> + Definition: A standard property. Specifies the physical address and= + length of the RMan memory space. + + - interrupts: + Usage: required + Value type: <prop-encoded-array> + Definition: Interrupt mapping for RMAN error IRQ. + + - fsl,qman-channels-id + Usage: required + Value type: <prop-encoded-array> + Definition: This property represents the ID value for the specific QMan + dequeue channel(s) asssociate with RMan. Typically there is a + dequeue channel per RapidIO port. + +================================================================================= +RMan Inbound Block Node + +DESCRIPTION + +RMan has multiple inbound blocks. Each inbound block has eight classification +units. + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: A standard property. Must include "fsl,rman-inbound-block". + + - reg + Usage: required + Value type: <prop-encoded-array> + Definition: A standard property. Specifies the physical address offset + and length of the RMan inbound block configuration registers + within the RMan node's address space. + + - fsl,liodn + Usage: see definition + Value type: <u32> + Definition: The logical I/O device number (LIODN) for this device. The + LIODN is a number expressed by this device and used to perform + look-ups in the IOMMU (PAMU) address table when performing DMAs. + This property is required if the PAMU is enabled. + +Example + +inbound-block@0 { + fsl,liodn = <203>; + compatible = "fsl,rman-inbound-block"; + reg = <0x0 0x800>; +}; + +================================================================================= +RMan Global CFG Node + +DESCRIPTION + +This node describes the RMan global registers located within the first 4K bytes +resource block. + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: A standard property. Must include "fsl,rman-global-cfg". + + - reg + Usage: required + Value type: <prop-encoded-array> + Definition: A standard property. Specifies the physical address offset + and length of the RMan global configuration registers within the + RMan node's address space. + +Example + +global-cfg@b00 { + compatible = "fsl,rman-global-cfg"; + reg = <0xb00 0x500>; +}; + +================================================================================= +Example + +rman: rman@1e0000 { + compatible = "fsl,rman"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x0 0x1e0000 0x20000>; + reg = <0x1e0000 0x20000>; + interrupts = <16 2 1 11>; /* err_irq */ + fsl,qman-channels-id = <0x62 0x63>; + inbound-block@0 { + fsl,liodn = <203>; + compatible = "fsl,rman-inbound-block"; + reg = <0x0 0x800>; + }; + global-cfg@b00 { + compatible = "fsl,rman-global-cfg"; + reg = <0xb00 0x500>; + }; + inbound-block@1000 { + fsl,liodn = <204>; + compatible = "fsl,rman-inbound-block"; + reg = <0x1000 0x800>; + }; + inbound-block@2000 { + fsl,liodn = <205>; + compatible = "fsl,rman-inbound-block"; + reg = <0x2000 0x800>; + }; + inbound-block@3000 { + fsl,liodn = <206>; + compatible = "fsl,rman-inbound-block"; + reg = <0x3000 0x800>; + }; +}; diff --git a/Documentation/devicetree/bindings/pwm/pwm-fsl-ftm.txt b/Documentation/devicetree/bindings/pwm/pwm-fsl-ftm.txt new file mode 100644 index 0000000..3899d6a --- /dev/null +++ b/Documentation/devicetree/bindings/pwm/pwm-fsl-ftm.txt @@ -0,0 +1,52 @@ +Freescale FlexTimer Module (FTM) PWM controller + +The same FTM PWM device can have a different endianness on different SoCs. The +device tree provides a property to describing this so that an operating system +device driver can handle all variants of the device. Refer to the table below +for the endianness of the FTM PWM block as integrated into the existing SoCs: + + SoC | FTM-PWM endianness + --------+------------------- + Vybrid | LE + LS1 | BE + LS2 | LE + +Please see ../regmap/regmap.txt for more detail about how to specify endian +modes in device tree. + + +Required properties: +- compatible: Should be "fsl,vf610-ftm-pwm". +- reg: Physical base address and length of the controller's registers +- #pwm-cells: Should be 3. See pwm.txt in this directory for a description of + the cells format. +- clock-names: Should include the following module clock source entries: + "ftm_sys" (module clock, also can be used as counter clock), + "ftm_ext" (external counter clock), + "ftm_fix" (fixed counter clock), + "ftm_cnt_clk_en" (external and fixed counter clock enable/disable). +- clocks: Must contain a phandle and clock specifier for each entry in + clock-names, please see clock/clock-bindings.txt for details of the property + values. +- pinctrl-names: Must contain a "default" entry. +- pinctrl-NNN: One property must exist for each entry in pinctrl-names. + See pinctrl/pinctrl-bindings.txt for details of the property values. +- big-endian: Boolean property, required if the FTM PWM registers use a big- + endian rather than little-endian layout. + +Example: + +pwm0: pwm@40038000 { + compatible = "fsl,vf610-ftm-pwm"; + reg = <0x40038000 0x1000>; + #pwm-cells = <3>; + clock-names = "ftm_sys", "ftm_ext", + "ftm_fix", "ftm_cnt_clk_en"; + clocks = <&clks VF610_CLK_FTM0>, + <&clks VF610_CLK_FTM0_EXT_SEL>, + <&clks VF610_CLK_FTM0_FIX_SEL>, + <&clks VF610_CLK_FTM0_EXT_FIX_EN>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pwm0_1>; + big-endian; +}; diff --git a/Documentation/devicetree/bindings/regmap/regmap.txt b/Documentation/devicetree/bindings/regmap/regmap.txt new file mode 100644 index 0000000..b494f8b --- /dev/null +++ b/Documentation/devicetree/bindings/regmap/regmap.txt @@ -0,0 +1,47 @@ +Device-Tree binding for regmap + +The endianness mode of CPU & Device scenarios: +Index Device Endianness properties +--------------------------------------------------- +1 BE 'big-endian' +2 LE 'little-endian' + +For one device driver, which will run in different scenarios above +on different SoCs using the devicetree, we need one way to simplify +this. + +Required properties: +- {big,little}-endian: these are boolean properties, if absent + meaning that the CPU and the Device are in the same endianness mode, + these properties are for register values and all the buffers only. + +Examples: +Scenario 1 : CPU in LE mode & device in LE mode. +dev: dev@40031000 { + compatible = "name"; + reg = <0x40031000 0x1000>; + ... +}; + +Scenario 2 : CPU in LE mode & device in BE mode. +dev: dev@40031000 { + compatible = "name"; + reg = <0x40031000 0x1000>; + ... + big-endian; +}; + +Scenario 3 : CPU in BE mode & device in BE mode. +dev: dev@40031000 { + compatible = "name"; + reg = <0x40031000 0x1000>; + ... +}; + +Scenario 4 : CPU in BE mode & device in LE mode. +dev: dev@40031000 { + compatible = "name"; + reg = <0x40031000 0x1000>; + ... + little-endian; +}; diff --git a/Documentation/devicetree/bindings/serial/fsl-lpuart.txt b/Documentation/devicetree/bindings/serial/fsl-lpuart.txt index 6fd1dd1..9b8429f 100644 --- a/Documentation/devicetree/bindings/serial/fsl-lpuart.txt +++ b/Documentation/devicetree/bindings/serial/fsl-lpuart.txt @@ -1,7 +1,11 @@ * Freescale low power universal asynchronous receiver/transmitter (lpuart) Required properties: -- compatible : Should be "fsl,<soc>-lpuart" +- compatible : + - "fsl,vf610-lpuart" for lpuart compatible with the one integrated + on Vybrid vf610 SoC with 8-bit register organization + - "fsl,ls1021a-lpuart" for lpuart compatible with the one integrated + on LS1021A SoC with 32-bit big-endian register organization - reg : Address and length of the register set for the device - interrupts : Should contain uart interrupt diff --git a/Documentation/devicetree/bindings/serial/of-serial.txt b/Documentation/devicetree/bindings/serial/of-serial.txt index 1928a3e..8c4fd03 100644 --- a/Documentation/devicetree/bindings/serial/of-serial.txt +++ b/Documentation/devicetree/bindings/serial/of-serial.txt @@ -14,6 +14,7 @@ Required properties: - "altr,16550-FIFO32" - "altr,16550-FIFO64" - "altr,16550-FIFO128" + - "fsl,16550-FIFO64" - "serial" if the port type is unknown. - reg : offset and length of the register set for the device. - interrupts : should contain uart interrupt. diff --git a/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt b/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt index a1fb303..cbbe16e 100644 --- a/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt +++ b/Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt @@ -10,6 +10,12 @@ Required properties: - pinctrl-names: must contain a "default" entry. - spi-num-chipselects : the number of the chipselect signals. - bus-num : the slave chip chipselect signal number. + +Optional property: +- big-endian: If present the dspi device's registers are implemented + in big endian mode, otherwise in native mode(same with CPU), for more + detail please see: Documentation/devicetree/bindings/regmap/regmap.txt. + Example: dspi0@4002c000 { @@ -24,6 +30,7 @@ dspi0@4002c000 { bus-num = <0>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_dspi0_1>; + big-endian; status = "okay"; sflash: at26df081a@0 { diff --git a/Documentation/devicetree/bindings/tdm/fsl-tdm.txt b/Documentation/devicetree/bindings/tdm/fsl-tdm.txt new file mode 100644 index 0000000..1258b89 --- /dev/null +++ b/Documentation/devicetree/bindings/tdm/fsl-tdm.txt @@ -0,0 +1,65 @@ +===================================================================== +TDM Device Tree Binding +Copyright (C) 2012 Freescale Semiconductor Inc. + +NOTE: The bindings described in this document are preliminary +and subject to change. + +===================================================================== +TDM (Time Division Multiplexing) + +DESCRIPTION + +The TDM is full duplex serial port designed to allow various devices including +digital signal processors (DSPs) to communicate with a variety of serial devices +including industry standard framers, codecs, other DSPs and microprocessors. + +The below properties describe the device tree bindings for Freescale TDM +controller. +This TDM controller is available on various Freescale Processors like +MPC8313, P1020, P1022 and P1010. + +PROPERTIES + + - compatible + Usage: required + Value type: <string> + Definition: Should contain "fsl,tdm1.0". + + - reg + Usage: required + Definition: A standard property. The first reg specifier describes the + TDM registers, and the second describes the TDM DMAC registers. + + - clock-frequency + Usage: optional + Value type: <u32 or u64> + Definition: The frequency at which the TDM block is operating. + + - interrupts + Usage: required + Definition: Definition: Two interrupt specifiers. The first is TDM + error, and the second is TDM EMAC. + + - phy-handle + Usage: optional + Value type: <phandle> + Definition: Phandle of the line controller node or framer node eg. SLIC, + E1/T1 etc. + + - fsl,max-time-slots + Usage: required + Value type: <u32> + Definition: Maximum number of 8-bit time slots in one TDM frame. + This is the maximum number which TDM hardware supports. + +EXAMPLE + + tdm@16000 { + compatible = "fsl,tdm1.0"; + reg = <0x16000 0x200 0x2c000 0x2000>; + clock-frequency = <0>; + interrupts = <16 8 62 8>; + phy-handle = <&zarlink1>; + fsl,max-time-slots = <128>; + }; diff --git a/Documentation/devicetree/bindings/tdm/pq-mds-t1.txt b/Documentation/devicetree/bindings/tdm/pq-mds-t1.txt new file mode 100644 index 0000000..d5a9240 --- /dev/null +++ b/Documentation/devicetree/bindings/tdm/pq-mds-t1.txt @@ -0,0 +1,63 @@ +===================================================================== +FSL PQ_MDS_T1 Device Tree Binding +Copyright (C) 2012 Freescale Semiconductor Inc. + +===================================================================== +Introduction + +The PQ-MDS-T1 - A board card with the T1/E1/DS3/T3/SLIC-SLAC module + which serves as a platform for S/W and H/W development + around the host device, it is connected by PMC sockets. + +1.TDM PHY + Function : DS26528 T1/E1/J1 transceiver + +Properties + - compatible + Usage: required + Value type: <string> + Definition: Should be "fsl,pq-mds-t1". + - reg + Usage: required + Value type: <prop-encoded-array> + Definition: The first reg specifier describes the the address, + and the second describes the length. + - line-rate + Usage: required + Value type: <string> + Definition: It descrbets the line rate "e1" or "t1". "e1" is 2.048MHz + "t1" is 1.544MHz. + - fsl,trans-mode + Usage: required + Value type: <string> + Definition: TDM controller transfer mode setting + Normal operation: set fsl,trans-mode = "normal". In this mode, + controller sends and receives data normally. + Loopback operation: set fsl,trans-mode = "internal-loopback". + In this mode, the data is sent via tsa tx pin and + received from tsa rx pin. +Example + + ds26528: tdm-phy@0 { + compatible = "dallas,ds26528"; + reg = <0 0x2000>; + line-rate = "e1"; + fsl,trans-mode = "normal"; + }; + +2.PQ-MDS-T1 PLD + Function: Board identification, control and clock/signal routing + +Properties + - fsl,card-support + Usage: required + Value type: <u32> + Definition: This property use phandle to describe which it serves as, + ds26528 or zarlink. + +Example + pld-reg@2000 { + compatible = "fsl,pq-mds-t1-pld"; + reg = <0x2000 0x1000>; + fsl,card-support = <&ds26528>; + } diff --git a/Documentation/devicetree/bindings/timer/fsl,ftm-timer.txt b/Documentation/devicetree/bindings/timer/fsl,ftm-timer.txt new file mode 100644 index 0000000..aa8c402 --- /dev/null +++ b/Documentation/devicetree/bindings/timer/fsl,ftm-timer.txt @@ -0,0 +1,31 @@ +Freescale FlexTimer Module (FTM) Timer + +Required properties: + +- compatible : should be "fsl,ftm-timer" +- reg : Specifies base physical address and size of the register sets for the + clock event device and clock source device. +- interrupts : Should be the clock event device interrupt. +- clocks : The clocks provided by the SoC to drive the timer, must contain an + entry for each entry in clock-names. +- clock-names : Must include the following entries: + o "ftm-evt" + o "ftm-src" + o "ftm-evt-counter-en" + o "ftm-src-counter-en" +- big-endian: One boolean property, the big endian mode will be in use if it is + present, or the little endian mode will be in use for all the device registers. + +Example: +ftm: ftm@400b8000 { + compatible = "fsl,ftm-timer"; + reg = <0x400b8000 0x1000 0x400b9000 0x1000>; + interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>; + clock-names = "ftm-evt", "ftm-src", + "ftm-evt-counter-en", "ftm-src-counter-en"; + clocks = <&clks VF610_CLK_FTM2>, + <&clks VF610_CLK_FTM3>, + <&clks VF610_CLK_FTM2_EXT_FIX_EN>, + <&clks VF610_CLK_FTM3_EXT_FIX_EN>; + big-endian; +}; diff --git a/Documentation/devicetree/bindings/video/fsl-dcu-fb.txt b/Documentation/devicetree/bindings/video/fsl-dcu-fb.txt new file mode 100644 index 0000000..20fc74c --- /dev/null +++ b/Documentation/devicetree/bindings/video/fsl-dcu-fb.txt @@ -0,0 +1,69 @@ +* Freescale Display Control Unit (DCU) + +=== For dcu node === +Required properties: +- compatible: Should be one of "fsl,vf610-dcu" and "fsl,ls1021a-dcu". +- reg: Address and length of the register set for DCU. +- interrupts: Should contain DCU interrupts. +- clocks: From common clock binding: handle to DCU clock. +- clock-names: From common clock binding: Shall be "dcu". +- display: The phandle to display node. + +Optional properties: +- tcon-controller: The phandle of TCON controller. +- scfg-controller: The phandle of scfg node. + +=== For display sub-node === +Required properties: +- bits-per-pixel: <24> for RGB888. + +Required timing node for dispplay sub-node: +- display-timings: Refer to binding doc display-timing.txt for details. + +=== For TCON node === +Required properties: +- compatible: Should be "fsl,tcon". +- reg: Address and length of the register set for TCON. +- clocks: From common clock binding: handle to TCON clock. +- clock-names: From common clock binding: Shall be "tcon". + +Examples: + +dcu0: dcu@40058000 { + compatible = "fsl,vf610-dcu"; + reg = <0x40058000 0x1200>; + interrupts = <0 30 0x04>; + clocks = <&clks VF610_CLK_DCU0>; + clock-names = "dcu"; + tcon-controller = <&tcon0>; + scfg-controller = <&scfg>; + display = <&display>; + + display: display@0 { + bits-per-pixel = <24>; + + display-timings { + native-mode = <&timing0>; + timing0: nl4827hc19 { + clock-frequency = <10870000>; + hactive = <480>; + vactive = <272>; + hback-porch = <2>; + hfront-porch = <2>; + vback-porch = <1>; + vfront-porch = <1>; + hsync-len = <41>; + vsync-len = <2>; + hsync-active = <1>; + vsync-active = <1>; + }; + }; + }; +}; + +tcon0: tcon@4003d000 { + compatible = "fsl,vf610-tcon"; + reg = <0x4003d000 0x1000>; + clocks = <&clks VF610_CLK_TCON0>; + clock-names = "tcon"; +}; diff --git a/Documentation/devicetree/bindings/video/fsl-sii902x.txt b/Documentation/devicetree/bindings/video/fsl-sii902x.txt new file mode 100644 index 0000000..c513a41 --- /dev/null +++ b/Documentation/devicetree/bindings/video/fsl-sii902x.txt @@ -0,0 +1,17 @@ +Device-Tree bindings for framebuffer hdmi driver + +Required properties: +- compatible: Should be "fsl,sii902x". +- reg: The I2C address of the device. +- interrupts: Interrupt number to the cpu. + +Example: + +&i2c1 { + status = "okay"; + hdmi: sii9022a@39 { + compatible = "fsl,sii902x"; + reg = <0x39>; + interrupts = <GIC_SPI 167 IRQ_TYPE_EDGE_RISING>; + }; +}; diff --git a/Documentation/hwmon/ltc2945 b/Documentation/hwmon/ltc2945 new file mode 100644 index 0000000..f8d0f7f --- /dev/null +++ b/Documentation/hwmon/ltc2945 @@ -0,0 +1,84 @@ +Kernel driver ltc2945 +===================== + +Supported chips: + * Linear Technology LTC2945 + Prefix: 'ltc2945' + Addresses scanned: - + Datasheet: + http://cds.linear.com/docs/en/datasheet/2945fa.pdf + +Author: Guenter Roeck <linux@roeck-us.net> + + +Description +----------- + +The LTC2945 is a rail-to-rail system monitor that measures current, voltage, +and power consumption. + + +Usage Notes +----------- + +This driver does not probe for LTC2945 devices, since there is no register +which can be safely used to identify the chip. You will have to instantiate +the devices explicitly. + +Example: the following will load the driver for an LTC2945 at address 0x10 +on I2C bus #1: +$ modprobe ltc2945 +$ echo ltc2945 0x10 > /sys/bus/i2c/devices/i2c-1/new_device + + +Sysfs entries +------------- + +Voltage readings provided by this driver are reported as obtained from the ADC +registers. If a set of voltage divider resistors is installed, calculate the +real voltage by multiplying the reported value with (R1+R2)/R2, where R1 is the +value of the divider resistor against the measured voltage and R2 is the value +of the divider resistor against Ground. + +Current reading provided by this driver is reported as obtained from the ADC +Current Sense register. The reported value assumes that a 1 mOhm sense resistor +is installed. If a different sense resistor is installed, calculate the real +current by dividing the reported value by the sense resistor value in mOhm. + +in1_input VIN voltage (mV). Voltage is measured either at + SENSE+ or VDD pin depending on chip configuration. +in1_min Undervoltage threshold +in1_max Overvoltage threshold +in1_lowest Lowest measured voltage +in1_highest Highest measured voltage +in1_reset_history Write 1 to reset in1 history +in1_min_alarm Undervoltage alarm +in1_max_alarm Overvoltage alarm + +in2_input ADIN voltage (mV) +in2_min Undervoltage threshold +in2_max Overvoltage threshold +in2_lowest Lowest measured voltage +in2_highest Highest measured voltage +in2_reset_history Write 1 to reset in2 history +in2_min_alarm Undervoltage alarm +in2_max_alarm Overvoltage alarm + +curr1_input SENSE current (mA) +curr1_min Undercurrent threshold +curr1_max Overcurrent threshold +curr1_lowest Lowest measured current +curr1_highest Highest measured current +curr1_reset_history Write 1 to reset curr1 history +curr1_min_alarm Undercurrent alarm +curr1_max_alarm Overcurrent alarm + +power1_input Power (in uW). Power is calculated based on SENSE+/VDD + voltage or ADIN voltage depending on chip configuration. +power1_min Low lower threshold +power1_max High power threshold +power1_input_lowest Historical minimum power use +power1_input_highest Historical maximum power use +power1_reset_history Write 1 to reset power1 history +power1_min_alarm Low power alarm +power1_max_alarm High power alarm diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 64c6734..ebd2c25 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -506,6 +506,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted. c101= [NET] Moxa C101 synchronous serial card + cache-sram= [HW] Create a cache-based SRAM. + Format: <phys-addr>,<size> + cachesize= [BUGS=X86-32] Override level 2 CPU cache size detection. Sometimes CPU hardware bugs make them report the cache size incorrectly. The kernel will attempt work arounds diff --git a/Documentation/mmc/mmc-dev-attrs.txt b/Documentation/mmc/mmc-dev-attrs.txt index 189bab0..db00d95 100644 --- a/Documentation/mmc/mmc-dev-attrs.txt +++ b/Documentation/mmc/mmc-dev-attrs.txt @@ -7,6 +7,8 @@ SD or MMC device. The following attributes are read/write. force_ro Enforce read-only access even if write protect switch is off. + bouncesz Support dynamic adjustment of bounce buffer size at runtime, + from 4096 to 4194304, integer multiple of 512 bytes only. SD and MMC Device Attributes ============================ diff --git a/Documentation/networking/gianfar.txt b/Documentation/networking/gianfar.txt index ad474ea..ba1daea 100644 --- a/Documentation/networking/gianfar.txt +++ b/Documentation/networking/gianfar.txt @@ -1,38 +1,8 @@ The Gianfar Ethernet Driver -Sysfs File description Author: Andy Fleming <afleming@freescale.com> Updated: 2005-07-28 -SYSFS - -Several of the features of the gianfar driver are controlled -through sysfs files. These are: - -bd_stash: -To stash RX Buffer Descriptors in the L2, echo 'on' or '1' to -bd_stash, echo 'off' or '0' to disable - -rx_stash_len: -To stash the first n bytes of the packet in L2, echo the number -of bytes to buf_stash_len. echo 0 to disable. - -WARNING: You could really screw these up if you set them too low or high! -fifo_threshold: -To change the number of bytes the controller needs in the -fifo before it starts transmission, echo the number of bytes to -fifo_thresh. Range should be 0-511. - -fifo_starve: -When the FIFO has less than this many bytes during a transmit, it -enters starve mode, and increases the priority of TX memory -transactions. To change, echo the number of bytes to -fifo_starve. Range should be 0-511. - -fifo_starve_off: -Once in starve mode, the FIFO remains there until it has this -many bytes. To change, echo the number of bytes to -fifo_starve_off. Range should be 0-511. CHECKSUM OFFLOADING diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt index 858aecf..076b849 100644 --- a/Documentation/virtual/kvm/api.txt +++ b/Documentation/virtual/kvm/api.txt @@ -2304,7 +2304,31 @@ Possible features: Depends on KVM_CAP_ARM_EL1_32BIT (arm64 only). -4.83 KVM_GET_REG_LIST +4.83 KVM_ARM_PREFERRED_TARGET + +Capability: basic +Architectures: arm, arm64 +Type: vm ioctl +Parameters: struct struct kvm_vcpu_init (out) +Returns: 0 on success; -1 on error +Errors: + ENODEV: no preferred target available for the host + +This queries KVM for preferred CPU target type which can be emulated +by KVM on underlying host. + +The ioctl returns struct kvm_vcpu_init instance containing information +about preferred CPU target type and recommended features for it. The +kvm_vcpu_init->features bitmap returned will have feature bits set if +the preferred target recommends setting these features, but this is +not mandatory. + +The information returned by this ioctl can be used to prepare an instance +of struct kvm_vcpu_init for KVM_ARM_VCPU_INIT ioctl which will result in +in VCPU matching underlying host. + + +4.84 KVM_GET_REG_LIST Capability: basic Architectures: arm, arm64 @@ -2323,8 +2347,7 @@ struct kvm_reg_list { This ioctl returns the guest registers that are supported for the KVM_GET_ONE_REG/KVM_SET_ONE_REG calls. - -4.84 KVM_ARM_SET_DEVICE_ADDR +4.85 KVM_ARM_SET_DEVICE_ADDR Capability: KVM_CAP_ARM_SET_DEVICE_ADDR Architectures: arm, arm64 @@ -2362,7 +2385,7 @@ must be called after calling KVM_CREATE_IRQCHIP, but before calling KVM_RUN on any of the VCPUs. Calling this ioctl twice for any of the base addresses will return -EEXIST. -4.85 KVM_PPC_RTAS_DEFINE_TOKEN +4.86 KVM_PPC_RTAS_DEFINE_TOKEN Capability: KVM_CAP_PPC_RTAS Architectures: ppc |