[U-Boot] [PATCH 04/10] arm64: a37xx: Handle pin controls in early board init

Konstantin Porotchkin kostap at marvell.com
Tue Feb 14 12:07:04 UTC 2017


Hi, Stefan,

On 2/14/2017 13:43, Stefan Roese wrote:
> Hi Kosta,
>
> On 13.02.2017 14:38, kostap at marvell.com wrote:
>> From: Konstantin Porotchkin <kostap at marvell.com>
>>
>> Fix the default pin control values in a board-specific
>> function on early board init stage.
>> This fix allows the NETA driver to work in RGMII
>> mode until the full-featured pin control driver gets
>> introduced.
>>
>> Signed-off-by: Konstantin Porotchkin <kostap at marvell.com>
>> Cc: Stefan Roese <sr at denx.de>
>> Cc: Igal Liberman <igall at marvell.com>
>> ---
>>  board/Marvell/mvebu_db-88f3720/board.c | 26 +++++++++++++++++++++++++-
>>  1 file changed, 25 insertions(+), 1 deletion(-)
>>
>> diff --git a/board/Marvell/mvebu_db-88f3720/board.c
>> b/board/Marvell/mvebu_db-88f3720/board.c
>> index edf88c7..3337f3f 100644
>> --- a/board/Marvell/mvebu_db-88f3720/board.c
>> +++ b/board/Marvell/mvebu_db-88f3720/board.c
>> @@ -19,9 +19,33 @@ DECLARE_GLOBAL_DATA_PTR;
>>  #define I2C_IO_REG_0_SATA_OFF    2
>>  #define I2C_IO_REG_0_USB_H_OFF    1
>>
>> +#define PINCTRL_NB_REG_VALUE    0x000173fa
>> +#define PINCTRL_SB_REG_VALUE    0x00007a23
>> +
>
> I am aware that this is a temporary solution, but are these values
> correct for the A3720-DB or only the ESPRESSBin board?
They are good for the DB board as well. Actually without this change the 
NETA driver will crash if we try to ping the server.

>
> BTW: You are now using the "Marvell/mvebu_db-88f3720" board directory
> for multiple board and not only the A3720-DB. I would prefer to see
> a rename of the board directory before this, like we've done to the
> A7k/8k directory. What do you think?
Agree, I can do it. Should we change it in this patch series or 
introduce an additional patch later?

>
>>  int board_early_init_f(void)
>>  {
>> -    /* Nothing to do (yet), perhaps later some pin-muxing etc */
>> +    const void *blob = gd->fdt_blob;
>> +    const char *bank_name;
>> +    const char *compat = "marvell,armada-3700-pinctl";
>> +    int off, len;
>> +    void __iomem *addr;
>> +
>> +    /* FIXME
>> +     * Temporary WA for setting correct pin control values
>> +     * until the real pin control driver is awailable.
>> +     */
>> +    off = fdt_node_offset_by_compatible(blob, -1, compat);
>> +    while (off != -FDT_ERR_NOTFOUND) {
>> +        bank_name = fdt_getprop(blob, off, "bank-name", &len);
>> +        addr = (void __iomem *)fdtdec_get_addr_size_auto_noparent(
>> +                blob, off, "reg", 0, NULL, true);
>> +        if (!strncmp(bank_name, "armada-3700-nb", len))
>> +            writel(PINCTRL_NB_REG_VALUE, addr);
>> +        else if (!strncmp(bank_name, "armada-3700-sb", len))
>> +            writel(PINCTRL_SB_REG_VALUE, addr);
>> +
>> +        off = fdt_node_offset_by_compatible(blob, off, compat);
>> +    }
>>
>>      return 0;
>>  }
>>
>
> Thanks,
> Stefan


More information about the U-Boot mailing list