On 06/27/2012 12:13 PM, Hui Wang wrote: [...] >>> What compatible string do they actually use for the i.MX6Q board? Shawn >>> or Hui? We need to fix that. From the discussion mentioned above I think >>> > Currently i modified the can1 DT entry in the imx6q.dtsi like this: > flexcan@02090000 { /* CAN1 */ > reg = <0x02090000 0x4000>; > interrupts = <0 110 0x04>; > hw-version = <10>; ^^^^^^^^^^^^^^^^^^ remove > }; > > and the DT entry in the imx6q-sabrelite.dts like this: > flexcan@02090000 { /* CAN1 */ > compatible = "fsl,imx6q-flexcan", "fsl,p1010-flexcan"; ^^^^^^^^^^^^^^^^^^^ If imx6q is the first sock with this core "fsl,imx6q-flexcan" is the official name. "fsl,p1010-flexcan" will be removed. The compatible should go into the imx6q.dtsi > phy-en-gpio = <&gpio1 4 0>; > phy-stby-gpio = <&gpio1 2 0>; > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_flexcan1_1>; > }; > if we don't use hw-version entry and use flexcan-v10, do you mean we use > strcmp or strxxx to decide controller version? No, have a look at the flexcan_of_match. The struct of_device_id has a data pointer that can point to some arbitrary data. Define a struct flexcan_devtype_data which has, for now, a hardware revision member. Have a look at the imx-spi[1] driver. Marc [1] http://lxr.free-electrons.com/source/drivers/spi/spi-imx.c -- Pengutronix e.K. | Marc Kleine-Budde | Industrial Linux Solutions | Phone: +49-231-2826-924 | Vertretung West/Dortmund | Fax: +49-5121-206917-5555 | Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |