mmc: sdhci-cadence: fix PHY write
authorVladimir Kondratiev <vladimir.kondratiev@intel.com>
Mon, 25 May 2020 07:40:53 +0000 (10:40 +0300)
committerUlf Hansson <ulf.hansson@linaro.org>
Fri, 29 May 2020 10:37:59 +0000 (12:37 +0200)
commitf6bc8186a588627c7faf3f2f2615e4c0e4d454a6
treee84aa0dfa846b8d0d3dd58496a2fefc90e885333
parent798dd3c311f6c862719a3fc71c3c14eba192c64e
mmc: sdhci-cadence: fix PHY write

Accordingly to Cadence documentation, PHY write procedure is:

1. Software sets the PHY Register Address (HRS04[5:0]) and the
   PHY Write Data (HRS04[15:8]) fields.
2. Software sets the PHY Write Transaction Request (HRS04[24]) field to 1.
3. Software waits as the PHY Write Transaction Acknowledge (HRS04[26])
   field is equal to 0.
4. Hardware performs the write transaction to PHY register where
   HRS04[15:8] is a data written to register under HRS04[5:0] address.
5. Hardware sets the PHY Transaction Acknowledge (HRS04[26]) to 1 when
   transaction is completed.
6. Software clears the PHY Write Transaction Request (HRS04[24]) to 1
   after noticing that the PHY Write Transaction Acknowledge (HRS04[26])
   field is equal to 1.
7. Software waits for the PHY Acknowledge Register (HRS04[26]) field is
   equal to 0.

Add missing steps 3 and 7. Lack of these steps causes
integrity errors detested by hardware.

Signed-off-by: Vladimir Kondratiev <vladimir.kondratiev@intel.com>
Link: https://lore.kernel.org/r/20200525074053.7309-1-vladimir.kondratiev@intel.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci-cadence.c