All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] ARM: imx6: fix up buggy CCM_CSCMR1 register
@ 2013-07-10 15:21 Shawn Guo
  2013-07-10 15:22 ` [PATCH 1/3] ARM: imx: add common clock support for fixup div Shawn Guo
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Shawn Guo @ 2013-07-10 15:21 UTC (permalink / raw)
  To: linux-arm-kernel

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(-)
 create mode 100644 arch/arm/mach-imx/clk-fixup-div.c
 create mode 100644 arch/arm/mach-imx/clk-fixup-mux.c

-- 
1.7.9.5

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-07-12  9:15 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-10 15:21 [PATCH 0/3] ARM: imx6: fix up buggy CCM_CSCMR1 register Shawn Guo
2013-07-10 15:22 ` [PATCH 1/3] ARM: imx: add common clock support for fixup div Shawn Guo
2013-07-10 15:22 ` [PATCH 2/3] ARM: imx: add common clock support for fixup mux Shawn Guo
2013-07-10 15:22 ` [PATCH 3/3] ARM: imx6: change some clocks to fixup clocks Shawn Guo
2013-07-12  9:15 ` [PATCH 0/3] ARM: imx6: fix up buggy CCM_CSCMR1 register Dirk Behme

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.