dt-bindings: memory-controllers: ti,gpmc: Convert to yaml
Subsystems (4)
v2 cover dt-bindings: memory-controllers: ti,gpmc: Convert to yaml
Hi,
This series converts ti,gpmc memory controller and ti,gpmc-nand and ti,gpmc-onenand MTD controller bindings to yaml.
cheers,
-roger
Changelog:
v2:
- Fix all errors in dtbs_check and dt_bindings_check
- remove references to gpmc-omap.txt
- Convert ti,gpmc-nand and ti,gpmc-onenand bindings to yaml as well
Roger Quadros (6):
ARM: dts: omap: Fixup GPMC child nodes
dt-bindings: memory-controllers: ti,gpmc: Convert to yaml
dt-bindings: mtd: ti,gpmc-nand: Convert to yaml
dt-bindings: mtd: ti,gpmc-onenand: Convert to yaml
dt-bindings: mtd: Remove gpmc-nor.txt
dt-bindings: net: Remove gpmc-eth.txt
.../bindings/memory-controllers/omap-gpmc.txt | 157 -------- .../bindings/memory-controllers/ti,gpmc.yaml | 364 ++++++++++++++++++ .../devicetree/bindings/mtd/gpmc-nand.txt | 147 ------- .../devicetree/bindings/mtd/gpmc-nor.txt | 98 ----- .../devicetree/bindings/mtd/gpmc-onenand.txt | 48 --- .../devicetree/bindings/mtd/ti,gpmc-nand.yaml | 109 ++++++ .../bindings/mtd/ti,gpmc-onenand.yaml | 71 ++++ .../devicetree/bindings/net/gpmc-eth.txt | 97 ----- .../boot/dts/logicpd-som-lv-baseboard.dtsi | 2 +- .../boot/dts/logicpd-torpedo-37xx-devkit.dts | 2 +- .../boot/dts/logicpd-torpedo-baseboard.dtsi | 2 +- arch/arm/boot/dts/omap-gpmc-smsc911x.dtsi | 62 ++- arch/arm/boot/dts/omap-gpmc-smsc9221.dtsi | 59 ++- arch/arm/boot/dts/omap-zoom-common.dtsi | 16 +- arch/arm/boot/dts/omap2430-sdp.dts | 6 +- arch/arm/boot/dts/omap3-cm-t3x30.dtsi | 6 +- .../arm/boot/dts/omap3-devkit8000-common.dtsi | 4 +- arch/arm/boot/dts/omap3-evm-37xx.dts | 1 + arch/arm/boot/dts/omap3-evm-common.dtsi | 9 - .../boot/dts/omap3-evm-processor-common.dtsi | 5 +- arch/arm/boot/dts/omap3-evm.dts | 1 + arch/arm/boot/dts/omap3-igep0020-common.dtsi | 5 +- arch/arm/boot/dts/omap3-ldp.dts | 5 +- arch/arm/boot/dts/omap3-n900.dts | 2 +- .../dts/omap3-overo-chestnut43-common.dtsi | 6 +- .../arm/boot/dts/omap3-overo-tobi-common.dtsi | 6 +- .../boot/dts/omap3-overo-tobiduo-common.dtsi | 8 +- arch/arm/boot/dts/omap3-sb-t35.dtsi | 4 +- arch/arm/boot/dts/omap4-duovero-parlor.dts | 6 +- 29 files changed, 649 insertions(+), 659 deletions(-) delete mode 100644 Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt create mode 100644 Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml delete mode 100644 Documentation/devicetree/bindings/mtd/gpmc-nand.txt delete mode 100644 Documentation/devicetree/bindings/mtd/gpmc-nor.txt delete mode 100644 Documentation/devicetree/bindings/mtd/gpmc-onenand.txt create mode 100644 Documentation/devicetree/bindings/mtd/ti,gpmc-nand.yaml create mode 100644 Documentation/devicetree/bindings/mtd/ti,gpmc-onenand.yaml delete mode 100644 Documentation/devicetree/bindings/net/gpmc-eth.txt
Signature · 1 line
2.17.1
PATCH v2 1/6 ARM: dts: omap: Fixup GPMC child nodes
Fixes up the GPMC child nodes to prevent dtbs_check errors after device tree binding conversion to yaml.
- Use reg address as node name
- gpmc,cycle2cycle-samecsen and gpmc,cycle2cycle-diffcsen are boolean properties.
--- .../boot/dts/logicpd-som-lv-baseboard.dtsi | 2 +- .../boot/dts/logicpd-torpedo-37xx-devkit.dts | 2 +- .../boot/dts/logicpd-torpedo-baseboard.dtsi | 2 +- arch/arm/boot/dts/omap-gpmc-smsc911x.dtsi | 62 +++++++++---------- arch/arm/boot/dts/omap-gpmc-smsc9221.dtsi | 59 +++++++++--------- arch/arm/boot/dts/omap-zoom-common.dtsi | 16 ++--- arch/arm/boot/dts/omap2430-sdp.dts | 6 +- arch/arm/boot/dts/omap3-cm-t3x30.dtsi | 6 +- .../arm/boot/dts/omap3-devkit8000-common.dtsi | 4 +- arch/arm/boot/dts/omap3-evm-37xx.dts | 1 + arch/arm/boot/dts/omap3-evm-common.dtsi | 9 --- .../boot/dts/omap3-evm-processor-common.dtsi | 5 +- arch/arm/boot/dts/omap3-evm.dts | 1 + arch/arm/boot/dts/omap3-igep0020-common.dtsi | 5 +- arch/arm/boot/dts/omap3-ldp.dts | 5 +- arch/arm/boot/dts/omap3-n900.dts | 2 +- .../dts/omap3-overo-chestnut43-common.dtsi | 6 +- .../arm/boot/dts/omap3-overo-tobi-common.dtsi | 6 +- .../boot/dts/omap3-overo-tobiduo-common.dtsi | 8 +-- arch/arm/boot/dts/omap3-sb-t35.dtsi | 4 +- arch/arm/boot/dts/omap4-duovero-parlor.dts | 6 +- 21 files changed, 105 insertions(+), 112 deletions(-)
arch/arm/boot/dts/logicpd-som-lv-baseboard.dtsi +1 -1
@@ -65,7 +65,7 @@ 1 0 0x2c000000 0x1000000 /* CS1: 16MB for LAN9221 */ 2 0 0x10000000 0x2000000>; /* CS2: 32MB for NOR */ - ethernet@gpmc { + gpmc_ethernet: ethernet@1,0 { pinctrl-names = "default"; pinctrl-0 = <&lan9221_pins>; interrupt-parent = <&gpio5>;
arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts +1 -1
@@ -4,8 +4,8 @@ #include "omap36xx.dtsi" #include "logicpd-torpedo-som.dtsi" -#include "omap-gpmc-smsc9221.dtsi" #include "logicpd-torpedo-baseboard.dtsi" +#include "omap-gpmc-smsc9221.dtsi" / { model = "LogicPD Zoom DM3730 Torpedo + Wireless Development Kit";
arch/arm/boot/dts/logicpd-torpedo-baseboard.dtsi +1 -1
@@ -95,7 +95,7 @@ ranges = <0 0 0x30000000 0x1000000 /* CS0: 16MB for NAND */ 1 0 0x2c000000 0x1000000>; /* CS1: 16MB for LAN9221 */ - ethernet@gpmc { + gpmc_ethernet: ethernet@1,0 { pinctrl-names = "default"; pinctrl-0 = <&lan9221_pins>; interrupt-parent = <&gpio5>;
arch/arm/boot/dts/omap-gpmc-smsc911x.dtsi +30 -32
66 lines not on this page · raw message
arch/arm/boot/dts/omap-gpmc-smsc9221.dtsi +28 -31
64 lines not on this page · raw message
arch/arm/boot/dts/omap-zoom-common.dtsi +8 -8
@@ -3,8 +3,6 @@ * Common features on the Zoom debug board */ -#include "omap-gpmc-smsc911x.dtsi" - &gpmc { ranges = <3 0 0x10000000 0x1000000>, /* CS3: 16MB for UART */ <7 0 0x2c000000 0x01000000>;
@@ -27,8 +25,8 @@ gpmc,mux-add-data = <0>; gpmc,device-width = <1>; gpmc,wait-pin = <1>; - gpmc,cycle2cycle-samecsen = <1>; - gpmc,cycle2cycle-diffcsen = <1>; + gpmc,cycle2cycle-samecsen; + gpmc,cycle2cycle-diffcsen; gpmc,cs-on-ns = <5>; gpmc,cs-rd-off-ns = <155>; gpmc,cs-wr-off-ns = <155>;
@@ -50,7 +48,7 @@ gpmc,wr-data-mux-bus-ns = <45>; gpmc,wr-access-ns = <145>; }; - uart@3,1 { + uart@3,100 { compatible = "ns16550a"; reg = <3 0x100 8>; /* CS3, offset 0x100, IO size 8 */ bank-width = <2>;
@@ -61,7 +59,7 @@ clock-frequency = <1843200>; current-speed = <115200>; }; - uart@3,2 { + uart@3,200 { compatible = "ns16550a"; reg = <3 0x200 8>; /* CS3, offset 0x200, IO size 8 */ bank-width = <2>;
@@ -72,7 +70,7 @@ clock-frequency = <1843200>; current-speed = <115200>; }; - uart@3,3 { + uart@3,300 { compatible = "ns16550a"; reg = <3 0x300 8>; /* CS3, offset 0x300, IO size 8 */ bank-width = <2>;
@@ -84,9 +82,11 @@ current-speed = <115200>; }; - ethernet@gpmc { + gpmc_ethernet: ethernet@7,0 { reg = <7 0 0xff>; interrupt-parent = <&gpio5>; interrupts = <30 IRQ_TYPE_LEVEL_LOW>; /* gpio158 */ }; }; + +#include "omap-gpmc-smsc911x.dtsi"
arch/arm/boot/dts/omap2430-sdp.dts +3 -3
@@ -34,7 +34,7 @@ &gpmc { ranges = <5 0 0x08000000 0x01000000>; - ethernet@gpmc { + ethernet@5,300 { compatible = "smsc,lan91c94"; interrupt-parent = <&gpio5>; interrupts = <21 IRQ_TYPE_LEVEL_LOW>; /* gpio149 */
@@ -43,8 +43,8 @@ gpmc,sync-clk-ps = <0>; gpmc,mux-add-data = <2>; gpmc,device-width = <1>; - gpmc,cycle2cycle-samecsen = <1>; - gpmc,cycle2cycle-diffcsen = <1>; + gpmc,cycle2cycle-samecsen; + gpmc,cycle2cycle-diffcsen; gpmc,cs-on-ns = <6>; gpmc,cs-rd-off-ns = <187>; gpmc,cs-wr-off-ns = <187>;
arch/arm/boot/dts/omap3-cm-t3x30.dtsi +3 -3
@@ -47,13 +47,11 @@ }; }; -#include "omap-gpmc-smsc911x.dtsi" - &gpmc { ranges = <5 0 0x2c000000 0x01000000>, /* CM-T3x30 SMSC9x Eth */ <0 0 0x00000000 0x01000000>; /* CM-T3x NAND */ - smsc1: ethernet@gpmc { + gpmc_ethernet: ethernet@5,0 { compatible = "smsc,lan9221", "smsc,lan9115"; pinctrl-names = "default"; pinctrl-0 = <&smsc1_pins>;
@@ -63,6 +61,8 @@ }; }; +#include "omap-gpmc-smsc911x.dtsi" + &i2c1 { twl: twl@48 { reg = <0x48>;
arch/arm/boot/dts/omap3-devkit8000-common.dtsi +2 -2
@@ -267,8 +267,8 @@ gpmc,mux-add-data = <0>; gpmc,device-width = <1>; gpmc,wait-pin = <0>; - gpmc,cycle2cycle-samecsen = <1>; - gpmc,cycle2cycle-diffcsen = <1>; + gpmc,cycle2cycle-samecsen; + gpmc,cycle2cycle-diffcsen; gpmc,cs-on-ns = <6>; gpmc,cs-rd-off-ns = <180>;
arch/arm/boot/dts/omap3-evm-37xx.dts +1 -0
@@ -7,6 +7,7 @@ #include "omap36xx.dtsi" #include "omap3-evm-common.dtsi" #include "omap3-evm-processor-common.dtsi" +#include "omap-gpmc-smsc911x.dtsi" / { model = "TI OMAP37XX EVM (TMDSEVM3730)";
arch/arm/boot/dts/omap3-evm-common.dtsi +0 -9
@@ -4,7 +4,6 @@ */ #include <dt-bindings/input/input.h> -#include "omap-gpmc-smsc911x.dtsi" / { cpus {
@@ -182,14 +181,6 @@ power = <50>; }; -&gpmc { - ethernet@gpmc { - interrupt-parent = <&gpio6>; - interrupts = <16 8>; - reg = <5 0 0xff>; - }; -}; - &vaux2 { regulator-name = "usb_1v8"; regulator-min-microvolt = <1800000>;
arch/arm/boot/dts/omap3-evm-processor-common.dtsi +4 -1
@@ -217,8 +217,11 @@ ranges = <0 0 0x30000000 0x1000000>, /* CS0: 16MB for NAND */ <5 0 0x2c000000 0x01000000>; /* CS5: 16MB for LAN9220 */ - ethernet@gpmc { + gpmc_ethernet: ethernet@5,0 { pinctrl-names = "default"; pinctrl-0 = <&smsc911x_pins>; + interrupt-parent = <&gpio6>; + interrupts = <16 8>; + reg = <5 0 0xff>; }; };
arch/arm/boot/dts/omap3-evm.dts +1 -0
@@ -7,6 +7,7 @@ #include "omap34xx.dtsi" #include "omap3-evm-common.dtsi" #include "omap3-evm-processor-common.dtsi" +#include "omap-gpmc-smsc911x.dtsi" / { model = "TI OMAP35XX EVM (TMDSEVM3530)";
arch/arm/boot/dts/omap3-igep0020-common.dtsi +3 -2
@@ -7,7 +7,6 @@ */ #include "omap3-igep.dtsi" -#include "omap-gpmc-smsc9221.dtsi" / {
@@ -217,7 +216,7 @@ ranges = <0 0 0x30000000 0x01000000>, /* CS0: 16MB for NAND */ <5 0 0x2c000000 0x01000000>; /* CS5: 16MB for ethernet */ - ethernet@gpmc { + gpmc_ethernet: ethernet@5,0 { pinctrl-names = "default"; pinctrl-0 = <&smsc9221_pins>; reg = <5 0 0xff>;
@@ -226,6 +225,8 @@ }; }; +#include "omap-gpmc-smsc9221.dtsi" + &uart2 { pinctrl-names = "default"; pinctrl-0 = <&uart2_pins>;
arch/arm/boot/dts/omap3-ldp.dts +3 -2
@@ -6,7 +6,6 @@ #include <dt-bindings/input/input.h> #include "omap34xx.dtsi" -#include "omap-gpmc-smsc911x.dtsi" / { model = "TI OMAP3430 LDP (Zoom1 Labrador)";
@@ -148,13 +147,15 @@ }; }; - ethernet@gpmc { + gpmc_ethernet: ethernet@1,0 { interrupt-parent = <&gpio5>; interrupts = <24 IRQ_TYPE_LEVEL_LOW>; reg = <1 0 0xff>; }; }; +#include "omap-gpmc-smsc911x.dtsi" + &i2c1 { clock-frequency = <2600000>;
arch/arm/boot/dts/omap3-n900.dts +1 -1
@@ -936,7 +936,7 @@ }; /* Ethernet is on some early development boards and qemu */ - ethernet@gpmc { + ethernet@1,0 { compatible = "smsc,lan91c94"; interrupt-parent = <&gpio2>; interrupts = <22 IRQ_TYPE_LEVEL_HIGH>; /* gpio54 */
arch/arm/boot/dts/omap3-overo-chestnut43-common.dtsi +3 -3
@@ -49,16 +49,16 @@ }; }; -#include "omap-gpmc-smsc9221.dtsi" - &gpmc { - ethernet@gpmc { + gpmc_ethernet: ethernet@5,0 { reg = <5 0 0xff>; interrupt-parent = <&gpio6>; interrupts = <16 IRQ_TYPE_LEVEL_LOW>; /* GPIO 176 */ }; }; +#include "omap-gpmc-smsc9221.dtsi" + &lis33de { status = "disabled"; };
arch/arm/boot/dts/omap3-overo-tobi-common.dtsi +3 -3
@@ -21,16 +21,16 @@ }; }; -#include "omap-gpmc-smsc9221.dtsi" - &gpmc { - ethernet@gpmc { + gpmc_ethernet: ethernet@5,0 { reg = <5 0 0xff>; interrupt-parent = <&gpio6>; interrupts = <16 IRQ_TYPE_LEVEL_LOW>; /* GPIO 176 */ }; }; +#include "omap-gpmc-smsc9221.dtsi" + &lis33de { status = "disabled"; };
arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi +4 -4
@@ -9,10 +9,8 @@ #include "omap3-overo-common-peripherals.dtsi" -#include "omap-gpmc-smsc9221.dtsi" - &gpmc { - smsc1: ethernet@gpmc { + gpmc_ethernet: ethernet@5,0 { reg = <5 0 0xff>; interrupt-parent = <&gpio6>; interrupts = <16 IRQ_TYPE_LEVEL_LOW>; /* GPIO 176 */
@@ -22,7 +20,7 @@ compatible = "smsc,lan9221","smsc,lan9115"; bank-width = <2>; - gpmc,mux-add-data; + gpmc,mux-add-data = <0>; gpmc,cs-on-ns = <0>; gpmc,cs-rd-off-ns = <42>; gpmc,cs-wr-off-ns = <36>;
@@ -54,6 +52,8 @@ }; }; +#include "omap-gpmc-smsc9221.dtsi" + &lis33de { status = "disabled"; };
arch/arm/boot/dts/omap3-sb-t35.dtsi +2 -2
@@ -108,8 +108,8 @@ reg = <4 0 0xff>; bank-width = <2>; gpmc,device-width = <1>; - gpmc,cycle2cycle-samecsen = <1>; - gpmc,cycle2cycle-diffcsen = <1>; + gpmc,cycle2cycle-samecsen; + gpmc,cycle2cycle-diffcsen; gpmc,cs-on-ns = <5>; gpmc,cs-rd-off-ns = <150>; gpmc,cs-wr-off-ns = <150>;
arch/arm/boot/dts/omap4-duovero-parlor.dts +3 -3
@@ -131,12 +131,10 @@ status = "disabled"; }; -#include "omap-gpmc-smsc911x.dtsi" - &gpmc { ranges = <5 0 0x2c000000 0x1000000>; /* CS5 */ - ethernet@gpmc { + gpmc_ethernet: ethernet@5,0 { reg = <5 0 0xff>; interrupt-parent = <&gpio2>; interrupts = <12 IRQ_TYPE_LEVEL_LOW>; /* gpio_44 */
@@ -170,6 +168,8 @@ }; }; +#include "omap-gpmc-smsc911x.dtsi" + &dss { status = "okay"; };
Signature · 1 line
2.17.1
PATCH v2 2/6 dt-bindings: memory-controllers: ti,gpmc: Convert to yaml
In reply to Roger QuadrosConvert omap-gpmc.txt to ti,gpmc.yaml.
--- .../bindings/memory-controllers/omap-gpmc.txt | 157 -------- .../bindings/memory-controllers/ti,gpmc.yaml | 364 ++++++++++++++++++ .../devicetree/bindings/mtd/gpmc-nand.txt | 2 +- .../devicetree/bindings/mtd/gpmc-nor.txt | 4 +- .../devicetree/bindings/mtd/gpmc-onenand.txt | 2 +- .../devicetree/bindings/net/gpmc-eth.txt | 4 +- 6 files changed, 370 insertions(+), 163 deletions(-) delete mode 100644 Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt create mode 100644 Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml
Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt deleted +0 -157
@@ -1,157 +0,0 @@ -Device tree bindings for OMAP general purpose memory controllers (GPMC) - -The actual devices are instantiated from the child nodes of a GPMC node. - -Required properties: - - - compatible: Should be set to one of the following: - - ti,omap2420-gpmc (omap2420) - ti,omap2430-gpmc (omap2430) - ti,omap3430-gpmc (omap3430 & omap3630) - ti,omap4430-gpmc (omap4430 & omap4460 & omap543x) - ti,am3352-gpmc (am335x devices) - - - reg: A resource specifier for the register space - (see the example below) - - ti,hwmods: Should be set to "ti,gpmc" until the DT transition is - completed. - - #address-cells: Must be set to 2 to allow memory address translation - - #size-cells: Must be set to 1 to allow CS address passing - - gpmc,num-cs: The maximum number of chip-select lines that controller - can support. - - gpmc,num-waitpins: The maximum number of wait pins that controller can - support. - - ranges: Must be set up to reflect the memory layout with four - integer values for each chip-select line in use: - - <cs-number> 0 <physical address of mapping> <size> - - Currently, calculated values derived from the contents - of the per-CS register GPMC_CONFIG7 (as set up by the - bootloader) are used for the physical address decoding. - As this will change in the future, filling correct - values here is a requirement. - - interrupt-controller: The GPMC driver implements and interrupt controller for - the NAND events "fifoevent" and "termcount" plus the - rising/falling edges on the GPMC_WAIT pins. - The interrupt number mapping is as follows - 0 - NAND_fifoevent - 1 - NAND_termcount - 2 - GPMC_WAIT0 pin edge - 3 - GPMC_WAIT1 pin edge, and so on. - - interrupt-cells: Must be set to 2 - - gpio-controller: The GPMC driver implements a GPIO controller for the - GPMC WAIT pins that can be used as general purpose inputs. - 0 maps to GPMC_WAIT0 pin. - - gpio-cells: Must be set to 2 - -Required properties when using NAND prefetch dma: - - dmas GPMC NAND prefetch dma channel - - dma-names Must be set to "rxtx" - -Timing properties for child nodes. All are optional and default to 0. - - - gpmc,sync-clk-ps: Minimum clock period for synchronous mode, in picoseconds - - Chip-select signal timings (in nanoseconds) corresponding to GPMC_CONFIG2: - - gpmc,cs-on-ns: Assertion time - - gpmc,cs-rd-off-ns: Read deassertion time - - gpmc,cs-wr-off-ns: Write deassertion time - - ADV signal timings (in nanoseconds) corresponding to GPMC_CONFIG3: - - gpmc,adv-on-ns: Assertion time - - gpmc,adv-rd-off-ns: Read deassertion time - - gpmc,adv-wr-off-ns: Write deassertion time - - gpmc,adv-aad-mux-on-ns: Assertion time for AAD - - gpmc,adv-aad-mux-rd-off-ns: Read deassertion time for AAD - - gpmc,adv-aad-mux-wr-off-ns: Write deassertion time for AAD - - WE signals timings (in nanoseconds) corresponding to GPMC_CONFIG4: - - gpmc,we-on-ns Assertion time - - gpmc,we-off-ns: Deassertion time - - OE signals timings (in nanoseconds) corresponding to GPMC_CONFIG4: - - gpmc,oe-on-ns: Assertion time - - gpmc,oe-off-ns: Deassertion time - - gpmc,oe-aad-mux-on-ns: Assertion time for AAD - - gpmc,oe-aad-mux-off-ns: Deassertion time for AAD - - Access time and cycle time timings (in nanoseconds) corresponding to - GPMC_CONFIG5: - - gpmc,page-burst-access-ns: Multiple access word delay - - gpmc,access-ns: Start-cycle to first data valid delay - - gpmc,rd-cycle-ns: Total read cycle time - - gpmc,wr-cycle-ns: Total write cycle time - - gpmc,bus-turnaround-ns: Turn-around time between successive accesses - - gpmc,cycle2cycle-delay-ns: Delay between chip-select pulses - - gpmc,clk-activation-ns: GPMC clock activation time - - gpmc,wait-monitoring-ns: Start of wait monitoring with regard to valid - data - -Boolean timing parameters. If property is present parameter enabled and -disabled if omitted: - - gpmc,adv-extra-delay: ADV signal is delayed by half GPMC clock - - gpmc,cs-extra-delay: CS signal is delayed by half GPMC clock - - gpmc,cycle2cycle-diffcsen: Add "cycle2cycle-delay" between successive - accesses to a different CS - - gpmc,cycle2cycle-samecsen: Add "cycle2cycle-delay" between successive - accesses to the same CS - - gpmc,oe-extra-delay: OE signal is delayed by half GPMC clock - - gpmc,we-extra-delay: WE signal is delayed by half GPMC clock - - gpmc,time-para-granularity: Multiply all access times by 2 - -The following are only applicable to OMAP3+ and AM335x: - - gpmc,wr-access-ns: In synchronous write mode, for single or - burst accesses, defines the number of - GPMC_FCLK cycles from start access time - to the GPMC_CLK rising edge used by the - memory device for the first data capture. - - gpmc,wr-data-mux-bus-ns: In address-data multiplex mode, specifies - the time when the first data is driven on - the address-data bus. - -GPMC chip-select settings properties for child nodes. All are optional. - -- gpmc,burst-length Page/burst length. Must be 4, 8 or 16. -- gpmc,burst-wrap Enables wrap bursting -- gpmc,burst-read Enables read page/burst mode -- gpmc,burst-write Enables write page/burst mode -- gpmc,device-width Total width of device(s) connected to a GPMC - chip-select in bytes. The GPMC supports 8-bit - and 16-bit devices and so this property must be - 1 or 2. -- gpmc,mux-add-data Address and data multiplexing configuration. - Valid values are 1 for address-address-data - multiplexing mode and 2 for address-data - multiplexing mode. -- gpmc,sync-read Enables synchronous read. Defaults to asynchronous - is this is not set. -- gpmc,sync-write Enables synchronous writes. Defaults to asynchronous - is this is not set. -- gpmc,wait-pin Wait-pin used by client. Must be less than - "gpmc,num-waitpins". -- gpmc,wait-on-read Enables wait monitoring on reads. -- gpmc,wait-on-write Enables wait monitoring on writes. - -Example for an AM33xx board: - - gpmc: gpmc@50000000 { - compatible = "ti,am3352-gpmc"; - ti,hwmods = "gpmc"; - reg = <0x50000000 0x2000>; - interrupts = <100>; - dmas = <&edma 52 0>; - dma-names = "rxtx"; - gpmc,num-cs = <8>; - gpmc,num-waitpins = <2>; - #address-cells = <2>; - #size-cells = <1>; - ranges = <0 0 0x08000000 0x10000000>; /* CS0 @addr 0x8000000, size 0x10000000 */ - interrupt-controller; - #interrupt-cells = <2>; - gpio-controller; - #gpio-cells = <2>; - - /* child nodes go here */ - };
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +364 -0
364 lines not on this page · raw message
Documentation/devicetree/bindings/mtd/gpmc-nand.txt +1 -1
@@ -5,7 +5,7 @@ the GPMC controller with a name of "nand". All timing relevant properties as well as generic gpmc child properties are explained in a separate documents - please refer to -Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt +Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml For NAND specific properties such as ECC modes or bus width, please refer to Documentation/devicetree/bindings/mtd/nand-controller.yaml
Documentation/devicetree/bindings/mtd/gpmc-nor.txt +2 -2
@@ -5,7 +5,7 @@ child nodes of the GPMC controller with a name of "nor". All timing relevant properties as well as generic GPMC child properties are explained in a separate documents. Please refer to -Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt +Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml Required properties: - bank-width: Width of NOR flash in bytes. GPMC supports 8-bit and
@@ -28,7 +28,7 @@ Required properties: Optional properties: - gpmc,XXX Additional GPMC timings and settings parameters. See - Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt + Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml Optional properties for partition table parsing: - #address-cells: should be set to 1
Documentation/devicetree/bindings/mtd/gpmc-onenand.txt +1 -1
@@ -5,7 +5,7 @@ the GPMC controller with a name of "onenand". All timing relevant properties as well as generic gpmc child properties are explained in a separate documents - please refer to -Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt +Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml Required properties:
Documentation/devicetree/bindings/net/gpmc-eth.txt +2 -2
@@ -9,7 +9,7 @@ the GPMC controller with an "ethernet" name. All timing relevant properties as well as generic GPMC child properties are explained in a separate documents. Please refer to -Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt +Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml For the properties relevant to the ethernet controller connected to the GPMC refer to the binding documentation of the device. For example, the documentation
@@ -43,7 +43,7 @@ Required properties: Optional properties: - gpmc,XXX Additional GPMC timings and settings parameters. See - Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt + Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml Example:
Signature · 1 line
2.17.1
Rob Herring
maintainerQuoted 14 lines · Roger Quadros
Convert omap-gpmc.txt to ti,gpmc.yaml.
Signed-off-by Roger Quadros <[email protected]>--- .../bindings/memory-controllers/omap-gpmc.txt | 157 -------- .../bindings/memory-controllers/ti,gpmc.yaml | 364 ++++++++++++++++++ .../devicetree/bindings/mtd/gpmc-nand.txt | 2 +- .../devicetree/bindings/mtd/gpmc-nor.txt | 4 +- .../devicetree/bindings/mtd/gpmc-onenand.txt | 2 +- .../devicetree/bindings/net/gpmc-eth.txt | 4 +- 6 files changed, 370 insertions(+), 163 deletions(-) delete mode 100644 Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt create mode 100644 Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml
My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13):
yamllint warnings/errors:
dtschema/dtc warnings/errors:Documentation/devicetree/bindings/memory-controllers/ti,gpmc.example.dt.yaml:0:0: /example-0/memory-controller@50000000/nand@0,0: failed to match any schema with compatible: ['ti,omap2-nand']
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/patch/1523568
This check can fail if there are any dependencies. The base for a patch series is generally the most recent rc1.
If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date:
pip3 install dtschema --upgrade
Please check and re-submit.
Hi Rob,
Quoted 16 lines · Rob Herring
Quoted 14 lines · Roger Quadros
Convert omap-gpmc.txt to ti,gpmc.yaml.
Signed-off-by Roger Quadros <[email protected]>--- .../bindings/memory-controllers/omap-gpmc.txt | 157 -------- .../bindings/memory-controllers/ti,gpmc.yaml | 364 ++++++++++++++++++ .../devicetree/bindings/mtd/gpmc-nand.txt | 2 +- .../devicetree/bindings/mtd/gpmc-nor.txt | 4 +- .../devicetree/bindings/mtd/gpmc-onenand.txt | 2 +- .../devicetree/bindings/net/gpmc-eth.txt | 4 +- 6 files changed, 370 insertions(+), 163 deletions(-) delete mode 100644 Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt create mode 100644 Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml
Quoted 7 lines
My bot found errors running 'make DT_CHECKER_FLAGS=-m
dt_binding_check' on your patch (DT_CHECKER_FLAGSis new in v5.13):yamllint warnings/errors:
dtschema/dtc warnings/errors:
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.example.dt.yaml:0:0: /example-0/memory-controller@50000000/nand@0,0: failed to match any schema with compatible: ['ti,omap2-nand']
'ti,omap2-nand' compatible is being added in patch 3 of this series. So the error will go away there.
cheers,
-roger
Quoted 15 lines
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/patch/1523568
This check can fail if there are any dependencies. The base for a patch series is generally the most recent rc1.
If you already ran 'make
dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date:pip3 install dtschema --upgrade
Please check and re-submit.
Rob Herring
maintainerQuoted 44 lines · Roger Quadros
Convert omap-gpmc.txt to ti,gpmc.yaml.
Signed-off-by Roger Quadros <[email protected]>--- .../bindings/memory-controllers/omap-gpmc.txt | 157 -------- .../bindings/memory-controllers/ti,gpmc.yaml | 364 ++++++++++++++++++ .../devicetree/bindings/mtd/gpmc-nand.txt | 2 +- .../devicetree/bindings/mtd/gpmc-nor.txt | 4 +- .../devicetree/bindings/mtd/gpmc-onenand.txt | 2 +- .../devicetree/bindings/net/gpmc-eth.txt | 4 +- 6 files changed, 370 insertions(+), 163 deletions(-) delete mode 100644 Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt create mode 100644 Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yamlDocumentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +24
-0@@ -0,0 +1,364 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/memory-controllers/ti,gpmc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Texas Instruments GPMC Memory Controller device-tree bindings + +maintainers: + - Tony Lindgren <[email protected]> + - Roger Quadros <[email protected]> + +description: + The GPMC is a unified memory controller dedicated for interfacing + with external memory devices like + - Asynchronous SRAM-like memories and ASICs + - Asynchronous, synchronous, and page mode burst NOR flash + - NAND flash + - Pseudo-SRAM devices + +properties: + compatible: + items: + - enum:
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 34
Quoted 10 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +10
-0+ - ti,omap2420-gpmc + - ti,omap2430-gpmc + - ti,omap3430-gpmc + - ti,omap4430-gpmc + - ti,am3352-gpmc + + reg: + items: + - description: + Configuration registers for the controller.
Just 'maxItems: 1' is sufficient.
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 36
Quoted 2 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +2
-0+ + interrupts: true
Need to define how many.
Quoted 75 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +75
-0+ + clocks: + maxItems: 1 + description: | + Functional clock. Used for bus timing calculations and + GPMC configuration. + + clock-names: + items: + - const: fck + + dmas: + items: + - description: DMA channel for GPMC NAND prefetch + + dma-names: + items: + - const: rxtx + + "#address-cells": + const: 2 + + "#size-cells": + const: 1 + + gpmc,num-cs: + description: maximum number of supported chip-select lines. + $ref: /schemas/types.yaml#/definitions/uint32 + + gpmc,num-waitpins: + description: maximum number of supported wait pins. + $ref: /schemas/types.yaml#/definitions/uint32 + + ranges: + minItems: 1 + description: | + Must be set up to reflect the memory layout with four + integer values for each chip-select line in use, + <cs-number> 0 <physical address of mapping> <size> + + items: + - description: NAND bank 0 + - description: NOR/SRAM bank 0 + - description: NOR/SRAM bank 1 + + '#interrupt-cells': + const: 2 + + interrupt-controller: + description: | + The GPMC driver implements and interrupt controller for + the NAND events "fifoevent" and "termcount" plus the + rising/falling edges on the GPMC_WAIT pins. + The interrupt number mapping is as follows + 0 - NAND_fifoevent + 1 - NAND_termcount + 2 - GPMC_WAIT0 pin edge + 3 - GPMC_WAIT1 pin edge, and so on. + + '#gpio-cells': + const: 2 + + gpio-controller: + description: | + The GPMC driver implements a GPIO controller for the + GPMC WAIT pins that can be used as general purpose inputs. + 0 maps to GPMC_WAIT0 pin. + + ti,hwmods: + description: + Name of the HWMOD associated with GPMC. This is for legacy + omap2/3 platforms only. + $ref: /schemas/types.yaml#/definitions/string + deprecated: true +
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 121
Quoted 10 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +10
-0+ ti,no-idle-on-init: + description: + Prevent idling the module at init. This is for legacy omap2/3 + platforms only. + type: boolean + deprecated: true + +patternProperties: +# "@[0-3],[a-f0-9]+$": + "^[a-zA-Z][a-zA-Z0-9,+\\-._]{0,63}@[0-9a-fA-F]+(,[0-9a-fA-F]+)*$":
Why the commented regex. There's no need for a full regex as we already do that elsewhere. You only need to define the unit-address format.
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 131
Quoted 10 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +10
-0+ type: object + description: | + The child device node represents the device connected to the GPMC + bus. The device can be a NAND controller, SRAM device, NOR device + or an ASIC. + + properties: + compatible: + description: + Compatible of attached device.
Duh. Drop.
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 135
Quoted 4 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +4
-0+ + reg: + items: + - description: Register access space for the device
A device with 2 register ranges isn't allowed?
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 141
Quoted 6 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +6
-0+ +# GPMC Timing properties for child nodes. All are optional and default to 0. + + gpmc,sync-clk-ps: + description: Minimum clock period for synchronous mode, in picoseconds + $ref: /schemas/types.yaml#/definitions/uint32
default: 0
And elsewhere...
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 146
Quoted 5 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +5
-0+ +# Chip-select signal timings (in nanoseconds) corresponding to GPMC_CONFIG2: + gpmc,cs-on-ns: + description: Assertion time + $ref: /schemas/types.yaml#/definitions/uint32
Blank line between DT properties.
Don't need a type ref with a standard unit suffix.
Is there a maximum value for all these?
Quoted 280 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +218
-0+ gpmc,cs-rd-off-ns: + description: Read deassertion time + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,cs-wr-off-ns: + description: Write deassertion time + $ref: /schemas/types.yaml#/definitions/uint32 + +# ADV signal timings (in nanoseconds) corresponding to GPMC_CONFIG3: + gpmc,adv-on-ns: + description: Assertion time + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,adv-rd-off-ns: + description: Read deassertion time + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,adv-wr-off-ns: + description: Write deassertion time + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,adv-aad-mux-on-ns: + description: Assertion time for AAD + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,adv-aad-mux-rd-off-ns: + description: Read deassertion time for AAD + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,adv-aad-mux-wr-off-ns: + description: Write deassertion time for AAD + $ref: /schemas/types.yaml#/definitions/uint32 + +# WE signals timings (in nanoseconds) corresponding to GPMC_CONFIG4: + gpmc,we-on-ns: + description: Assertion time + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,we-off-ns: + description: Deassertion time + $ref: /schemas/types.yaml#/definitions/uint32 + +# OE signals timings (in nanoseconds) corresponding to GPMC_CONFIG4: + gpmc,oe-on-ns: + description: Assertion time + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,oe-off-ns: + description: Deassertion time + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,oe-aad-mux-on-ns: + description: Assertion time for AAD + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,oe-aad-mux-off-ns: + description: Deassertion time for AAD + $ref: /schemas/types.yaml#/definitions/uint32 + +# Access time and cycle time timings (in nanoseconds) corresponding to +# GPMC_CONFIG5: + gpmc,page-burst-access-ns: + description: Multiple access word delay + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,access-ns: + description: Start-cycle to first data valid delay + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,rd-cycle-ns: + description: Total read cycle time + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,wr-cycle-ns: + description: Total write cycle time + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,bus-turnaround-ns: + description: Turn-around time between successive accesses + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,cycle2cycle-delay-ns: + description: Delay between chip-select pulses + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,clk-activation-ns: + description: GPMC clock activation time + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,wait-monitoring-ns: + description: Start of wait monitoring with regard to valid data + $ref: /schemas/types.yaml#/definitions/uint32 + +# Boolean timing parameters. If property is present, parameter is enabled +# otherwise disabled. + gpmc,adv-extra-delay: + description: ADV signal is delayed by half GPMC clock + type: boolean + gpmc,cs-extra-delay: + description: CS signal is delayed by half GPMC clock + type: boolean + gpmc,cycle2cycle-diffcsen: + description: | + Add "cycle2cycle-delay" between successive accesses + to a different CS + type: boolean + gpmc,cycle2cycle-samecsen: + description: | + Add "cycle2cycle-delay" between successive accesses + to the same CS + type: boolean + gpmc,oe-extra-delay: + description: OE signal is delayed by half GPMC clock + type: boolean + gpmc,we-extra-delay: + description: WE signal is delayed by half GPMC clock + type: boolean + gpmc,time-para-granularity: + description: Multiply all access times by 2 + type: boolean + +# The following two properties are applicable only to OMAP3+ and AM335x: + gpmc,wr-access-ns: + description: | + In synchronous write mode, for single or + burst accesses, defines the number of + GPMC_FCLK cycles from start access time + to the GPMC_CLK rising edge used by the + memory device for the first data capture. + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,wr-data-mux-bus-ns: + description: | + In address-data multiplex mode, specifies + the time when the first data is driven on + the address-data bus. + $ref: /schemas/types.yaml#/definitions/uint32 + +# GPMC chip-select settings properties for child nodes. All are optional. + + gpmc,burst-length: + description: Page/burst length. Must be 4, 8 or 16. + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [4, 8, 16] + gpmc,burst-wrap: + description: Enables wrap bursting + type: boolean + gpmc,burst-read: + description: Enables read page/burst mode + type: boolean + gpmc,burst-write: + description: Enables write page/burst mode + type: boolean + gpmc,device-width: + description: | + Total width of device(s) connected to a GPMC + chip-select in bytes. The GPMC supports 8-bit + and 16-bit devices and so this property must be + 1 or 2. + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [1, 2] + gpmc,mux-add-data: + description: | + Address and data multiplexing configuration. + Valid values are: + 0 for Non multiplexed mode + 1 for address-address-data multiplexing mode and + 2 for address-data multiplexing mode. + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2] + gpmc,sync-read: + description: | + Enables synchronous read. Defaults to asynchronous + is this is not set. + type: boolean + gpmc,sync-write: + description: | + Enables synchronous writes. Defaults to asynchronous + is this is not set. + type: boolean + gpmc,wait-pin: + description: | + Wait-pin used by client. Must be less than "gpmc,num-waitpins". + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,wait-on-read: + description: Enables wait monitoring on reads. + type: boolean + gpmc,wait-on-write: + description: Enables wait monitoring on writes. + type: boolean + + required: + - reg + +required: + - compatible + - reg + - gpmc,num-cs + - gpmc,num-waitpins + - "#address-cells" + - "#size-cells" + +additionalProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/arm-gic.h> + #include <dt-bindings/gpio/gpio.h> + + gpmc: memory-controller@50000000 { + compatible = "ti,am3352-gpmc"; + reg = <0x50000000 0x2000>; + interrupts = <100>; + clocks = <&l3s_clkctrl>; + clock-names = "fck"; + dmas = <&edma 52 0>; + dma-names = "rxtx"; + gpmc,num-cs = <8>; + gpmc,num-waitpins = <2>; + #address-cells = <2>; + #size-cells = <1>; + ranges = <0 0 0x08000000 0x10000000>; /* CS0 @addr 0x8000000, size 0x10000000 */ + interrupt-controller; + #interrupt-cells = <2>; + gpio-controller; + #gpio-cells = <2>; + + nand@0,0 { + compatible = "ti,omap2-nand"; + reg = <0 0 4>; + interrupt-parent = <&gpmc>; + interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */ + <1 IRQ_TYPE_NONE>; /* termcount */ + rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 pin */ + }; + };Documentation/devicetree/bindings/mtd/gpmc-nand.txt +1
-1@@ -5,7 +5,7 @@ the GPMC controller with a name of "nand". All timing relevant properties as well as generic gpmc child properties are explained in a separate documents - please refer to -Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt +Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml For NAND specific properties such as ECC modes or bus width, please refer to Documentation/devicetree/bindings/mtd/nand-controller.yamlDocumentation/devicetree/bindings/mtd/gpmc-nor.txt +2
-2@@ -5,7 +5,7 @@ child nodes of the GPMC controller with a name of "nor". All timing relevant properties as well as generic GPMC child properties are explained in a separate documents. Please refer to -Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt +Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml Required properties: - bank-width: Width of NOR flash in bytes. GPMC supports 8-bit and@@ -28,7 +28,7 @@ Required properties: Optional properties: - gpmc,XXX Additional GPMC timings and settings parameters. See - Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt + Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml Optional properties for partition table parsing: - #address-cells: should be set to 1Documentation/devicetree/bindings/mtd/gpmc-onenand.txt +1
-1@@ -5,7 +5,7 @@ the GPMC controller with a name of "onenand". All timing relevant properties as well as generic gpmc child properties are explained in a separate documents - please refer to -Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt +Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml Required properties:Documentation/devicetree/bindings/net/gpmc-eth.txt +1
-1@@ -9,7 +9,7 @@ the GPMC controller with an "ethernet" name. All timing relevant properties as well as generic GPMC child properties are explained in a separate documents. Please refer to -Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt +Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml For the properties relevant to the ethernet controller connected to the GPMC refer to the binding documentation of the device. For example, the documentation
Documentation/devicetree/bindings/net/gpmc-eth.txt Required properties: · line 46
Quoted 5 lines
Documentation/devicetree/bindings/net/gpmc-eth.txt +1
-1@@ -43,7 +43,7 @@ Required properties: Optional properties: - gpmc,XXX Additional GPMC timings and settings parameters. See - Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt + Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml
Perhaps delete this file first in the series so you don't have to update it.
Rob
Hi Rob,
Quoted 143 lines · Rob Herring
Quoted 44 lines · Roger Quadros
Convert omap-gpmc.txt to ti,gpmc.yaml.
Signed-off-by Roger Quadros <[email protected]>--- .../bindings/memory-controllers/omap-gpmc.txt | 157 -------- .../bindings/memory-controllers/ti,gpmc.yaml | 364 ++++++++++++++++++ .../devicetree/bindings/mtd/gpmc-nand.txt | 2 +- .../devicetree/bindings/mtd/gpmc-nor.txt | 4 +- .../devicetree/bindings/mtd/gpmc-onenand.txt | 2 +- .../devicetree/bindings/net/gpmc-eth.txt | 4 +- 6 files changed, 370 insertions(+), 163 deletions(-) delete mode 100644 Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt create mode 100644 Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yamlDocumentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +24
-0@@ -0,0 +1,364 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/memory-controllers/ti,gpmc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Texas Instruments GPMC Memory Controller device-tree bindings + +maintainers: + - Tony Lindgren <[email protected]> + - Roger Quadros <[email protected]> + +description: + The GPMC is a unified memory controller dedicated for interfacing + with external memory devices like + - Asynchronous SRAM-like memories and ASICs + - Asynchronous, synchronous, and page mode burst NOR flash + - NAND flash + - Pseudo-SRAM devices + +properties: + compatible: + items: + - enum:Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 34
Quoted 10 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +10
-0+ - ti,omap2420-gpmc + - ti,omap2430-gpmc + - ti,omap3430-gpmc + - ti,omap4430-gpmc + - ti,am3352-gpmc + + reg: + items: + - description: + Configuration registers for the controller.Just 'maxItems: 1' is sufficient.
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 36
Quoted 2 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +2
-0+ + interrupts: trueNeed to define how many.
Quoted 80 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +80
-0+ + clocks: + maxItems: 1 + description: | + Functional clock. Used for bus timing calculations and + GPMC configuration. + + clock-names: + items: + - const: fck + + dmas: + items: + - description: DMA channel for GPMC NAND prefetch + + dma-names: + items: + - const: rxtx + + "#address-cells": + const: 2 + + "#size-cells": + const: 1 + + gpmc,num-cs: + description: maximum number of supported chip-select lines. + $ref: /schemas/types.yaml#/definitions/uint32 + + gpmc,num-waitpins: + description: maximum number of supported wait pins. + $ref: /schemas/types.yaml#/definitions/uint32 + + ranges: + minItems: 1 + description: | + Must be set up to reflect the memory layout with four + integer values for each chip-select line in use, + <cs-number> 0 <physical address of mapping> <size> + + items: + - description: NAND bank 0 + - description: NOR/SRAM bank 0 + - description: NOR/SRAM bank 1 + + '#interrupt-cells': + const: 2 + + interrupt-controller: + description: | + The GPMC driver implements and interrupt controller for + the NAND events "fifoevent" and "termcount" plus the + rising/falling edges on the GPMC_WAIT pins. + The interrupt number mapping is as follows + 0 - NAND_fifoevent + 1 - NAND_termcount + 2 - GPMC_WAIT0 pin edge + 3 - GPMC_WAIT1 pin edge, and so on. + + '#gpio-cells': + const: 2 + + gpio-controller: + description: | + The GPMC driver implements a GPIO controller for the + GPMC WAIT pins that can be used as general purpose inputs. + 0 maps to GPMC_WAIT0 pin. + + ti,hwmods: + description: + Name of the HWMOD associated with GPMC. This is for legacy + omap2/3 platforms only. + $ref: /schemas/types.yaml#/definitions/string + deprecated: true + + ti,no-idle-on-init: + description: + Prevent idling the module at init. This is for legacy omap2/3 + platforms only. + type: boolean
Quoted 8 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml
Quoted 4 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +4
-0+ deprecated: true + +patternProperties: +# "@[0-3],[a-f0-9]+$":>> + "^[a-zA-Z][a-zA-Z0-9,+\\-._]{0,63}@[0-9a-fA-F]+(,[0-9a-fA-F]+)*$":Why the commented regex. There's no need for a full regex as we already do that elsewhere. You only need to define the unit-address format.
This should be
"@[0-7],[a-f0-9]+$":
I added the full regex during debug but forgot to take it off.
Quoted 12 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 131
Quoted 11 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +10
-0+ type: object + description: | + The child device node represents the device connected to the GPMC + bus. The device can be a NAND controller, SRAM device, NOR device + or an ASIC. + + properties: + compatible: + description: + Compatible of attached device.
Quoted 8 lines
Duh. Drop.
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 135
Quoted 4 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +4
-0+ + reg: + items: + - description: Register access space for the deviceA device with 2 register ranges isn't allowed?
GPMC is actually a memory controller and we are describing the children here. Each child has to have a register range.
Quoted 20 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 141
Quoted 7 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +6
-0+ +# GPMC Timing properties for child nodes. All are optional and default to 0. + + gpmc,sync-clk-ps: + description: Minimum clock period for synchronous mode, in picoseconds + $ref: /schemas/types.yaml#/definitions/uint32default: 0
And elsewhere...
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 146
Quoted 5 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +5
-0+ +# Chip-select signal timings (in nanoseconds) corresponding to GPMC_CONFIG2: + gpmc,cs-on-ns: + description: Assertion time + $ref: /schemas/types.yaml#/definitions/uint32Blank line between DT properties.
Quoted 4 lines
Don't need a type ref with a standard unit suffix.
Is there a maximum value for all these?
There is a maximum value but it is not an absolute value in time unit (ns) as it depends on the GPMC functional clock rate which is platform specific.
e.g. for gpmc,cs-on-ns
maximum: GPMC clock period * 15
Quoted 7 lines
Quoted 7 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +7
-0+ gpmc,cs-rd-off-ns: + description: Read deassertion time + $ref: /schemas/types.yaml#/definitions/uint32 + gpmc,cs-wr-off-ns: + description: Write deassertion time + $ref: /schemas/types.yaml#/definitions/uint32 +
<snip>
Quoted 16 lines
Quoted 16 lines
Documentation/devicetree/bindings/net/gpmc-eth.txt +1
-1@@ -9,7 +9,7 @@ the GPMC controller with an "ethernet" name. All timing relevant properties as well as generic GPMC child properties are explained in a separate documents. Please refer to -Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt +Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml For the properties relevant to the ethernet controller connected to the GPMC refer to the binding documentation of the device. For example, the documentation@@ -43,7 +43,7 @@ Required properties:
Quoted 8 lines
Documentation/devicetree/bindings/net/gpmc-eth.txt Required properties: · line 46
Quoted 4 lines
Documentation/devicetree/bindings/net/gpmc-eth.txt +1
-1Optional properties: - gpmc,XXX Additional GPMC timings and settings parameters. See - Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt + Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yamlPerhaps delete this file first in the series so you don't have to update it.
Yes. Thanks for review :)
cheers,
-roger
Rob Herring
maintainerQuoted 175 lines · Roger Quadros
Hi Rob,
Quoted 143 lines · Rob Herring
Quoted 44 lines · Roger Quadros
Convert omap-gpmc.txt to ti,gpmc.yaml.
Signed-off-by Roger Quadros <[email protected]>--- .../bindings/memory-controllers/omap-gpmc.txt | 157 -------- .../bindings/memory-controllers/ti,gpmc.yaml | 364 ++++++++++++++++++ .../devicetree/bindings/mtd/gpmc-nand.txt | 2 +- .../devicetree/bindings/mtd/gpmc-nor.txt | 4 +- .../devicetree/bindings/mtd/gpmc-onenand.txt | 2 +- .../devicetree/bindings/net/gpmc-eth.txt | 4 +- 6 files changed, 370 insertions(+), 163 deletions(-) delete mode 100644 Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt create mode 100644 Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yamlDocumentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +24
-0@@ -0,0 +1,364 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/memory-controllers/ti,gpmc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Texas Instruments GPMC Memory Controller device-tree bindings + +maintainers: + - Tony Lindgren <[email protected]> + - Roger Quadros <[email protected]> + +description: + The GPMC is a unified memory controller dedicated for interfacing + with external memory devices like + - Asynchronous SRAM-like memories and ASICs + - Asynchronous, synchronous, and page mode burst NOR flash + - NAND flash + - Pseudo-SRAM devices + +properties: + compatible: + items: + - enum:Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 34
Quoted 10 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +10
-0+ - ti,omap2420-gpmc + - ti,omap2430-gpmc + - ti,omap3430-gpmc + - ti,omap4430-gpmc + - ti,am3352-gpmc + + reg: + items: + - description: + Configuration registers for the controller.Just 'maxItems: 1' is sufficient.
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 36
Quoted 2 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +2
-0+ + interrupts: trueNeed to define how many.
Quoted 80 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +80
-0+ + clocks: + maxItems: 1 + description: | + Functional clock. Used for bus timing calculations and + GPMC configuration. + + clock-names: + items: + - const: fck + + dmas: + items: + - description: DMA channel for GPMC NAND prefetch + + dma-names: + items: + - const: rxtx + + "#address-cells": + const: 2 + + "#size-cells": + const: 1 + + gpmc,num-cs: + description: maximum number of supported chip-select lines. + $ref: /schemas/types.yaml#/definitions/uint32 + + gpmc,num-waitpins: + description: maximum number of supported wait pins. + $ref: /schemas/types.yaml#/definitions/uint32 + + ranges: + minItems: 1 + description: | + Must be set up to reflect the memory layout with four + integer values for each chip-select line in use, + <cs-number> 0 <physical address of mapping> <size> + + items: + - description: NAND bank 0 + - description: NOR/SRAM bank 0 + - description: NOR/SRAM bank 1 + + '#interrupt-cells': + const: 2 + + interrupt-controller: + description: | + The GPMC driver implements and interrupt controller for + the NAND events "fifoevent" and "termcount" plus the + rising/falling edges on the GPMC_WAIT pins. + The interrupt number mapping is as follows + 0 - NAND_fifoevent + 1 - NAND_termcount + 2 - GPMC_WAIT0 pin edge + 3 - GPMC_WAIT1 pin edge, and so on. + + '#gpio-cells': + const: 2 + + gpio-controller: + description: | + The GPMC driver implements a GPIO controller for the + GPMC WAIT pins that can be used as general purpose inputs. + 0 maps to GPMC_WAIT0 pin. + + ti,hwmods: + description: + Name of the HWMOD associated with GPMC. This is for legacy + omap2/3 platforms only. + $ref: /schemas/types.yaml#/definitions/string + deprecated: true + + ti,no-idle-on-init: + description: + Prevent idling the module at init. This is for legacy omap2/3 + platforms only. + type: booleanQuoted 8 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml
Quoted 4 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +4
-0+ deprecated: true + +patternProperties: +# "@[0-3],[a-f0-9]+$":>> + "^[a-zA-Z][a-zA-Z0-9,+\\-._]{0,63}@[0-9a-fA-F]+(,[0-9a-fA-F]+)*$":Why the commented regex. There's no need for a full regex as we already do that elsewhere. You only need to define the unit-address format.
This should be
"@[0-7],[a-f0-9]+$":I added the full regex during debug but forgot to take it off.
Quoted 14 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 131
Quoted 11 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +10
-0+ type: object + description: | + The child device node represents the device connected to the GPMC + bus. The device can be a NAND controller, SRAM device, NOR device + or an ASIC. + + properties: + compatible: + description: + Compatible of attached device.Duh. Drop.
Quoted 8 lines
Quoted 6 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 135
Quoted 4 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +4
-0+ + reg: + items: + - description: Register access space for the deviceA device with 2 register ranges isn't allowed?
GPMC is actually a memory controller and we are describing the children here.
Yes, I understand what it is.
Quoted 1 line
Each child has to have a register range.
What you are saying here with the schema is there is only 1 register range allowed for the child node. You don't know how many a child device may have. That's a property of the child device. You just need 'reg: true' here.
Rob
Quoted 185 lines · Rob Herring
Quoted 175 lines · Roger Quadros
Hi Rob,
Quoted 143 lines · Rob Herring
Quoted 44 lines · Roger Quadros
Convert omap-gpmc.txt to ti,gpmc.yaml.
Signed-off-by Roger Quadros <[email protected]>--- .../bindings/memory-controllers/omap-gpmc.txt | 157 -------- .../bindings/memory-controllers/ti,gpmc.yaml | 364 ++++++++++++++++++ .../devicetree/bindings/mtd/gpmc-nand.txt | 2 +- .../devicetree/bindings/mtd/gpmc-nor.txt | 4 +- .../devicetree/bindings/mtd/gpmc-onenand.txt | 2 +- .../devicetree/bindings/net/gpmc-eth.txt | 4 +- 6 files changed, 370 insertions(+), 163 deletions(-) delete mode 100644 Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt create mode 100644 Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yamlDocumentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +24
-0@@ -0,0 +1,364 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/memory-controllers/ti,gpmc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Texas Instruments GPMC Memory Controller device-tree bindings + +maintainers: + - Tony Lindgren <[email protected]> + - Roger Quadros <[email protected]> + +description: + The GPMC is a unified memory controller dedicated for interfacing + with external memory devices like + - Asynchronous SRAM-like memories and ASICs + - Asynchronous, synchronous, and page mode burst NOR flash + - NAND flash + - Pseudo-SRAM devices + +properties: + compatible: + items: + - enum:Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 34
Quoted 10 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +10
-0+ - ti,omap2420-gpmc + - ti,omap2430-gpmc + - ti,omap3430-gpmc + - ti,omap4430-gpmc + - ti,am3352-gpmc + + reg: + items: + - description: + Configuration registers for the controller.Just 'maxItems: 1' is sufficient.
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 36
Quoted 2 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +2
-0+ + interrupts: trueNeed to define how many.
Quoted 80 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +80
-0+ + clocks: + maxItems: 1 + description: | + Functional clock. Used for bus timing calculations and + GPMC configuration. + + clock-names: + items: + - const: fck + + dmas: + items: + - description: DMA channel for GPMC NAND prefetch + + dma-names: + items: + - const: rxtx + + "#address-cells": + const: 2 + + "#size-cells": + const: 1 + + gpmc,num-cs: + description: maximum number of supported chip-select lines. + $ref: /schemas/types.yaml#/definitions/uint32 + + gpmc,num-waitpins: + description: maximum number of supported wait pins. + $ref: /schemas/types.yaml#/definitions/uint32 + + ranges: + minItems: 1 + description: | + Must be set up to reflect the memory layout with four + integer values for each chip-select line in use, + <cs-number> 0 <physical address of mapping> <size> + + items: + - description: NAND bank 0 + - description: NOR/SRAM bank 0 + - description: NOR/SRAM bank 1 + + '#interrupt-cells': + const: 2 + + interrupt-controller: + description: | + The GPMC driver implements and interrupt controller for + the NAND events "fifoevent" and "termcount" plus the + rising/falling edges on the GPMC_WAIT pins. + The interrupt number mapping is as follows + 0 - NAND_fifoevent + 1 - NAND_termcount + 2 - GPMC_WAIT0 pin edge + 3 - GPMC_WAIT1 pin edge, and so on. + + '#gpio-cells': + const: 2 + + gpio-controller: + description: | + The GPMC driver implements a GPIO controller for the + GPMC WAIT pins that can be used as general purpose inputs. + 0 maps to GPMC_WAIT0 pin. + + ti,hwmods: + description: + Name of the HWMOD associated with GPMC. This is for legacy + omap2/3 platforms only. + $ref: /schemas/types.yaml#/definitions/string + deprecated: true + + ti,no-idle-on-init: + description: + Prevent idling the module at init. This is for legacy omap2/3 + platforms only. + type: booleanQuoted 8 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml
Quoted 4 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +4
-0+ deprecated: true + +patternProperties: +# "@[0-3],[a-f0-9]+$":>> + "^[a-zA-Z][a-zA-Z0-9,+\\-._]{0,63}@[0-9a-fA-F]+(,[0-9a-fA-F]+)*$":Why the commented regex. There's no need for a full regex as we already do that elsewhere. You only need to define the unit-address format.
This should be
"@[0-7],[a-f0-9]+$":I added the full regex during debug but forgot to take it off.
Quoted 14 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 131
Quoted 11 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +10
-0+ type: object + description: | + The child device node represents the device connected to the GPMC + bus. The device can be a NAND controller, SRAM device, NOR device + or an ASIC. + + properties: + compatible: + description: + Compatible of attached device.Duh. Drop.
Quoted 8 lines
Quoted 6 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml line 135
Quoted 4 lines
Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml new file +4
-0+ + reg: + items: + - description: Register access space for the deviceA device with 2 register ranges isn't allowed?
GPMC is actually a memory controller and we are describing the children here.
Quoted 8 lines
Yes, I understand what it is.
Quoted 1 line
Each child has to have a register range.
What you are saying here with the schema is there is only 1 register range allowed for the child node. You don't know how many a child device may have. That's a property of the child device. You just need 'reg: true' here.
Now I got it. You are right. Thanks for the explanation :)
cheers,
-roger
Rob Herring
maintainerQuoted 13 lines · Roger Quadros
Convert omap-gpmc.txt to ti,gpmc.yaml.
Signed-off-by Roger Quadros <[email protected]>--- .../bindings/memory-controllers/omap-gpmc.txt | 157 -------- .../bindings/memory-controllers/ti,gpmc.yaml | 364 ++++++++++++++++++ .../devicetree/bindings/mtd/gpmc-nand.txt | 2 +- .../devicetree/bindings/mtd/gpmc-nor.txt | 4 +- .../devicetree/bindings/mtd/gpmc-onenand.txt | 2 +- .../devicetree/bindings/net/gpmc-eth.txt | 4 +- 6 files changed, 370 insertions(+), 163 deletions(-) delete mode 100644 Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt create mode 100644 Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml
Also, please install yamllint and fix all the warnings:
../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:97:6: [warning] wrong indentation: expected 4 but found 5 (indentation) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:135:9: [warning] wrong indentation: expected 10 but found 8 (indentation) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:190:27: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:193:26: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:199:23: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:202:34: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:205:32: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:208:32: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:211:26: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:214:23: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:217:26: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:220:25: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:226:28: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:229:29: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:242:29: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:245:29: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:248:22: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:270:25: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:274:27: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:277:27: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:280:26: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:314:25: [warning] too many spaces after colon (colons) ../Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml:317:24: [warning] too many spaces after colon (colons)
Rob
PATCH v2 3/6 dt-bindings: mtd: ti,gpmc-nand: Convert to yaml
In reply to Roger QuadrosConvert gpmc-nand.txt to ti,gpmc-nand.yaml.
--- .../devicetree/bindings/mtd/gpmc-nand.txt | 147 ------------------ .../devicetree/bindings/mtd/ti,gpmc-nand.yaml | 109 +++++++++++++ 2 files changed, 109 insertions(+), 147 deletions(-) delete mode 100644 Documentation/devicetree/bindings/mtd/gpmc-nand.txt create mode 100644 Documentation/devicetree/bindings/mtd/ti,gpmc-nand.yaml
Documentation/devicetree/bindings/mtd/gpmc-nand.txt deleted +0 -147
@@ -1,147 +0,0 @@ -Device tree bindings for GPMC connected NANDs - -GPMC connected NAND (found on OMAP boards) are represented as child nodes of -the GPMC controller with a name of "nand". - -All timing relevant properties as well as generic gpmc child properties are -explained in a separate documents - please refer to -Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml - -For NAND specific properties such as ECC modes or bus width, please refer to -Documentation/devicetree/bindings/mtd/nand-controller.yaml - - -Required properties: - - - compatible: "ti,omap2-nand" - - reg: range id (CS number), base offset and length of the - NAND I/O space - - interrupts: Two interrupt specifiers, one for fifoevent, one for termcount. - -Optional properties: - - - nand-bus-width: Set this numeric value to 16 if the hardware - is wired that way. If not specified, a bus - width of 8 is assumed. - - - ti,nand-ecc-opt: A string setting the ECC layout to use. One of: - "sw" 1-bit Hamming ecc code via software - "hw" <deprecated> use "ham1" instead - "hw-romcode" <deprecated> use "ham1" instead - "ham1" 1-bit Hamming ecc code - "bch4" 4-bit BCH ecc code - "bch8" 8-bit BCH ecc code - "bch16" 16-bit BCH ECC code - Refer below "How to select correct ECC scheme for your device ?" - - - ti,nand-xfer-type: A string setting the data transfer type. One of: - - "prefetch-polled" Prefetch polled mode (default) - "polled" Polled mode, without prefetch - "prefetch-dma" Prefetch enabled DMA mode - "prefetch-irq" Prefetch enabled irq mode - - - elm_id: <deprecated> use "ti,elm-id" instead - - ti,elm-id: Specifies phandle of the ELM devicetree node. - ELM is an on-chip hardware engine on TI SoC which is used for - locating ECC errors for BCHx algorithms. SoC devices which have - ELM hardware engines should specify this device node in .dtsi - Using ELM for ECC error correction frees some CPU cycles. - - rb-gpios: GPIO specifier for the ready/busy# pin. - -For inline partition table parsing (optional): - - - #address-cells: should be set to 1 - - #size-cells: should be set to 1 - -Example for an AM33xx board: - - gpmc: gpmc@50000000 { - compatible = "ti,am3352-gpmc"; - ti,hwmods = "gpmc"; - reg = <0x50000000 0x36c>; - interrupts = <100>; - gpmc,num-cs = <8>; - gpmc,num-waitpins = <2>; - #address-cells = <2>; - #size-cells = <1>; - ranges = <0 0 0x08000000 0x1000000>; /* CS0 space, 16MB */ - elm_id = <&elm>; - interrupt-controller; - #interrupt-cells = <2>; - - nand@0,0 { - compatible = "ti,omap2-nand"; - reg = <0 0 4>; /* CS0, offset 0, NAND I/O window 4 */ - interrupt-parent = <&gpmc>; - interrupts = <0 IRQ_TYPE_NONE>, <1 IRQ_TYPE NONE>; - nand-bus-width = <16>; - ti,nand-ecc-opt = "bch8"; - ti,nand-xfer-type = "polled"; - rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 */ - - gpmc,sync-clk-ps = <0>; - gpmc,cs-on-ns = <0>; - gpmc,cs-rd-off-ns = <44>; - gpmc,cs-wr-off-ns = <44>; - gpmc,adv-on-ns = <6>; - gpmc,adv-rd-off-ns = <34>; - gpmc,adv-wr-off-ns = <44>; - gpmc,we-off-ns = <40>; - gpmc,oe-off-ns = <54>; - gpmc,access-ns = <64>; - gpmc,rd-cycle-ns = <82>; - gpmc,wr-cycle-ns = <82>; - gpmc,wr-access-ns = <40>; - gpmc,wr-data-mux-bus-ns = <0>; - - #address-cells = <1>; - #size-cells = <1>; - - /* partitions go here */ - }; - }; - -How to select correct ECC scheme for your device ? --------------------------------------------------- -Higher ECC scheme usually means better protection against bit-flips and -increased system lifetime. However, selection of ECC scheme is dependent -on various other factors also like; - -(1) support of built in hardware engines. - Some legacy OMAP SoC do not have ELM harware engine, so those SoC cannot - support ecc-schemes with hardware error-correction (BCHx_HW). However - such SoC can use ecc-schemes with software library for error-correction - (BCHx_HW_DETECTION_SW). The error correction capability with software - library remains equivalent to their hardware counter-part, but there is - slight CPU penalty when too many bit-flips are detected during reads. - -(2) Device parameters like OOBSIZE. - Other factor which governs the selection of ecc-scheme is oob-size. - Higher ECC schemes require more OOB/Spare area to store ECC syndrome, - so the device should have enough free bytes available its OOB/Spare - area to accommodate ECC for entire page. In general following expression - helps in determining if given device can accommodate ECC syndrome: - "2 + (PAGESIZE / 512) * ECC_BYTES" >= OOBSIZE" - where - OOBSIZE number of bytes in OOB/spare area - PAGESIZE number of bytes in main-area of device page - ECC_BYTES number of ECC bytes generated to protect - 512 bytes of data, which is: - '3' for HAM1_xx ecc schemes - '7' for BCH4_xx ecc schemes - '14' for BCH8_xx ecc schemes - '26' for BCH16_xx ecc schemes - - Example(a): For a device with PAGESIZE = 2048 and OOBSIZE = 64 and - trying to use BCH16 (ECC_BYTES=26) ecc-scheme. - Number of ECC bytes per page = (2 + (2048 / 512) * 26) = 106 B - which is greater than capacity of NAND device (OOBSIZE=64) - Hence, BCH16 cannot be supported on given device. But it can - probably use lower ecc-schemes like BCH8. - - Example(b): For a device with PAGESIZE = 2048 and OOBSIZE = 128 and - trying to use BCH16 (ECC_BYTES=26) ecc-scheme. - Number of ECC bytes per page = (2 + (2048 / 512) * 26) = 106 B - which can be accommodated in the OOB/Spare area of this device - (OOBSIZE=128). So this device can use BCH16 ecc-scheme.
Documentation/devicetree/bindings/mtd/ti,gpmc-nand.yaml new file +109 -0
109 lines not on this page · raw message
Signature · 1 line
2.17.1
PATCH v2 4/6 dt-bindings: mtd: ti,gpmc-onenand: Convert to yaml
In reply to Roger QuadrosConvert gpmc-onenand.txt to ti,gpmc-onenand.yaml.
--- .../devicetree/bindings/mtd/gpmc-onenand.txt | 48 ------------- .../bindings/mtd/ti,gpmc-onenand.yaml | 71 +++++++++++++++++++ 2 files changed, 71 insertions(+), 48 deletions(-) delete mode 100644 Documentation/devicetree/bindings/mtd/gpmc-onenand.txt create mode 100644 Documentation/devicetree/bindings/mtd/ti,gpmc-onenand.yaml
Documentation/devicetree/bindings/mtd/gpmc-onenand.txt deleted +0 -48
@@ -1,48 +0,0 @@ -Device tree bindings for GPMC connected OneNANDs - -GPMC connected OneNAND (found on OMAP boards) are represented as child nodes of -the GPMC controller with a name of "onenand". - -All timing relevant properties as well as generic gpmc child properties are -explained in a separate documents - please refer to -Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml - -Required properties: - - - compatible: "ti,omap2-onenand" - - reg: The CS line the peripheral is connected to - - gpmc,device-width: Width of the ONENAND device connected to the GPMC - in bytes. Must be 1 or 2. - -Optional properties: - - - int-gpios: GPIO specifier for the INT pin. - -For inline partition table parsing (optional): - - - #address-cells: should be set to 1 - - #size-cells: should be set to 1 - -Example for an OMAP3430 board: - - gpmc: gpmc@6e000000 { - compatible = "ti,omap3430-gpmc"; - ti,hwmods = "gpmc"; - reg = <0x6e000000 0x1000000>; - interrupts = <20>; - gpmc,num-cs = <8>; - gpmc,num-waitpins = <4>; - #address-cells = <2>; - #size-cells = <1>; - - onenand@0 { - compatible = "ti,omap2-onenand"; - reg = <0 0 0>; /* CS0, offset 0 */ - gpmc,device-width = <2>; - - #address-cells = <1>; - #size-cells = <1>; - - /* partitions go here */ - }; - };
Documentation/devicetree/bindings/mtd/ti,gpmc-onenand.yaml new file +71 -0
71 lines not on this page · raw message
Signature · 1 line
2.17.1
PATCH v2 5/6 dt-bindings: mtd: Remove gpmc-nor.txt
In reply to Roger QuadrosThere is no GPMC NOR compatible or device driver. GPMC is just a bus interface over which standard (CFI/JEDC) NOR Flash chips can be attached.
For NOR chip bindings, please refer to Documentation/devicetree/bindings/mtd/mtd-physmap.yaml
For GPMC bus timing configuration, please refer to Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml
--- .../devicetree/bindings/mtd/gpmc-nor.txt | 98 ------------------- 1 file changed, 98 deletions(-) delete mode 100644 Documentation/devicetree/bindings/mtd/gpmc-nor.txt
Documentation/devicetree/bindings/mtd/gpmc-nor.txt deleted +0 -98
@@ -1,98 +0,0 @@ -Device tree bindings for NOR flash connect to TI GPMC - -NOR flash connected to the TI GPMC (found on OMAP boards) are represented as -child nodes of the GPMC controller with a name of "nor". - -All timing relevant properties as well as generic GPMC child properties are -explained in a separate documents. Please refer to -Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml - -Required properties: -- bank-width: Width of NOR flash in bytes. GPMC supports 8-bit and - 16-bit devices and so must be either 1 or 2 bytes. -- compatible: Documentation/devicetree/bindings/mtd/mtd-physmap.txt -- gpmc,cs-on-ns: Chip-select assertion time -- gpmc,cs-rd-off-ns: Chip-select de-assertion time for reads -- gpmc,cs-wr-off-ns: Chip-select de-assertion time for writes -- gpmc,oe-on-ns: Output-enable assertion time -- gpmc,oe-off-ns: Output-enable de-assertion time -- gpmc,we-on-ns Write-enable assertion time -- gpmc,we-off-ns: Write-enable de-assertion time -- gpmc,access-ns: Start cycle to first data capture (read access) -- gpmc,rd-cycle-ns: Total read cycle time -- gpmc,wr-cycle-ns: Total write cycle time -- linux,mtd-name: Documentation/devicetree/bindings/mtd/mtd-physmap.txt -- reg: Chip-select, base address (relative to chip-select) - and size of NOR flash. Note that base address will be - typically 0 as this is the start of the chip-select. - -Optional properties: -- gpmc,XXX Additional GPMC timings and settings parameters. See - Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml - -Optional properties for partition table parsing: -- #address-cells: should be set to 1 -- #size-cells: should be set to 1 - -Example: - -gpmc: gpmc@6e000000 { - compatible = "ti,omap3430-gpmc", "simple-bus"; - ti,hwmods = "gpmc"; - reg = <0x6e000000 0x1000>; - interrupts = <20>; - gpmc,num-cs = <8>; - gpmc,num-waitpins = <4>; - #address-cells = <2>; - #size-cells = <1>; - - ranges = <0 0 0x10000000 0x08000000>; - - nor@0,0 { - compatible = "cfi-flash"; - linux,mtd-name= "intel,pf48f6000m0y1be"; - #address-cells = <1>; - #size-cells = <1>; - reg = <0 0 0x08000000>; - bank-width = <2>; - - gpmc,mux-add-data; - gpmc,cs-on-ns = <0>; - gpmc,cs-rd-off-ns = <186>; - gpmc,cs-wr-off-ns = <186>; - gpmc,adv-on-ns = <12>; - gpmc,adv-rd-off-ns = <48>; - gpmc,adv-wr-off-ns = <48>; - gpmc,oe-on-ns = <54>; - gpmc,oe-off-ns = <168>; - gpmc,we-on-ns = <54>; - gpmc,we-off-ns = <168>; - gpmc,rd-cycle-ns = <186>; - gpmc,wr-cycle-ns = <186>; - gpmc,access-ns = <114>; - gpmc,page-burst-access-ns = <6>; - gpmc,bus-turnaround-ns = <12>; - gpmc,cycle2cycle-delay-ns = <18>; - gpmc,wr-data-mux-bus-ns = <90>; - gpmc,wr-access-ns = <186>; - gpmc,cycle2cycle-samecsen; - gpmc,cycle2cycle-diffcsen; - - partition@0 { - label = "bootloader-nor"; - reg = <0 0x40000>; - }; - partition@40000 { - label = "params-nor"; - reg = <0x40000 0x40000>; - }; - partition@80000 { - label = "kernel-nor"; - reg = <0x80000 0x200000>; - }; - partition@280000 { - label = "filesystem-nor"; - reg = <0x240000 0x7d80000>; - }; - }; -};
Signature · 1 line
2.17.1
PATCH v2 6/6 dt-bindings: net: Remove gpmc-eth.txt
In reply to Roger QuadrosThere is no GPMC Ethernet compatible or device driver. GPMC is just a bus interface over which devices like Ethernet controller can be to.
For SMSC 911x Ethernet chip bindings, please refer to Documentation/devicetree/bindings/net/smsc,lan9115.yaml
For GPMC bus timing configuration, please refer to Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml
--- .../devicetree/bindings/net/gpmc-eth.txt | 97 ------------------- 1 file changed, 97 deletions(-) delete mode 100644 Documentation/devicetree/bindings/net/gpmc-eth.txt
Documentation/devicetree/bindings/net/gpmc-eth.txt deleted +0 -97
@@ -1,97 +0,0 @@ -Device tree bindings for Ethernet chip connected to TI GPMC - -Besides being used to interface with external memory devices, the -General-Purpose Memory Controller can be used to connect Pseudo-SRAM devices -such as ethernet controllers to processors using the TI GPMC as a data bus. - -Ethernet controllers connected to TI GPMC are represented as child nodes of -the GPMC controller with an "ethernet" name. - -All timing relevant properties as well as generic GPMC child properties are -explained in a separate documents. Please refer to -Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml - -For the properties relevant to the ethernet controller connected to the GPMC -refer to the binding documentation of the device. For example, the documentation -for the SMSC 911x is Documentation/devicetree/bindings/net/smsc,lan9115.yaml - -Child nodes need to specify the GPMC bus address width using the "bank-width" -property but is possible that an ethernet controller also has a property to -specify the I/O registers address width. Even when the GPMC has a maximum 16-bit -address width, it supports devices with 32-bit word registers. -For example with an SMSC LAN911x/912x controller connected to the TI GPMC on an -OMAP2+ board, "bank-width = <2>;" and "reg-io-width = <4>;". - -Required properties: -- bank-width: Address width of the device in bytes. GPMC supports 8-bit - and 16-bit devices and so must be either 1 or 2 bytes. -- compatible: Compatible string property for the ethernet child device. -- gpmc,cs-on-ns: Chip-select assertion time -- gpmc,cs-rd-off-ns: Chip-select de-assertion time for reads -- gpmc,cs-wr-off-ns: Chip-select de-assertion time for writes -- gpmc,oe-on-ns: Output-enable assertion time -- gpmc,oe-off-ns: Output-enable de-assertion time -- gpmc,we-on-ns: Write-enable assertion time -- gpmc,we-off-ns: Write-enable de-assertion time -- gpmc,access-ns: Start cycle to first data capture (read access) -- gpmc,rd-cycle-ns: Total read cycle time -- gpmc,wr-cycle-ns: Total write cycle time -- reg: Chip-select, base address (relative to chip-select) - and size of the memory mapped for the device. - Note that base address will be typically 0 as this - is the start of the chip-select. - -Optional properties: -- gpmc,XXX Additional GPMC timings and settings parameters. See - Documentation/devicetree/bindings/memory-controllers/ti,gpmc.yaml - -Example: - -gpmc: gpmc@6e000000 { - compatible = "ti,omap3430-gpmc"; - ti,hwmods = "gpmc"; - reg = <0x6e000000 0x1000>; - interrupts = <20>; - gpmc,num-cs = <8>; - gpmc,num-waitpins = <4>; - #address-cells = <2>; - #size-cells = <1>; - - ranges = <5 0 0x2c000000 0x1000000>; - - ethernet@5,0 { - compatible = "smsc,lan9221", "smsc,lan9115"; - reg = <5 0 0xff>; - bank-width = <2>; - - gpmc,mux-add-data; - gpmc,cs-on-ns = <0>; - gpmc,cs-rd-off-ns = <186>; - gpmc,cs-wr-off-ns = <186>; - gpmc,adv-on-ns = <12>; - gpmc,adv-rd-off-ns = <48>; - gpmc,adv-wr-off-ns = <48>; - gpmc,oe-on-ns = <54>; - gpmc,oe-off-ns = <168>; - gpmc,we-on-ns = <54>; - gpmc,we-off-ns = <168>; - gpmc,rd-cycle-ns = <186>; - gpmc,wr-cycle-ns = <186>; - gpmc,access-ns = <114>; - gpmc,page-burst-access-ns = <6>; - gpmc,bus-turnaround-ns = <12>; - gpmc,cycle2cycle-delay-ns = <18>; - gpmc,wr-data-mux-bus-ns = <90>; - gpmc,wr-access-ns = <186>; - gpmc,cycle2cycle-samecsen; - gpmc,cycle2cycle-diffcsen; - - interrupt-parent = <&gpio6>; - interrupts = <16>; - vmmc-supply = <&vddvario>; - vmmc_aux-supply = <&vdd33a>; - reg-io-width = <4>; - - smsc,save-mac-address; - }; -};
Signature · 1 line
2.17.1