On Tue, May 19, 2020 at 08:57:43AM +0200, Jonathan Albrieux wrote:

Thanks for an update, my comments below.

> According to AK09911 datasheet, if reset gpio is provided then 

Trailing whitespace.

> deassert reset on ak8975_power_on and assert reset on ak8975_power_off.
> 
> Without reset's deassertion during ak8975_power_on, driver's probe fails on
> ak8975_who_i_am while checking for device identity for AK09911 chip
> 
> AK09911 has an active low reset gpio to handle register's reset.
> AK09911 datasheed says that, if not used, reset pin should be connected
> to VID. This patch emulates this situation

Please, put periods at the end of the phrases.

>       /*
> -      * According to the datasheet the power supply rise time i 200us
> +      * According to the datasheet the power supply rise time is 200us
>        * and the minimum wait time before mode setting is 100us, in
> -      * total 300 us. Add some margin and say minimum 500us here.
> +      * total 300us. Add some margin and say minimum 500us here.
>        */

This is not related change (perhaps, you may do in separate patch), but I'm not
against it. Up to maintainer.

> +     /*
> +      * According to AK09911 datasheet, if reset gpio is provided then
> +      * deassert reset on ak8975_power_on and assert reset on
> +      * ak8975_power_off.

We try to refer to the code accordingly to the kernel doc recommendations (even
for non-kdoc comments). So, here, 'function' as 'function()' (without quotes)
and so on.

> +      */
> +     reset_gpiod = devm_gpiod_get_optional(&client->dev,
> +                                           "reset", GPIOD_OUT_HIGH);
> +     if (IS_ERR(reset_gpiod))
> +             return PTR_ERR(reset_gpiod);
> +
>       /* Register with IIO */
>       indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data));
>       if (indio_dev == NULL)
> @@ -866,6 +883,7 @@ static int ak8975_probe(struct i2c_client *client,
>  
>       data->client = client;
>       data->eoc_gpiod = eoc_gpiod;
> +     data->reset_gpiod = reset_gpiod;
>       data->eoc_irq = 0;
>  
>       err = iio_read_mount_matrix(&client->dev, "mount-matrix", 
> &data->orientation);
> -- 
> 2.17.1
> 

-- 
With Best Regards,
Andy Shevchenko


Reply via email to