On Thu, 28 May 2020 at 08:31, Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > > Hi Joel, > > On Thu, 28 May 2020 16:50:37 +0930 Joel Stanley <joel@xxxxxxxxx> wrote: > > > > > > #define I2C_OWN_SLAVE_ADDRESS (1 << 30) > > +#define I2C_TEN_BIT_ADDRESS (1 << 31) > > > > static void check_i2c_bus_reg(struct check *c, struct dt_info *dti, struct node *node) > > { > > @@ -1057,10 +1058,13 @@ static void check_i2c_bus_reg(struct check *c, struct dt_info *dti, struct node > > reg = fdt32_to_cpu(*(cells++)); > > /* Ignore I2C_OWN_SLAVE_ADDRESS */ > > reg &= ~I2C_OWN_SLAVE_ADDRESS; > > - if (reg > 0x3ff) > > + > > + if ((reg & I2C_TEN_BIT_ADDRESS) && reg > 0x3ff) > > Shouldn't this be > > if ((reg & I2C_TEN_BIT_ADDRESS) && ((reg & ~I2C_TEN_BIT_ADDRESS) > 0x3ff)) Yes, good catch. There are no device trees that set the I2C_TEN_BIT_ADDRESS flag in the kernel, so it is untested.