xref: /freebsd/sys/contrib/device-tree/Bindings/mtd/gpmc-nor.txt (revision 354d7675fe12ace9cde344cb79c7ded792802f88)
1c66ec88fSEmmanuel VadotDevice tree bindings for NOR flash connect to TI GPMC
2c66ec88fSEmmanuel Vadot
3c66ec88fSEmmanuel VadotNOR flash connected to the TI GPMC (found on OMAP boards) are represented as
4c66ec88fSEmmanuel Vadotchild nodes of the GPMC controller with a name of "nor".
5c66ec88fSEmmanuel Vadot
6c66ec88fSEmmanuel VadotAll timing relevant properties as well as generic GPMC child properties are
7c66ec88fSEmmanuel Vadotexplained in a separate documents. Please refer to
8c66ec88fSEmmanuel VadotDocumentation/devicetree/bindings/memory-controllers/omap-gpmc.txt
9c66ec88fSEmmanuel Vadot
10c66ec88fSEmmanuel VadotRequired properties:
11c66ec88fSEmmanuel Vadot- bank-width: 		Width of NOR flash in bytes. GPMC supports 8-bit and
12c66ec88fSEmmanuel Vadot			16-bit devices and so must be either 1 or 2 bytes.
13*354d7675SEmmanuel Vadot- compatible:		Documentation/devicetree/bindings/mtd/mtd-physmap.yaml
14c66ec88fSEmmanuel Vadot- gpmc,cs-on-ns:		Chip-select assertion time
15c66ec88fSEmmanuel Vadot- gpmc,cs-rd-off-ns:	Chip-select de-assertion time for reads
16c66ec88fSEmmanuel Vadot- gpmc,cs-wr-off-ns:	Chip-select de-assertion time for writes
17c66ec88fSEmmanuel Vadot- gpmc,oe-on-ns:	Output-enable assertion time
18c66ec88fSEmmanuel Vadot- gpmc,oe-off-ns:	Output-enable de-assertion time
19c66ec88fSEmmanuel Vadot- gpmc,we-on-ns		Write-enable assertion time
20c66ec88fSEmmanuel Vadot- gpmc,we-off-ns:	Write-enable de-assertion time
21c66ec88fSEmmanuel Vadot- gpmc,access-ns:	Start cycle to first data capture (read access)
22c66ec88fSEmmanuel Vadot- gpmc,rd-cycle-ns:	Total read cycle time
23c66ec88fSEmmanuel Vadot- gpmc,wr-cycle-ns:	Total write cycle time
24*354d7675SEmmanuel Vadot- linux,mtd-name:	Documentation/devicetree/bindings/mtd/mtd-physmap.yaml
25c66ec88fSEmmanuel Vadot- reg:			Chip-select, base address (relative to chip-select)
26c66ec88fSEmmanuel Vadot			and size of NOR flash. Note that base address will be
27c66ec88fSEmmanuel Vadot			typically 0 as this is the start of the chip-select.
28c66ec88fSEmmanuel Vadot
29c66ec88fSEmmanuel VadotOptional properties:
30c66ec88fSEmmanuel Vadot- gpmc,XXX		Additional GPMC timings and settings parameters. See
31c66ec88fSEmmanuel Vadot			Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt
32c66ec88fSEmmanuel Vadot
33c66ec88fSEmmanuel VadotOptional properties for partition table parsing:
34c66ec88fSEmmanuel Vadot- #address-cells: should be set to 1
35c66ec88fSEmmanuel Vadot- #size-cells: should be set to 1
36c66ec88fSEmmanuel Vadot
37c66ec88fSEmmanuel VadotExample:
38c66ec88fSEmmanuel Vadot
39c66ec88fSEmmanuel Vadotgpmc: gpmc@6e000000 {
40c66ec88fSEmmanuel Vadot	compatible = "ti,omap3430-gpmc", "simple-bus";
41c66ec88fSEmmanuel Vadot	ti,hwmods = "gpmc";
42c66ec88fSEmmanuel Vadot	reg = <0x6e000000 0x1000>;
43c66ec88fSEmmanuel Vadot	interrupts = <20>;
44c66ec88fSEmmanuel Vadot	gpmc,num-cs = <8>;
45c66ec88fSEmmanuel Vadot	gpmc,num-waitpins = <4>;
46c66ec88fSEmmanuel Vadot	#address-cells = <2>;
47c66ec88fSEmmanuel Vadot	#size-cells = <1>;
48c66ec88fSEmmanuel Vadot
49c66ec88fSEmmanuel Vadot	ranges = <0 0 0x10000000 0x08000000>;
50c66ec88fSEmmanuel Vadot
51c66ec88fSEmmanuel Vadot	nor@0,0 {
52c66ec88fSEmmanuel Vadot		compatible = "cfi-flash";
53c66ec88fSEmmanuel Vadot		linux,mtd-name= "intel,pf48f6000m0y1be";
54c66ec88fSEmmanuel Vadot		#address-cells = <1>;
55c66ec88fSEmmanuel Vadot		#size-cells = <1>;
56c66ec88fSEmmanuel Vadot		reg = <0 0 0x08000000>;
57c66ec88fSEmmanuel Vadot		bank-width = <2>;
58c66ec88fSEmmanuel Vadot
59c66ec88fSEmmanuel Vadot		gpmc,mux-add-data;
60c66ec88fSEmmanuel Vadot		gpmc,cs-on-ns = <0>;
61c66ec88fSEmmanuel Vadot		gpmc,cs-rd-off-ns = <186>;
62c66ec88fSEmmanuel Vadot		gpmc,cs-wr-off-ns = <186>;
63c66ec88fSEmmanuel Vadot		gpmc,adv-on-ns = <12>;
64c66ec88fSEmmanuel Vadot		gpmc,adv-rd-off-ns = <48>;
65c66ec88fSEmmanuel Vadot		gpmc,adv-wr-off-ns = <48>;
66c66ec88fSEmmanuel Vadot		gpmc,oe-on-ns = <54>;
67c66ec88fSEmmanuel Vadot		gpmc,oe-off-ns = <168>;
68c66ec88fSEmmanuel Vadot		gpmc,we-on-ns = <54>;
69c66ec88fSEmmanuel Vadot		gpmc,we-off-ns = <168>;
70c66ec88fSEmmanuel Vadot		gpmc,rd-cycle-ns = <186>;
71c66ec88fSEmmanuel Vadot		gpmc,wr-cycle-ns = <186>;
72c66ec88fSEmmanuel Vadot		gpmc,access-ns = <114>;
73c66ec88fSEmmanuel Vadot		gpmc,page-burst-access-ns = <6>;
74c66ec88fSEmmanuel Vadot		gpmc,bus-turnaround-ns = <12>;
75c66ec88fSEmmanuel Vadot		gpmc,cycle2cycle-delay-ns = <18>;
76c66ec88fSEmmanuel Vadot		gpmc,wr-data-mux-bus-ns = <90>;
77c66ec88fSEmmanuel Vadot		gpmc,wr-access-ns = <186>;
78c66ec88fSEmmanuel Vadot		gpmc,cycle2cycle-samecsen;
79c66ec88fSEmmanuel Vadot		gpmc,cycle2cycle-diffcsen;
80c66ec88fSEmmanuel Vadot
81c66ec88fSEmmanuel Vadot		partition@0 {
82c66ec88fSEmmanuel Vadot			label = "bootloader-nor";
83c66ec88fSEmmanuel Vadot			reg = <0 0x40000>;
84c66ec88fSEmmanuel Vadot		};
85c66ec88fSEmmanuel Vadot		partition@40000 {
86c66ec88fSEmmanuel Vadot			label = "params-nor";
87c66ec88fSEmmanuel Vadot			reg = <0x40000 0x40000>;
88c66ec88fSEmmanuel Vadot		};
89c66ec88fSEmmanuel Vadot		partition@80000 {
90c66ec88fSEmmanuel Vadot			label = "kernel-nor";
91c66ec88fSEmmanuel Vadot			reg = <0x80000 0x200000>;
92c66ec88fSEmmanuel Vadot		};
93c66ec88fSEmmanuel Vadot		partition@280000 {
94c66ec88fSEmmanuel Vadot			label = "filesystem-nor";
95c66ec88fSEmmanuel Vadot			reg = <0x240000 0x7d80000>;
96c66ec88fSEmmanuel Vadot		};
97c66ec88fSEmmanuel Vadot	};
98c66ec88fSEmmanuel Vadot};
99