Re: [PATCH] i2c: ocores: add gaisler to platform data

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>>>>> "Mohammed" == Mohammed Billoo <mab@xxxxxxxxxxxx> writes:

Hi,

Please send i2c patches to the linux-i2c mailing list as well, so the
i2c maintainer can apply it.

 > There may be instances when the device tree is not suitable to interface
 > with the ocores implementation. For example, when the FPGA/ASIC is
 > not on the same silicon die (e.g. the communication between the CPU and
 > the FPGA/ASIC is over PCI), information about the ocore implementation,
 > such as whether the gaisler implementation is used, must be determined
 > during runtime. In this case, the client driver would prepopulate the
 > platform data during device instantiation. Thus, a boolean needs to be
 > added in the platform data, to instruct the i2c-ocores driver whether
 > the gaisler register callbacks should be used.

 > Signed-off-by: Mohammed Billoo <mab@xxxxxxxxxxxx>
 > ---
 >  drivers/i2c/busses/i2c-ocores.c          | 4 ++++
 >  include/linux/platform_data/i2c-ocores.h | 1 +
 >  2 files changed, 5 insertions(+)

 > diff --git a/drivers/i2c/busses/i2c-ocores.c b/drivers/i2c/busses/i2c-ocores.c
 > index f5fc75b65a19..0975f6797069 100644
 > --- a/drivers/i2c/busses/i2c-ocores.c
 > +++ b/drivers/i2c/busses/i2c-ocores.c
 > @@ -647,6 +647,10 @@ static int ocores_i2c_probe(struct platform_device *pdev)
 >  i2c-> bus_clock_khz = pdata->bus_khz;
 >  		else
 >               i2c-> bus_clock_khz = 100;
 > +		if (pdata->gaisler) {
 > +			i2c->setreg = oc_setreg_grlib;
 > +			i2c->getreg = oc_getreg_grlib;
 > +		}
 >  	} else {
 >  		ret = ocores_i2c_of_probe(pdev, i2c);
 >  		if (ret)
 > diff --git a/include/linux/platform_data/i2c-ocores.h b/include/linux/platform_data/i2c-ocores.h
 > index e6326cbafe59..a3cb38f21417 100644
 > --- a/include/linux/platform_data/i2c-ocores.h
 > +++ b/include/linux/platform_data/i2c-ocores.h
 > @@ -16,6 +16,7 @@ struct ocores_i2c_platform_data {
 >  	bool big_endian; /* registers are big endian */
 >  	u8 num_devices; /* number of devices in the devices list */
 >  	struct i2c_board_info const *devices; /* devices connected to the bus */
 > +	bool gaisler; /* implementation is gaisler */

NIT: Perhaps it would be nicer to place this after big_endian, as it is
quite similar to that?

A clearer comment could be "Use Gaisler GRLIB accessors"

Other than that it looks good to me, thanks.

Acked-by: Peter Korsgaard <peter@xxxxxxxxxxxxx>

-- 
Bye, Peter Korsgaard



[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux