OMAP-GPMC: Add address/data muxed timings
* Add support for the GPMC Advanced AAD (address/data muxed) timings on hardware supporting the feature like the AM335x and DM816X. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJWuKj+AAoJENJaa9O+djCTTZkQAM9hieohu8GRqwxUAA/G8tlp h/fKVDPEJvZu9AnVtGqPTN77z6aOhVJJMeIaOirlvZ6kfNcxeIf9t/bS38xhtJpO UbsYKUXMRK7Ba4w0tKgS2sTuB4PYsGm20PKdcdgXNgkQnyj3ZKLvl4wv6qbrNDnd Gq/i4qa+Ft14FoY2kNc/iLT/pwkp4MfW3lvjimEvDiECnSbRBJQxj0SUwuL+8Hco t9J3YM1Q0VBRG9U3t7+eFEKve54wC640q3qokn36I/Jg3jOu8qFbR832yqdMcDeq vqyFRe2n7FT7tJxxlcnTZ4lIT6g0YkOeyhRIL3IqIAUcNC8/EQaepGH7EONQKDH2 M0yMW36xmEMXHzT9cuOhqD8fp8sLMMaATkxz21HrtIKNT6G+OSKTAEhEG8ACZM3p k7NO9nWFO1xPMmOVCcVX6aJcZ5WzYt59EHS29bMRm/e3jQiB9T8xL5m9moIWGtUG 9Cq6i8R0dEP2kkFOXSadoIYVFiTXHgWjHS4uJW07lDycqnqOdUeEQ3E/wWXXBkzU M1tVwjgvtRNVrhbgpNnUEALKQ/6qN8W8SL0V4/JPkIuAP+UsiCCyV2QgNeBy26+p SoOv3BI8sJYi7Dk+jdgobM/ScVVw1/nOY4RmMOX8rprllsCwjKvmKHCr3/8qe5wK Ad/2O8m0w72QFweiwLYb =3rkE -----END PGP SIGNATURE----- Merge tag 'gpmc-omap-for-v4.6' of https://github.com/rogerq/linux into next/drivers Merge "OMAP-GPMC: Add address/data muxed timings" from Roger Quadros: * Add support for the GPMC Advanced AAD (address/data muxed) timings on hardware supporting the feature like the AM335x and DM816X. * tag 'gpmc-omap-for-v4.6' of https://github.com/rogerq/linux: dt-bindings: bus: ti-gpmc: Add AAD timings properties memory: omap-gpmc: Add support for AAD timings
This commit is contained in:
commit
9d6c3eb811
|
@ -46,6 +46,9 @@ Timing properties for child nodes. All are optional and default to 0.
|
|||
- 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
|
||||
|
@ -54,6 +57,8 @@ Timing properties for child nodes. All are optional and default to 0.
|
|||
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:
|
||||
|
|
|
@ -541,9 +541,20 @@ static void gpmc_cs_show_timings(int cs, const char *desc)
|
|||
GPMC_GET_TICKS(GPMC_CS_CONFIG3, 0, 3, "adv-on-ns");
|
||||
GPMC_GET_TICKS(GPMC_CS_CONFIG3, 8, 12, "adv-rd-off-ns");
|
||||
GPMC_GET_TICKS(GPMC_CS_CONFIG3, 16, 20, "adv-wr-off-ns");
|
||||
if (gpmc_capability & GPMC_HAS_MUX_AAD) {
|
||||
GPMC_GET_TICKS(GPMC_CS_CONFIG3, 4, 6, "adv-aad-mux-on-ns");
|
||||
GPMC_GET_TICKS(GPMC_CS_CONFIG3, 24, 26,
|
||||
"adv-aad-mux-rd-off-ns");
|
||||
GPMC_GET_TICKS(GPMC_CS_CONFIG3, 28, 30,
|
||||
"adv-aad-mux-wr-off-ns");
|
||||
}
|
||||
|
||||
GPMC_GET_TICKS(GPMC_CS_CONFIG4, 0, 3, "oe-on-ns");
|
||||
GPMC_GET_TICKS(GPMC_CS_CONFIG4, 8, 12, "oe-off-ns");
|
||||
if (gpmc_capability & GPMC_HAS_MUX_AAD) {
|
||||
GPMC_GET_TICKS(GPMC_CS_CONFIG4, 4, 6, "oe-aad-mux-on-ns");
|
||||
GPMC_GET_TICKS(GPMC_CS_CONFIG4, 13, 15, "oe-aad-mux-off-ns");
|
||||
}
|
||||
GPMC_GET_TICKS(GPMC_CS_CONFIG4, 16, 19, "we-on-ns");
|
||||
GPMC_GET_TICKS(GPMC_CS_CONFIG4, 24, 28, "we-off-ns");
|
||||
|
||||
|
@ -734,9 +745,18 @@ int gpmc_cs_set_timings(int cs, const struct gpmc_timings *t,
|
|||
GPMC_SET_ONE(GPMC_CS_CONFIG3, 0, 3, adv_on);
|
||||
GPMC_SET_ONE(GPMC_CS_CONFIG3, 8, 12, adv_rd_off);
|
||||
GPMC_SET_ONE(GPMC_CS_CONFIG3, 16, 20, adv_wr_off);
|
||||
if (gpmc_capability & GPMC_HAS_MUX_AAD) {
|
||||
GPMC_SET_ONE(GPMC_CS_CONFIG3, 4, 6, adv_aad_mux_on);
|
||||
GPMC_SET_ONE(GPMC_CS_CONFIG3, 24, 26, adv_aad_mux_rd_off);
|
||||
GPMC_SET_ONE(GPMC_CS_CONFIG3, 28, 30, adv_aad_mux_wr_off);
|
||||
}
|
||||
|
||||
GPMC_SET_ONE(GPMC_CS_CONFIG4, 0, 3, oe_on);
|
||||
GPMC_SET_ONE(GPMC_CS_CONFIG4, 8, 12, oe_off);
|
||||
if (gpmc_capability & GPMC_HAS_MUX_AAD) {
|
||||
GPMC_SET_ONE(GPMC_CS_CONFIG4, 4, 6, oe_aad_mux_on);
|
||||
GPMC_SET_ONE(GPMC_CS_CONFIG4, 13, 15, oe_aad_mux_off);
|
||||
}
|
||||
GPMC_SET_ONE(GPMC_CS_CONFIG4, 16, 19, we_on);
|
||||
GPMC_SET_ONE(GPMC_CS_CONFIG4, 24, 28, we_off);
|
||||
|
||||
|
@ -1722,6 +1742,12 @@ static void __maybe_unused gpmc_read_timings_dt(struct device_node *np,
|
|||
of_property_read_u32(np, "gpmc,adv-on-ns", &gpmc_t->adv_on);
|
||||
of_property_read_u32(np, "gpmc,adv-rd-off-ns", &gpmc_t->adv_rd_off);
|
||||
of_property_read_u32(np, "gpmc,adv-wr-off-ns", &gpmc_t->adv_wr_off);
|
||||
of_property_read_u32(np, "gpmc,adv-aad-mux-on-ns",
|
||||
&gpmc_t->adv_aad_mux_on);
|
||||
of_property_read_u32(np, "gpmc,adv-aad-mux-rd-off-ns",
|
||||
&gpmc_t->adv_aad_mux_rd_off);
|
||||
of_property_read_u32(np, "gpmc,adv-aad-mux-wr-off-ns",
|
||||
&gpmc_t->adv_aad_mux_wr_off);
|
||||
|
||||
/* WE signal timings */
|
||||
of_property_read_u32(np, "gpmc,we-on-ns", &gpmc_t->we_on);
|
||||
|
@ -1730,6 +1756,10 @@ static void __maybe_unused gpmc_read_timings_dt(struct device_node *np,
|
|||
/* OE signal timings */
|
||||
of_property_read_u32(np, "gpmc,oe-on-ns", &gpmc_t->oe_on);
|
||||
of_property_read_u32(np, "gpmc,oe-off-ns", &gpmc_t->oe_off);
|
||||
of_property_read_u32(np, "gpmc,oe-aad-mux-on-ns",
|
||||
&gpmc_t->oe_aad_mux_on);
|
||||
of_property_read_u32(np, "gpmc,oe-aad-mux-off-ns",
|
||||
&gpmc_t->oe_aad_mux_off);
|
||||
|
||||
/* access and cycle timings */
|
||||
of_property_read_u32(np, "gpmc,page-burst-access-ns",
|
||||
|
|
|
@ -51,6 +51,9 @@ struct gpmc_timings {
|
|||
u32 adv_on; /* Assertion time */
|
||||
u32 adv_rd_off; /* Read deassertion time */
|
||||
u32 adv_wr_off; /* Write deassertion time */
|
||||
u32 adv_aad_mux_on; /* ADV assertion time for AAD */
|
||||
u32 adv_aad_mux_rd_off; /* ADV read deassertion time for AAD */
|
||||
u32 adv_aad_mux_wr_off; /* ADV write deassertion time for AAD */
|
||||
|
||||
/* WE signals timings corresponding to GPMC_CONFIG4 */
|
||||
u32 we_on; /* WE assertion time */
|
||||
|
@ -59,6 +62,8 @@ struct gpmc_timings {
|
|||
/* OE signals timings corresponding to GPMC_CONFIG4 */
|
||||
u32 oe_on; /* OE assertion time */
|
||||
u32 oe_off; /* OE deassertion time */
|
||||
u32 oe_aad_mux_on; /* OE assertion time for AAD */
|
||||
u32 oe_aad_mux_off; /* OE deassertion time for AAD */
|
||||
|
||||
/* Access time and cycle time timings corresponding to GPMC_CONFIG5 */
|
||||
u32 page_burst_access; /* Multiple access word delay */
|
||||
|
|
Loading…
Reference in New Issue