All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wolfgang Grandegger <wg@grandegger.com>
To: Jon Smirl <jonsmirl@gmail.com>
Cc: Scott Wood <scottwood@freescale.com>,
	Timur Tabi <timur@freescale.com>, Linux I2C <i2c@lm-sensors.org>,
	Linuxppc-dev@ozlabs.org
Subject: Re: [PATCH] powerpc: i2c-mpc: make speed registers configurable via FDT
Date: Thu, 31 Jul 2008 19:22:32 +0200	[thread overview]
Message-ID: <4891F4D8.9090905@grandegger.com> (raw)
In-Reply-To: <9e4733910807310849g7e5612dbk9536733e061af8ad@mail.gmail.com>

Jon Smirl wrote:
> On 7/31/08, Wolfgang Grandegger <wg@grandegger.com> wrote:
>> Grant Likely wrote:
>>
>>> On Fri, Jul 25, 2008 at 11:19:41AM -0500, Timur Tabi wrote:
>>>
>>>> Wolfgang Grandegger wrote:
>>>>
>>>>
>>>>> I know but we still need an algorithm for MPC52xx and MPC82xx as well.
>>>>>
>>>> That's true, but I still think hard-coding values of DFSR and FDR in the
>> device
>>>> tree is not a good way to do this.
>>>>
>>> I agree, it should encode real frequencies, not raw register values.
>>>
>>  Digging deeper I'm frightened by plenty of platform specific code. We would
>> need:
>>
>>  - one table of divider,fdr,dfsr values for the MPC82/3/5/6xx processors
>>   (already available from Timur's U-Boot implementation)
>>
>>  - one table of divider,fdr values for the MPC5200 rev A.
>>
>>  - one table of divider,fdr values for the MPC5200 rev B.
>>   (the Rev. B has two more pre-scaler bits).
> 
> Aren't the tables in the manual there just to make it easy for a human
> to pick out the line they want? For a computer you'd program the
> formula that was used to create the tables.

I have the formulas to create the tables, also for the MPC5200 Rev. A 
and B. That was not my point. I'm worried about arch specific code in 
i2c-mpc.c. It should go somewhere to arch/powerpc.

> I agree that it took me half an hour to figure out the formula that
> was needed to compute the i2s clocks, but once you figure out the
> formula it solves all of the cases and no one needs to read the manual
> any more. The i2c formula may even need a small loop which compares
> different solutions looking for the smallest error term. But it's a
> small space to search.
> 
> These device tree flags should be removed, the driver can ask the
> platform code what CPU it is running on.
> 
>         if (of_get_property(op->node, "dfsrr", NULL))
>                 i2c->flags |= FSL_I2C_DEV_SEPARATE_DFSRR;
> 
>         if (of_device_is_compatible(op->node, "fsl,mpc5200-i2c") ||
>                         of_device_is_compatible(op->node, "mpc5200-i2c"))
>                 i2c->flags |= FSL_I2C_DEV_CLOCK_5200;
> 
> static void mpc_i2c_setclock(struct mpc_i2c *i2c)
> {
>         /* Set clock and filters */
>         if (i2c->flags & FSL_I2C_DEV_SEPARATE_DFSRR) {
>                 writeb(0x31, i2c->base + MPC_I2C_FDR);
>                 writeb(0x10, i2c->base + MPC_I2C_DFSRR);
>         } else if (i2c->flags & FSL_I2C_DEV_CLOCK_5200)
>                 writeb(0x3f, i2c->base + MPC_I2C_FDR);
>         else
>                 writel(0x1031, i2c->base + MPC_I2C_FDR);
> }
> 
> These defines shouldn't be here, they should get the offset from the
> right header file for the CPU. But it appears that structures for the
> i2c memory map haven't been done for the various CPUs.
> 
> #define MPC_I2C_FDR     0x04
> #define MPC_I2C_CR      0x08
> #define MPC_I2C_SR      0x0c
> #define MPC_I2C_DR      0x10
> #define MPC_I2C_DFSRR 0x14
> 
> There appears to be one for i2x8xxx but not the other CPUs.
> 
> /* I2C
> */
> typedef struct i2c {
>         u_char  i2c_i2mod;
>         char    res1[3];
>         u_char  i2c_i2add;
>         char    res2[3];
>         u_char  i2c_i2brg;
>         char    res3[3];
>         u_char  i2c_i2com;
>         char    res4[3];
>         u_char  i2c_i2cer;
>         char    res5[3];
>         u_char  i2c_i2cmr;
>         char    res6[0x8b];
> } i2c8xx_t;

The I2C interface for the MPC5200 is not compatible with the one for the 
  MPC83/4/5/6xx, AFAIK.

Wolfgang.

  parent reply	other threads:[~2008-07-31 17:22 UTC|newest]

Thread overview: 135+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-25  7:37 [PATCH] powerpc: i2c-mpc: make speed registers configurable via FDT Wolfgang Grandegger
2008-07-25  8:51 ` Jochen Friedrich
2008-07-25  9:04   ` Wolfgang Grandegger
2008-07-25 13:12     ` Grant Likely
2008-07-25 14:21       ` Timur Tabi
2008-07-25 15:04         ` Jon Smirl
2008-07-25 15:23         ` Wolfgang Grandegger
2008-07-25 16:19           ` Timur Tabi
2008-07-27  1:27             ` Grant Likely
2008-07-31 11:51               ` Wolfgang Grandegger
2008-07-31 15:49                 ` Jon Smirl
2008-07-31 15:55                   ` Timur Tabi
     [not found]                     ` <4891E06A.4070608-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2008-07-31 23:32                       ` Trent Piepho
2008-07-31 23:32                         ` [i2c] " Trent Piepho
2008-08-01 13:17                         ` Timur Tabi
2008-08-01 15:47                           ` Scott Wood
2008-08-01 19:47                           ` Trent Piepho
     [not found]                             ` <Pine.LNX.4.58.0808011246290.10341-13q4cmjDBaTP3RPoUHIrnuTW4wlIGRCZ@public.gmane.org>
2008-08-01 19:50                               ` Timur Tabi
2008-08-01 19:50                                 ` [i2c] " Timur Tabi
2008-07-31 17:22                   ` Wolfgang Grandegger [this message]
     [not found]                     ` <4891F4D8.9090905-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org>
2008-07-31 17:31                       ` Grant Likely
2008-07-31 17:31                         ` Grant Likely
2008-07-31 17:51                         ` Wolfgang Grandegger
     [not found]                         ` <fa686aa40807311031r66f6451aw206faf54509c14d9-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-07-31 17:54                           ` Timur Tabi
2008-07-31 17:54                             ` Timur Tabi
2008-07-31 18:07                             ` Wolfgang Grandegger
     [not found]                               ` <4891FF51.4020701-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org>
2008-07-31 18:06                                 ` Timur Tabi
2008-07-31 18:06                                   ` Timur Tabi
2008-07-31 18:07                               ` Grant Likely
     [not found]                                 ` <fa686aa40807311107m44ce7fbk35e94d1a24b992fb-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-07-31 18:10                                   ` Timur Tabi
2008-07-31 18:10                                     ` Timur Tabi
     [not found]                                     ` <48920016.5000506-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2008-07-31 18:21                                       ` Grant Likely
2008-07-31 18:21                                         ` Grant Likely
2008-07-31 18:09                             ` Grant Likely
     [not found]                               ` <20080731180959.GA29057-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>
2008-07-31 18:13                                 ` Timur Tabi
2008-07-31 18:13                                   ` Timur Tabi
2008-07-31 18:28                                   ` Grant Likely
     [not found]                                     ` <20080731182810.GB29097-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>
2008-07-31 18:35                                       ` Timur Tabi
2008-07-31 18:35                                         ` Timur Tabi
2008-07-31 18:57                                         ` Jon Smirl
     [not found]                                           ` <9e4733910807311157q358640ddyef1f14865c069b8-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-07-31 19:01                                             ` Timur Tabi
2008-07-31 19:01                                               ` Timur Tabi
2008-07-31 19:25                                             ` Grant Likely
2008-07-31 19:25                                               ` Grant Likely
2008-08-01  0:22                                           ` [i2c] " Trent Piepho
     [not found]                                             ` <Pine.LNX.4.58.0807311656250.10341-13q4cmjDBaTP3RPoUHIrnuTW4wlIGRCZ@public.gmane.org>
2008-08-01  1:19                                               ` Jon Smirl
2008-08-01  1:19                                                 ` [i2c] " Jon Smirl
     [not found]                                                 ` <9e4733910807311819i60872285ga4829c841185fdc0-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-08-01  1:36                                                   ` Trent Piepho
2008-08-01  1:36                                                     ` [i2c] " Trent Piepho
     [not found]                                                     ` <Pine.LNX.4.58.0807311828580.10341-13q4cmjDBaTP3RPoUHIrnuTW4wlIGRCZ@public.gmane.org>
2008-08-01  1:44                                                       ` Jon Smirl
2008-08-01  1:44                                                         ` [i2c] " Jon Smirl
     [not found]                                                         ` <9e4733910807311844p142b26ffyb4105df3e136f65-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-08-01 15:02                                                           ` Timur Tabi
2008-08-01 15:02                                                             ` [i2c] " Timur Tabi
2008-08-01 16:05                                                             ` Jon Smirl
2008-08-01  7:29                                                     ` Wolfgang Grandegger
2008-08-01  2:03                                                 ` Grant Likely
2008-08-01  2:35                                                   ` Jon Smirl
2008-08-01 13:25                                                     ` Timur Tabi
2008-08-01 14:28                                                       ` Jon Smirl
     [not found]                                                       ` <ed82fe3e0808010625q53680d42l83f28a6df835f959-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-08-01 14:32                                                         ` Jon Smirl
2008-08-01 14:32                                                           ` [i2c] " Jon Smirl
2008-08-01 21:14                                                           ` Trent Piepho
2008-08-01  7:25                                                 ` Wolfgang Grandegger
2008-08-01 14:38                                                   ` Grant Likely
     [not found]                                         ` <48920607.5040606-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2008-07-31 19:01                                           ` Scott Wood
2008-07-31 19:01                                             ` Scott Wood
2008-07-31 19:08                                             ` Timur Tabi
2008-07-31 19:15                                               ` Scott Wood
     [not found]                                                 ` <48920F69.6020909-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2008-07-31 19:19                                                   ` Timur Tabi
2008-07-31 19:19                                                     ` Timur Tabi
     [not found]                                                     ` <48921057.8030807-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2008-07-31 19:21                                                       ` Scott Wood
2008-07-31 19:21                                                         ` Scott Wood
     [not found]                                                         ` <489210AF.7000909-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2008-07-31 19:22                                                           ` Timur Tabi
2008-07-31 19:22                                                             ` Timur Tabi
2008-07-31 19:11                                             ` Jon Smirl
2008-07-31 19:14                                         ` Grant Likely
2008-07-31 19:24                                         ` Wolfgang Grandegger
     [not found]                                           ` <48921187.1090101-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org>
2008-07-31 19:24                                             ` Timur Tabi
2008-07-31 19:24                                               ` Timur Tabi
2008-07-31 19:54                                               ` Wolfgang Grandegger
2008-07-31 19:58                                                 ` Timur Tabi
2008-07-31 20:17                                                   ` Wolfgang Grandegger
     [not found]                                                     ` <48921DED.6010403-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org>
2008-07-31 20:19                                                       ` Timur Tabi
2008-07-31 20:19                                                         ` Timur Tabi
2008-07-31 20:28                                                         ` Wolfgang Grandegger
     [not found]                                                           ` <48922087.4050903-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org>
2008-07-31 20:28                                                             ` Timur Tabi
2008-07-31 20:28                                                               ` Timur Tabi
     [not found]                                                         ` <48921E44.7010502-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2008-07-31 20:30                                                           ` Grant Likely
2008-07-31 20:30                                                             ` Grant Likely
2008-07-31 20:32                                                       ` Jon Smirl
2008-07-31 20:32                                                         ` Jon Smirl
     [not found]                                                         ` <9e4733910807311332q611b43b3y26f64b5269ccb657-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-07-31 20:35                                                           ` Grant Likely
2008-07-31 20:35                                                             ` Grant Likely
     [not found]                                                             ` <fa686aa40807311335t1dd123d0mc385234ebe55248-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-07-31 20:37                                                               ` Timur Tabi
2008-07-31 20:37                                                                 ` Timur Tabi
2008-07-31 20:48                                                                 ` Grant Likely
2008-07-31 20:55                                                                   ` Jon Smirl
     [not found]                                                                     ` <9e4733910807311355q3394b4bfg66c37055384451f7-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-07-31 20:56                                                                       ` Scott Wood
2008-07-31 20:56                                                                         ` Scott Wood
2008-07-31 20:56                                                                       ` Timur Tabi
2008-07-31 20:56                                                                         ` Timur Tabi
2008-07-31 21:03                                                                         ` Jon Smirl
     [not found]                                                                           ` <9e4733910807311403o63c37366ldae30e873f33a21e-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-07-31 21:10                                                                             ` Timur Tabi
2008-07-31 21:10                                                                               ` Timur Tabi
2008-07-31 21:14                                                                           ` Wolfgang Grandegger
     [not found]                                                                             ` <48922B40.3010808-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org>
2008-07-31 21:17                                                                               ` Timur Tabi
2008-07-31 21:17                                                                                 ` Timur Tabi
2008-08-01  1:16                                                                                 ` [i2c] " Trent Piepho
2008-08-01  0:57                                                             ` Trent Piepho
2008-07-31 20:35                                                           ` Timur Tabi
2008-07-31 20:35                                                             ` Timur Tabi
     [not found]                                                             ` <48922218.9020503-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2008-07-31 20:43                                                               ` Jon Smirl
2008-07-31 20:43                                                                 ` Jon Smirl
     [not found]                                                                 ` <9e4733910807311343h3a1b21dbub15754090a67fac6-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-07-31 20:44                                                                   ` Timur Tabi
2008-07-31 20:44                                                                     ` Timur Tabi
2008-07-31 19:59                                                 ` Grant Likely
     [not found]                                                   ` <20080731195911.GA29610-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>
2008-07-31 20:00                                                     ` Timur Tabi
2008-07-31 20:00                                                       ` Timur Tabi
2008-07-31 20:20                                                   ` Wolfgang Grandegger
     [not found]                                                     ` <48921EA2.1080600-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org>
2008-07-31 20:19                                                       ` Timur Tabi
2008-07-31 20:19                                                         ` Timur Tabi
2008-08-01  0:46                                                   ` [i2c] " Trent Piepho
     [not found]                                                     ` <Pine.LNX.4.58.0807311742230.10341-13q4cmjDBaTP3RPoUHIrnuTW4wlIGRCZ@public.gmane.org>
2008-08-01 14:34                                                       ` Grant Likely
2008-08-01 14:34                                                         ` [i2c] " Grant Likely
2008-08-01 14:48                                                     ` Geert Uytterhoeven
2008-08-01 14:48                                                       ` Geert Uytterhoeven
2008-07-31 17:35                       ` Jon Smirl
2008-07-31 17:35                         ` Jon Smirl
2008-07-31 16:51                 ` Grant Likely
2008-07-31 17:06                   ` Jon Smirl
2008-07-31 17:36                     ` Grant Likely
2008-07-31 17:47                       ` Jon Smirl
2008-07-31 17:24                   ` Wolfgang Grandegger
2008-07-25 15:34       ` Wolfgang Grandegger
2008-07-27  1:25         ` Grant Likely

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4891F4D8.9090905@grandegger.com \
    --to=wg@grandegger.com \
    --cc=Linuxppc-dev@ozlabs.org \
    --cc=i2c@lm-sensors.org \
    --cc=jonsmirl@gmail.com \
    --cc=scottwood@freescale.com \
    --cc=timur@freescale.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.