Tool/software: Linux
Hi,
On AM571X IDK, we are using GPMC interface(Header J21) to connect to FPGA for SRAM access.
We would like to access the SRAM in Synchronus mode and Multiplexed for 16 bit.
For GPMC_CLK, taken care by Isolating the R925 resistor and probining for Clock at J21.58 pin.
We are not observing the Clock at J21.58 Pin.
Please help us on this to generate the Clock and access the SRAM in FPGA.
Following is our PINMUX and configuration.
sram@0,0 {
reg = <0 0 0x1000000>;
bank-width = <2>;
gpmc,device-width = <2>; /* 16-bit devices */
gpmc,sync-read;
gpmc,sync-write;
gpmc,sync-clk-ps = <15000>; /* Minimum clock period for synchronous mode, in picoseconds */
gpmc,mux-add-data = <2>;
gpmc,cs-on-ns = <0>; /* Assertion time */
gpmc,cs-rd-off-ns = <20>; /* Read deassertion time */
gpmc,cs-wr-off-ns = <20>; /* Write deassertion time */
/* ADV signal timings (in nanoseconds) corresponding to GPMC_CONFIG3: */
gpmc,adv-on-ns = <0>; /* Assertion time */
gpmc,adv-rd-off-ns = <20>; /* Read deassertion time */
gpmc,adv-wr-off-ns = <20>; /* Write deassertion time */
/* WE signals timings (in nanoseconds) corresponding to GPMC_CONFIG4: */
gpmc,we-on-ns = <20>; /* Assertion time */
gpmc,we-off-ns = <20>; /* Deassertion time */
/* OE signals timings (in nanoseconds) corresponding to GPMC_CONFIG4: */
gpmc,oe-on-ns = <20>; /* Assertion time */
gpmc,oe-off-ns = <100>; /* Deassertion time */
/* Access time and cycle time timings (in nanoseconds) corresponding to GPMC_CONFIG5: */
gpmc,access-ns = <10>; /* Start-cycle to first data valid delay */
gpmc,rd-cycle-ns = <20>; /* Total read cycle time */
gpmc,wr-cycle-ns = <10>; /* Total write cycle time */
};
gpmc_pins: gpmc_pins {
pinctrl-single,pins = <
DRA7XX_CORE_IOPAD(0x3400, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */
DRA7XX_CORE_IOPAD(0x3404, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */
DRA7XX_CORE_IOPAD(0x3408, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */
DRA7XX_CORE_IOPAD(0x340c, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */
DRA7XX_CORE_IOPAD(0x3410, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */
DRA7XX_CORE_IOPAD(0x3414, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */
DRA7XX_CORE_IOPAD(0x3418, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */
DRA7XX_CORE_IOPAD(0x341c, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */
DRA7XX_CORE_IOPAD(0x3420, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad8.gpmc_ad8 */
DRA7XX_CORE_IOPAD(0x3424, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad9.gpmc_ad9 */
DRA7XX_CORE_IOPAD(0x3428, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad10.gpmc_ad10 */
DRA7XX_CORE_IOPAD(0x342c, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad11.gpmc_ad11 */
DRA7XX_CORE_IOPAD(0x3430, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad12.gpmc_ad12 */
DRA7XX_CORE_IOPAD(0x3434, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad13.gpmc_ad13 */
DRA7XX_CORE_IOPAD(0x3438, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad14.gpmc_ad14 */
DRA7XX_CORE_IOPAD(0x343c, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad15.gpmc_ad15 */
DRA7XX_CORE_IOPAD(0x34C0, PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_clk.gpmc_clk */
DRA7XX_CORE_IOPAD(0x34B4, PIN_OUTPUT | MUX_MODE0) /* gpmc_cs0.gpmc_cs0 */
DRA7XX_CORE_IOPAD(0x34C4, PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */
DRA7XX_CORE_IOPAD(0x34C8, PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */
DRA7XX_CORE_IOPAD(0x34CC, PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */
DRA7XX_CORE_IOPAD(0x34D0, PIN_OUTPUT | MUX_MODE0) /* gpmc_ben0.gpmc_ben0 */
DRA7XX_CORE_IOPAD(0x34D4, PIN_OUTPUT | MUX_MODE0) /* gpmc_ben0.gpmc_ben1 */
>;
};
Thanks
Suryaprakash Rao
