Re: [PATCH 2/3] scsi: ufs: Allow resetting the UFS device

From: Bjorn Andersson
Date: Tue Jun 04 2019 - 18:24:13 EST


On Tue 04 Jun 08:25 PDT 2019, Stephen Boyd wrote:

> Quoting Bjorn Andersson (2019-06-04 00:20:00)
> > @@ -6104,6 +6105,25 @@ static int ufshcd_abort(struct scsi_cmnd *cmd)
> > return err;
> > }
> >
> > +/**
> > + ufshcd_device_reset() - toggle the (optional) device reset line
> > + * @hba: per-adapter instance
> > + *
> > + * Toggles the (optional) reset line to reset the attached device.
> > + */
> > +static void ufshcd_device_reset(struct ufs_hba *hba)
> > +{
> > + /*
> > + * The USB device shall detect reset pulses of 1us, sleep for 10us to
>
> This isn't usb though.

No, it is not.

> Can we have a gpio reset driver and then
> implement this in the reset framework instead? Or did that not work out
> for some reason?
>

The reset DT binding document clearly describes that resets are for
chip-internal resets, and this is a general purpose (output-only) pad on
the SoC that's connected to the reset pin on the UFS memory.

I actually see nothing preventing you to connect said reset pin to any
other GPIO.

Regards,
Bjorn

> > + * be on the safe side.
> > + */
> > + gpiod_set_value_cansleep(hba->device_reset, 1);
> > + usleep_range(10, 15);
> > +
> > + gpiod_set_value_cansleep(hba->device_reset, 0);
> > + usleep_range(10, 15);
> > +}
> > +
> > /**
> > * ufshcd_host_reset_and_restore - reset and restore host controller
> > * @hba: per-adapter instance