11fdab21dSBoris Brezillon* Device tree bindings for Atmel EBI 21fdab21dSBoris Brezillon 31fdab21dSBoris BrezillonThe External Bus Interface (EBI) controller is a bus where you can connect 41fdab21dSBoris Brezillonasynchronous (NAND, NOR, SRAM, ....) and synchronous memories (SDR/DDR SDRAMs). 51fdab21dSBoris BrezillonThe EBI provides a glue-less interface to asynchronous memories through the SMC 61fdab21dSBoris Brezillon(Static Memory Controller). 71fdab21dSBoris Brezillon 81fdab21dSBoris BrezillonRequired properties: 91fdab21dSBoris Brezillon 101fdab21dSBoris Brezillon- compatible: "atmel,at91sam9260-ebi" 111fdab21dSBoris Brezillon "atmel,at91sam9261-ebi" 121fdab21dSBoris Brezillon "atmel,at91sam9263-ebi0" 131fdab21dSBoris Brezillon "atmel,at91sam9263-ebi1" 141fdab21dSBoris Brezillon "atmel,at91sam9rl-ebi" 151fdab21dSBoris Brezillon "atmel,at91sam9g45-ebi" 161fdab21dSBoris Brezillon "atmel,at91sam9x5-ebi" 171fdab21dSBoris Brezillon "atmel,sama5d3-ebi" 181fdab21dSBoris Brezillon 191fdab21dSBoris Brezillon- reg: Contains offset/length value for EBI memory mapping. 201fdab21dSBoris Brezillon This property might contain several entries if the EBI 211fdab21dSBoris Brezillon memory range is not contiguous 221fdab21dSBoris Brezillon 231fdab21dSBoris Brezillon- #address-cells: Must be 2. 241fdab21dSBoris Brezillon The first cell encodes the CS. 251fdab21dSBoris Brezillon The second cell encode the offset into the CS memory 261fdab21dSBoris Brezillon range. 271fdab21dSBoris Brezillon 281fdab21dSBoris Brezillon- #size-cells: Must be set to 1. 291fdab21dSBoris Brezillon 301fdab21dSBoris Brezillon- ranges: Encodes CS to memory region association. 311fdab21dSBoris Brezillon 321fdab21dSBoris Brezillon- clocks: Clock feeding the EBI controller. 331fdab21dSBoris Brezillon See clock-bindings.txt 341fdab21dSBoris Brezillon 351fdab21dSBoris BrezillonChildren device nodes are representing device connected to the EBI bus. 361fdab21dSBoris Brezillon 371fdab21dSBoris BrezillonRequired device node properties: 381fdab21dSBoris Brezillon 391fdab21dSBoris Brezillon- reg: Contains the chip-select id, the offset and the length 401fdab21dSBoris Brezillon of the memory region requested by the device. 411fdab21dSBoris Brezillon 421fdab21dSBoris BrezillonEBI bus configuration will be defined directly in the device subnode. 431fdab21dSBoris Brezillon 441fdab21dSBoris BrezillonOptional EBI/SMC properties: 451fdab21dSBoris Brezillon 461fdab21dSBoris Brezillon- atmel,smc-bus-width: width of the asynchronous device's data bus 471fdab21dSBoris Brezillon 8, 16 or 32. 481fdab21dSBoris Brezillon Default to 8 when undefined. 491fdab21dSBoris Brezillon 501fdab21dSBoris Brezillon- atmel,smc-byte-access-type "write" or "select" (see Atmel datasheet). 511fdab21dSBoris Brezillon Default to "select" when undefined. 521fdab21dSBoris Brezillon 531fdab21dSBoris Brezillon- atmel,smc-read-mode "nrd" or "ncs". 541fdab21dSBoris Brezillon Default to "ncs" when undefined. 551fdab21dSBoris Brezillon 561fdab21dSBoris Brezillon- atmel,smc-write-mode "nwe" or "ncs". 571fdab21dSBoris Brezillon Default to "ncs" when undefined. 581fdab21dSBoris Brezillon 591fdab21dSBoris Brezillon- atmel,smc-exnw-mode "disabled", "frozen" or "ready". 601fdab21dSBoris Brezillon Default to "disabled" when undefined. 611fdab21dSBoris Brezillon 621fdab21dSBoris Brezillon- atmel,smc-page-mode enable page mode if present. The provided value 631fdab21dSBoris Brezillon defines the page size (supported values: 4, 8, 641fdab21dSBoris Brezillon 16 and 32). 651fdab21dSBoris Brezillon 661fdab21dSBoris Brezillon- atmel,smc-tdf-mode: "normal" or "optimized". When set to 671fdab21dSBoris Brezillon "optimized" the data float time is optimized 681fdab21dSBoris Brezillon depending on the next device being accessed 691fdab21dSBoris Brezillon (next device setup time is subtracted to the 701fdab21dSBoris Brezillon current device data float time). 711fdab21dSBoris Brezillon Default to "normal" when undefined. 721fdab21dSBoris Brezillon 731fdab21dSBoris BrezillonIf at least one atmel,smc- property is defined the following SMC timing 741fdab21dSBoris Brezillonproperties become mandatory. In the other hand, if none of the atmel,smc- 751fdab21dSBoris Brezillonproperties are specified, we assume that the EBI bus configuration will be 761fdab21dSBoris Brezillonhandled by the sub-device driver, and none of those properties should be 771fdab21dSBoris Brezillondefined. 781fdab21dSBoris Brezillon 791fdab21dSBoris BrezillonAll the timings are expressed in nanoseconds (see Atmel datasheet for a full 801fdab21dSBoris Brezillondescription). 811fdab21dSBoris Brezillon 821fdab21dSBoris Brezillon- atmel,smc-ncs-rd-setup-ns 831fdab21dSBoris Brezillon- atmel,smc-nrd-setup-ns 841fdab21dSBoris Brezillon- atmel,smc-ncs-wr-setup-ns 851fdab21dSBoris Brezillon- atmel,smc-nwe-setup-ns 861fdab21dSBoris Brezillon- atmel,smc-ncs-rd-pulse-ns 871fdab21dSBoris Brezillon- atmel,smc-nrd-pulse-ns 881fdab21dSBoris Brezillon- atmel,smc-ncs-wr-pulse-ns 891fdab21dSBoris Brezillon- atmel,smc-nwe-pulse-ns 901fdab21dSBoris Brezillon- atmel,smc-nwe-cycle-ns 911fdab21dSBoris Brezillon- atmel,smc-nrd-cycle-ns 921fdab21dSBoris Brezillon- atmel,smc-tdf-ns 931fdab21dSBoris Brezillon 941fdab21dSBoris BrezillonExample: 951fdab21dSBoris Brezillon 961fdab21dSBoris Brezillon ebi: ebi@10000000 { 971fdab21dSBoris Brezillon compatible = "atmel,sama5d3-ebi"; 981fdab21dSBoris Brezillon #address-cells = <2>; 991fdab21dSBoris Brezillon #size-cells = <1>; 1001fdab21dSBoris Brezillon atmel,smc = <&hsmc>; 1011fdab21dSBoris Brezillon atmel,matrix = <&matrix>; 1021fdab21dSBoris Brezillon reg = <0x10000000 0x10000000 1031fdab21dSBoris Brezillon 0x40000000 0x30000000>; 1041fdab21dSBoris Brezillon ranges = <0x0 0x0 0x10000000 0x10000000 1051fdab21dSBoris Brezillon 0x1 0x0 0x40000000 0x10000000 1061fdab21dSBoris Brezillon 0x2 0x0 0x50000000 0x10000000 1071fdab21dSBoris Brezillon 0x3 0x0 0x60000000 0x10000000>; 1081fdab21dSBoris Brezillon clocks = <&mck>; 1091fdab21dSBoris Brezillon 1101fdab21dSBoris Brezillon pinctrl-names = "default"; 1111fdab21dSBoris Brezillon pinctrl-0 = <&pinctrl_ebi_addr>; 1121fdab21dSBoris Brezillon 1131fdab21dSBoris Brezillon nor: flash@0,0 { 1141fdab21dSBoris Brezillon compatible = "cfi-flash"; 1151fdab21dSBoris Brezillon #address-cells = <1>; 1161fdab21dSBoris Brezillon #size-cells = <1>; 1171fdab21dSBoris Brezillon reg = <0x0 0x0 0x1000000>; 1181fdab21dSBoris Brezillon bank-width = <2>; 1191fdab21dSBoris Brezillon 1201fdab21dSBoris Brezillon atmel,smc-read-mode = "nrd"; 1211fdab21dSBoris Brezillon atmel,smc-write-mode = "nwe"; 1221fdab21dSBoris Brezillon atmel,smc-bus-width = <16>; 1231fdab21dSBoris Brezillon atmel,smc-ncs-rd-setup-ns = <0>; 1241fdab21dSBoris Brezillon atmel,smc-ncs-wr-setup-ns = <0>; 1251fdab21dSBoris Brezillon atmel,smc-nwe-setup-ns = <8>; 1261fdab21dSBoris Brezillon atmel,smc-nrd-setup-ns = <16>; 1271fdab21dSBoris Brezillon atmel,smc-ncs-rd-pulse-ns = <84>; 1281fdab21dSBoris Brezillon atmel,smc-ncs-wr-pulse-ns = <84>; 1291fdab21dSBoris Brezillon atmel,smc-nrd-pulse-ns = <76>; 1301fdab21dSBoris Brezillon atmel,smc-nwe-pulse-ns = <76>; 1311fdab21dSBoris Brezillon atmel,smc-nrd-cycle-ns = <107>; 1321fdab21dSBoris Brezillon atmel,smc-nwe-cycle-ns = <84>; 1331fdab21dSBoris Brezillon atmel,smc-tdf-ns = <16>; 1341fdab21dSBoris Brezillon }; 1351fdab21dSBoris Brezillon }; 1361fdab21dSBoris Brezillon 137