Hi,

Thanks for review.

On 2016/2/22 18:23, Philipp Zabel wrote:
> Hi Chen,
> 
> Am Montag, den 22.02.2016, 10:45 +0800 schrieb Chen Feng:
>> Signed-off-by: Chen Feng <puck.c...@hisilicon.com>
>> Signed-off-by: Xinliang Liu <xinliang....@linaro.org>
>> ---
>>  drivers/reset/hisilicon/hi6220_reset.c | 122 
>> ++++++++++++++++++++++++---------
>>  1 file changed, 90 insertions(+), 32 deletions(-)
>> +/* peritheral ctrl regs
> 
> I assume this is supposed to mean "peripheral" ...
> 
>> + */
>> +#define PERITH_ASSERT_OFFSET      0x300
> 
> ... and this PERIPH_ASSERT_OFFSET, and so on.
> 

Yes...
>> +#define PERITH_DEASSERT_OFFSET    0x304
>> +#define PERITH_MAX_INDEX          0x509

>> +}
> 
> If you make these take the struct reset_controller_dev *rc_dev as first
> parameter, you can drop the two functions below an just add a second set
> of const struct reset_control_ops for the media resets.
> 
okay.
>>  static int hi6220_reset_assert(struct reset_controller_dev *rc_dev,
>>                             unsigned long idx)
>>  {
>>      struct hi6220_reset_data *data = to_reset_data(rc_dev);
>> +    struct regmap *regmap = data->regmap;
>>  

>>      data->rc_dev.ops = &hi6220_reset_ops;
> 
> With media and periph resets in separate ops structures, you could chose
> here already:
> 
>       if (type == MEDIA)
>               data->rc_dev.ops = &hi6220_media_reset_ops;
>       else
>               data->rc_dev.ops = &hi6220_peripheral_reset_ops;
> 
I will add two ops next version.
>> -    data->rc_dev.of_node = pdev->dev.of_node;
>> +    data->rc_dev.of_node = np;
>> +    if (type == MEDIA)
>> +            data->rc_dev.nr_resets = MEDIA_MAX_INDEX;
>> +    else
>> +            data->rc_dev.nr_resets = PERITH_MAX_INDEX;
>>  
>>      reset_controller_register(&data->rc_dev);
>>  
>> @@ -89,9 +139,17 @@ static int hi6220_reset_probe(struct platform_device 
>> *pdev)
>>  }
>>  
>>  static const struct of_device_id hi6220_reset_match[] = {
>> -    { .compatible = "hisilicon,hi6220-sysctrl" },
>> -    { },
>> +    {
>> +            .compatible = "hisilicon,hi6220-sysctrl",
>> +            .data = (void *)PERITHERAL,
>> +    },
>> +    {
>> +            .compatible = "hisilicon,hi6220-mediactrl",
>> +            .data = (void *)MEDIA,
>> +    },
>> +    { /* sentinel */ },
>>  };
>> +MODULE_DEVICE_TABLE(of, hi6220_reset_match);
>>  
>>  static struct platform_driver hi6220_reset_driver = {
>>      .probe = hi6220_reset_probe,
> 
> regards
> Philipp
> 
> 
> .
> 

Reply via email to