Documentation / devicetree / bindings / mtd / gpmc-nor.txt


Based on kernel version 5.15. Page generated on 2021-11-01 09:19 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
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/omap-gpmc.txt

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.yaml
- 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.yaml
- 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/omap-gpmc.txt

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>;
		};
	};
};