[PATCH 1/5] mtd: nand: vf610_nfc: Freescale NFC for VF610, MPC5125 and others

Stefan Agner stefan at agner.ch
Mon Mar 9 05:43:49 PDT 2015


On 2015-03-09 10:58, Sascha Hauer wrote:
> On Fri, Mar 06, 2015 at 02:31:51PM +0100, Stefan Agner wrote:
>> On 2015-03-06 07:15, Sascha Hauer wrote:
>> > Hi Stefan,
>> >
>> > On Thu, Mar 05, 2015 at 12:10:20AM +0100, Stefan Agner wrote:
>> >> +
>> >> +static int vf610_nfc_probe_dt(struct device *dev, struct vf610_nfc_config *cfg)
>> >> +{
>> >> +	struct device_node *np = dev->of_node;
>> >> +	int buswidth;
>> >> +	u32 clkrate;
>> >> +
>> >> +	if (!np)
>> >> +		return 1;
>> >> +
>> >> +	cfg->flash_bbt = of_get_nand_on_flash_bbt(np);
>> >> +
>> >> +	if (!of_property_read_u32(np, "clock-frequency", &clkrate))
>> >> +		cfg->clkrate = clkrate;
>> >
>> > Normally the clock-frequency property tells the driver at which
>> > frequency the device actually is running, not to tell the driver at
>> > which frequency the device *should* run. It's strange to use the value
>> > of the clock-frequency property as input to clk_set_rate(). Maybe the
>> > assigned clock binding is more appropriate here, see
>> > Documentation/devicetree/bindings/clock/clock-bindings.txt.
>>
>> What we try to do here is to specify the hardware limitations. There
>> seem to be some hardware restrictions when it comes to clock
>> frequencies. There has been a rather long discussion over at Freescales
>> community about it:
>> https://community.freescale.com/thread/317074
>>
>> Not sure if this is the right way to specify the supported frequencies,
>> or should we create a custom property for this, something like
>> fsl,max-nfc-frequency = <33000000>?
> 
> What's wrong with the assigned clock binding? All you have to do is to
> add it to the device node. The rest will be done from the generic clock
> framework with no additional driver code.

Ah yes, assigned clock bindings seems like a match. So, the NFC node
would look something like

...
        assigned-clocks = <&clks VF610_CLK_NFC>;
        assigned-clock-rates = <33000000>;
...

Will try to use that, thx.

--
Stefan







More information about the linux-mtd mailing list