Re: [Patch] mpc5200b: improve baud rate calculation (reach high baud rates, better accuracy)
From: Grant Likely <hidden>
Date: 2010-03-02 20:06:44
Also in:
linux-devicetree
On Tue, Mar 2, 2010 at 1:09 AM, Albrecht Dre=DF [off-list ref] w= rote:
quoted
quoted
+ =A0 /* Check only once if we are running on a mpc5200b or not */ + =A0 if (is_mpc5200b =3D=3D -1) { + =A0 =A0 =A0 =A0 =A0 struct device_node *np; + + =A0 =A0 =A0 =A0 =A0 np =3D of_find_compatible_node(NULL, NULL, "fsl,=
mpc5200b-immr");
quoted
This should be handled using a new compatible-entry "fsl,mpc5200b-psc-uart".I agree that this would be a lot cleaner, but it's also a lot more intrus=
ive. =A0CC'ing the device tree discussion list here... comments, please!! fsl,mpc5200b-psc-uart is already in the compatible list for all MPC500b boards currently in the kernel tree.
quoted
quoted
+ =A0 =A0 =A0 =A0 =A0 if (np) { + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 is_mpc5200b =3D 1; + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 dev_dbg(&op->dev, "mpc5200b: usi=
ng /4 prescaler\n");
quoted
Does this message respect the fallback case?See comment above...quoted
You could also have a set_divisor-function for 5200 and 5200B and set it here in the function struct (one reason less for the static ;))Hmmm, but then I would need a 'static struct psc_ops mpc5200b_psc_ops', w=
here only two functions differ from the generic 52xx struct as it is implem= ented now. =A0Using the static int needs less space. =A0However, in combina= tion with the new compatible entry, it would of course make sense.
Again, any insight from the device tree gurus would be appreciated!
Wolfram is correct, you should set the correct divisor function in the ops structure. Much clearer code that way. g.