[U-Boot] [PATCH 2/9] rtc: mc146818: Use probe() to set up the device

Simon Glass sjg at chromium.org
Mon Oct 19 04:26:50 CEST 2015


Hi Bin,

On 18 October 2015 at 20:22, Bin Meng <bmeng.cn at gmail.com> wrote:
> Hi Simon,
>
> On Mon, Oct 19, 2015 at 5:55 AM, Simon Glass <sjg at chromium.org> wrote:
>> At present this driver uses bind() to set up the device. The bind() method
>> should not touch the hardware, so move the init code to probe().
>>
>
> I think RTC should be initialized anyway. If moving it to probe, it
> may not be initialized by U-Boot before jumping to kernel.

That's fine, but the correct way to do this is to probe the device,
not put the init code into the bind() method.

>
>> Signed-off-by: Simon Glass <sjg at chromium.org>
>> ---
>>
>>  drivers/rtc/mc146818.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/rtc/mc146818.c b/drivers/rtc/mc146818.c
>> index 9e94a80..da804d5 100644
>> --- a/drivers/rtc/mc146818.c
>> +++ b/drivers/rtc/mc146818.c
>> @@ -225,7 +225,7 @@ static int rtc_mc146818_write8(struct udevice *dev, unsigned int reg, int val)
>>         return 0;
>>  }
>>
>> -static int rtc_mc146818_bind(struct udevice *dev)
>> +static int rtc_mc146818_probe(struct udevice *dev)
>>  {
>>         mc146818_init();
>>
>> @@ -249,7 +249,7 @@ U_BOOT_DRIVER(rtc_mc146818) = {
>>         .name = "rtc_mc146818",
>>         .id = UCLASS_RTC,
>>         .of_match = rtc_mc146818_ids,
>> -       .bind = rtc_mc146818_bind,
>> +       .probe = rtc_mc146818_probe,
>>         .ops = &rtc_mc146818_ops,
>>  };
>>
>> --
>
> Regards,
> Bin

Regards,
Simon


More information about the U-Boot mailing list