Skip to content

ARM: imx6: fix up buggy CCM_CSCMR1 register

Dirk Behme linux-arm-kernel 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest0 of 3 patches 0 repliesNew

Patches in v1 No applies recorded yet

None of the 3 patches the cover letter announces are in this archive.

Reviews trailers per patch

PatchDirk Behme
SeriesA-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 0/3] ARM: imx6: fix up buggy CCM_CSCMR1 register
Quoted 37 lines · Shawn Guo

There is a defect in bits 22 and 21 of i.MX6 CCM_CSCMR1 register. These two bits are inverted between read and write. That said, bit field CCM_CSCMR1[22-20] (aclk/emi_podf on imx6q/dl and lcdif_pix_podf on imx6sl) will be something as below between read and write.

   read    write    divider
    000     110       1
    001     111       2
    010     100       3
    011     101       4
    100     010       5
    101     011       6
    110     000       7
    111     001       8

To work around this hardware defect, every single read/modify/write sequence on the register will require a fix-up (invert bits 22 and 21) before writing the value into register. As there are dividers and multiplexers defined in the register, we choose to inherit the basic clk-divider and clk-mux and override the functions which writes register with a fix-up hooked in.

Shawn

Liu Ying (3):
ARM: imx: add common clock support for fixup div
ARM: imx: add common clock support for fixup mux
ARM: imx6: change some clocks to fixup clocks

  arch/arm/mach-imx/Makefile        |    3 +-
  arch/arm/mach-imx/clk-fixup-div.c |  129 +++++++++++++++++++++++++++++++++++++
  arch/arm/mach-imx/clk-fixup-mux.c |  107 ++++++++++++++++++++++++++++++
  arch/arm/mach-imx/clk-imx6q.c     |   24 +++----
  arch/arm/mach-imx/clk-imx6sl.c    |   20 +++---
  arch/arm/mach-imx/clk.c           |   26 ++++++++
  arch/arm/mach-imx/clk.h           |   10 +++
  7 files changed, 296 insertions(+), 23 deletions(-)
Quoted 2 lines

create mode 100644 arch/arm/mach-imx/clk-fixup-div.c create mode 100644 arch/arm/mach-imx/clk-fixup-mux.c

For the whole series:

Thanks

Dirk