On Sat, 12 Jan 2019 15:12:26 +0530 Himanshu Jha <himanshujha199640@xxxxxxxxx> wrote: > On Fri, Jan 11, 2019 at 03:53:58PM -0500, Sebastien Bourdelin wrote: > > This commit allow the driver to work with device-tree. > > > > Signed-off-by: Sebastien Bourdelin <sebastien.bourdelin@xxxxxxxxx> > > --- > > I get the following compilation failure: > > Below I have `allyesconfig` except 'BME680' configure as [M] > in case you wish to reproduce. > > himanshu@himanshu-Vostro-3559:~/linux-next$ grep -i -w 'CONFIG_BME680\|CONFIG_ACPI\|CONFIG_OF' .config > CONFIG_ACPI=y > CONFIG_OF=y > CONFIG_BME680=m > himanshu@himanshu-Vostro-3559:~/linux-next$ sudo make drivers/iio/chemical/bme680_spi.o > make[1]: Nothing to be done for 'all'. > CALL scripts/checksyscalls.sh > DESCEND objtool > CC [M] drivers/iio/chemical/bme680_spi.o > In file included from ./include/linux/acpi.h:41:0, > from drivers/iio/chemical/bme680_spi.c:7: > ./include/linux/module.h:213:1: error: expected ‘,’ or ‘;’ before ‘extern’ > extern typeof(name) __mod_##type##__##name##_device_table \ > ^ > drivers/iio/chemical/bme680_spi.c:119:1: note: in expansion of macro ‘MODULE_DEVICE_TABLE’ > MODULE_DEVICE_TABLE(of, bme680_of_spi_match); > ^~~~~~~~~~~~~~~~~~~ huh? That one had me confused. Google however got me there quickly. Missing semi colon on the line above MODULE_DEVICE_TABLE. J > scripts/Makefile.build:291: recipe for target 'drivers/iio/chemical/bme680_spi.o' failed > make[1]: *** [drivers/iio/chemical/bme680_spi.o] Error 1 > Makefile:1741: recipe for target 'drivers/iio/chemical/bme680_spi.o' failed > make: *** [drivers/iio/chemical/bme680_spi.o] Error 2 > > BUT if: > > himanshu@himanshu-Vostro-3559:~/linux-next$ make allyesconfig > scripts/kconfig/conf --allyesconfig Kconfig > # > # configuration written to .config > # > > himanshu@himanshu-Vostro-3559:~/linux-next$ sudo make drivers/iio/chemical/bme680_spi.o > scripts/kconfig/conf --syncconfig Kconfig > make[1]: Nothing to be done for 'all'. > HOSTCC scripts/dtc/dtc.o > HOSTCC scripts/dtc/flattree.o > HOSTCC scripts/dtc/fstree.o > HOSTCC scripts/dtc/data.o > HOSTCC scripts/dtc/livetree.o > HOSTCC scripts/dtc/treesource.o > HOSTCC scripts/dtc/srcpos.o > HOSTCC scripts/dtc/checks.o > HOSTCC scripts/dtc/util.o > LEX scripts/dtc/dtc-lexer.lex.c > YACC scripts/dtc/dtc-parser.tab.h > HOSTCC scripts/dtc/dtc-lexer.lex.o > YACC scripts/dtc/dtc-parser.tab.c > HOSTCC scripts/dtc/dtc-parser.tab.o > HOSTLD scripts/dtc/dtc > CC scripts/mod/empty.o > MKELF scripts/mod/elfconfig.h > HOSTCC scripts/mod/modpost.o > CC scripts/mod/devicetable-offsets.s > HOSTCC scripts/mod/file2alias.o > HOSTCC scripts/mod/sumversion.o > HOSTLD scripts/mod/modpost > CC kernel/bounds.s > CC arch/x86/kernel/asm-offsets.s > CALL scripts/checksyscalls.sh > DESCEND objtool > CC drivers/iio/chemical/bme680_spi.o > > Compiles without any issues. > > Also, wondering when is 0x77 i2c address used, since I tested > this on 3 different boards with 0x76(when SDO is connected to GND) > > And why do I connect SDO to ground everytime ? > It is because if SDO pin is left floating then I2C address will be > undefined as said in datasheet + I have observed this while testing. > > Actallly, I don't understand what "VDIDO" is, as explained in the > datasheet. > > > Anyway, if the above compilation issue is not a problem, then > > Acked-by: Himanshu Jha <himanshujha199640@xxxxxxxxx> > > > Thanks