Subject: [PATCH v1 03/11] drivers: soc: hisi: Add support for Hisilicon Djtag driver

From: [email-masked] (Anurup M)
Date: Fri, 11 Nov 2016 15:53:45 +0530

On Thursday 10 November 2016 03:10 AM, Arnd Bergmann wrote:
> On Wednesday, November 9, 2016 9:58:38 AM CET Anurup M wrote:
>>> I also see that the compatible strings have the version included in
>>> them, and you can probably drop them by requiring them only in the
>>> fallback:
>>>
>>>        compatible = "hisilicon,hip05-cpu-djtag", "hisilicon,djtag-v1";
>>>        compatible = "hisilicon,hip05-io-djtag", "hisilicon,djtag-v1";
>>>        compatible = "hisilicon,hip06-cpu-djtag", "hisilicon,djtag-v1";
>>>        compatible = "hisilicon,hip06-io-djtag", "hisilicon,djtag-v2";
>>>        compatible = "hisilicon,hip07-cpu-djtag", "hisilicon,djtag-v2";
>>>        compatible = "hisilicon,hip07-io-djtag", "hisilicon,djtag-v2";
>>>
>>> We want to have the first entry be as specific as possible, but
>>> the last (second) entry is the one that can be used by the driver
>>> for matching. When a future hip08/hip09/... chip uses an existing
>>> interface, you then don't have to update the driver.
>> Thanks. I had a similar thought on this. So as I have the version string
>> in the
>> second entry "-v(1/2)".
>> I can use it in driver for matching. So i think  I will change it as below.
>> Please correct me if my understanding is wrong.
>>
>>    static const struct of_device_id djtag_of_match[] = {
>> -       /* for hip05(D02) cpu die */
>> -       { .compatible = "hisilicon,hip05-cpu-djtag-v1",
>> +       /* for hisi djtag-v1 cpu die */
>> +       { .compatible = "hisilicon,hisi-cpu-djtag-v1",
>>                   .data = djtag_readwrite_v1 },
>> -       /* for hip05(D02) io die */
>> -       { .compatible = "hisilicon,hip05-io-djtag-v1",
>> +       /* for hisi djtag-v1 io die */
>> +       { .compatible = "hisilicon,hisi-io-djtag-v1",
>  From the code it looks like "hisilicon,hisi-io-djtag-v1" and
> "hisilicon,hisi-cpu-djtag-v1" have the same register-level interface,
> so we just need one compatible string for them to match the driver.
>
> 	Arnd
The djtag versions in CPU die and IO die can be different in the same chip.
For example in hip06, the CPU die has djtag-v1 whereas IO die has djtag-v2.
So I think it need two different compatible string

for hip06 chip CPU DIE "hisilicon,hisi-cpu-djtag-v1"
for hip06 chip IO DIE "hisilicon,hisi-io-djtag-v2"

Thanks,
Anurup