diff mbox series

[6/8] arm: kirkwood: Pogoplug-V4 : Add board implementation header

Message ID 20211218042335.5865-7-mibodhi@gmail.com
State Changes Requested
Delegated to: Stefan Roese
Headers show
Series arm: kirkwood: Add support for Pogoplug V4 | expand

Commit Message

Tony Dinh Dec. 18, 2021, 4:23 a.m. UTC
Add board implementation header and Makefile for Pogoplug V4

Signed-off-by: Tony Dinh <mibodhi@gmail.com>
---

 board/cloudengines/pogo_v4/Makefile  | 10 ++++++++
 board/cloudengines/pogo_v4/pogo_v4.h | 36 ++++++++++++++++++++++++++++
 2 files changed, 46 insertions(+)
 create mode 100644 board/cloudengines/pogo_v4/Makefile
 create mode 100644 board/cloudengines/pogo_v4/pogo_v4.h

Comments

Pali Rohár Dec. 18, 2021, 1:09 p.m. UTC | #1
On Friday 17 December 2021 20:23:32 Tony Dinh wrote:
> Add board implementation header and Makefile for Pogoplug V4
> 
> Signed-off-by: Tony Dinh <mibodhi@gmail.com>
> ---
> 
>  board/cloudengines/pogo_v4/Makefile  | 10 ++++++++
>  board/cloudengines/pogo_v4/pogo_v4.h | 36 ++++++++++++++++++++++++++++
>  2 files changed, 46 insertions(+)
>  create mode 100644 board/cloudengines/pogo_v4/Makefile
>  create mode 100644 board/cloudengines/pogo_v4/pogo_v4.h
> 
> diff --git a/board/cloudengines/pogo_v4/Makefile b/board/cloudengines/pogo_v4/Makefile
> new file mode 100644
> index 0000000000..511bf5ff7e
> --- /dev/null
> +++ b/board/cloudengines/pogo_v4/Makefile
> @@ -0,0 +1,10 @@
> +# SPDX-License-Identifier: GPL-2.0+
> +#
> +# (C) Copyright 2014-2021 Tony Dinh <mibodhi@gmail.com>
> +#
> +# Based on
> +# Marvell Semiconductor <www.marvell.com>
> +# Written-by: Prafulla Wadaskar <prafulla@marvell.com>
> +#
> +
> +obj-y	:= pogo_v4.o
> diff --git a/board/cloudengines/pogo_v4/pogo_v4.h b/board/cloudengines/pogo_v4/pogo_v4.h
> new file mode 100644
> index 0000000000..bf3060de60
> --- /dev/null
> +++ b/board/cloudengines/pogo_v4/pogo_v4.h
> @@ -0,0 +1,36 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright (C) 2014-2021 Tony Dinh <mibodhi@gmail.com>
> + *
> + * Based on
> + * Copyright (C) 2012 David Purdy <david.c.purdy@gmail.com>
> + *
> + * Based on Kirkwood support:
> + * (C) Copyright 2009
> + * Marvell Semiconductor <www.marvell.com>
> + * Written-by: Prafulla Wadaskar <prafulla@marvell.com>
> + */
> +
> +#ifndef __POGO_V4_H
> +#define __POGO_V4_H
> +
> +#include <linux/bitops.h>
> +
> +/* GPIO configuration */
> +#define POGO_V4_OE_LOW				(~(0))
> +#define POGO_V4_OE_HIGH				(~(0))
> +#define POGO_V4_OE_VAL_LOW			BIT(29)
> +#define POGO_V4_OE_VAL_HIGH			0
> +
> +/* PHY related */
> +#define MV88E1116_LED_FCTRL_REG			10
> +#define MV88E1116_CPRSP_CR3_REG			21
> +#define MV88E1116_MAC_CTRL_REG			21
> +#define MV88E1116_PGADR_REG			22
> +#define MV88E1116_RGMII_TXTM_CTRL		BIT(4)
> +#define MV88E1116_RGMII_RXTM_CTRL		BIT(5)
> +
> +/* button */
> +#define BTN_EJECT				29
> +
> +#endif /* __POGO_V4_H */

Hello! As this pogo_v4.h include file is used only in pogo_v4.c source
file and contains only few defines, you can move all these defines
directly into pogo_v4.c source file. There is no need to export these
constants if they are not used by other files or modules.

> -- 
> 2.20.1
>
Tony Dinh Dec. 18, 2021, 9:47 p.m. UTC | #2
Hi Pali,

On Sat, Dec 18, 2021 at 5:09 AM Pali Rohár <pali@kernel.org> wrote:
>
> On Friday 17 December 2021 20:23:32 Tony Dinh wrote:
> > Add board implementation header and Makefile for Pogoplug V4
> >
> > Signed-off-by: Tony Dinh <mibodhi@gmail.com>
> > ---
> >
> >  board/cloudengines/pogo_v4/Makefile  | 10 ++++++++
> >  board/cloudengines/pogo_v4/pogo_v4.h | 36 ++++++++++++++++++++++++++++
> >  2 files changed, 46 insertions(+)
> >  create mode 100644 board/cloudengines/pogo_v4/Makefile
> >  create mode 100644 board/cloudengines/pogo_v4/pogo_v4.h
> >
> > diff --git a/board/cloudengines/pogo_v4/Makefile b/board/cloudengines/pogo_v4/Makefile
> > new file mode 100644
> > index 0000000000..511bf5ff7e
> > --- /dev/null
> > +++ b/board/cloudengines/pogo_v4/Makefile
> > @@ -0,0 +1,10 @@
> > +# SPDX-License-Identifier: GPL-2.0+
> > +#
> > +# (C) Copyright 2014-2021 Tony Dinh <mibodhi@gmail.com>
> > +#
> > +# Based on
> > +# Marvell Semiconductor <www.marvell.com>
> > +# Written-by: Prafulla Wadaskar <prafulla@marvell.com>
> > +#
> > +
> > +obj-y        := pogo_v4.o
> > diff --git a/board/cloudengines/pogo_v4/pogo_v4.h b/board/cloudengines/pogo_v4/pogo_v4.h
> > new file mode 100644
> > index 0000000000..bf3060de60
> > --- /dev/null
> > +++ b/board/cloudengines/pogo_v4/pogo_v4.h
> > @@ -0,0 +1,36 @@
> > +/* SPDX-License-Identifier: GPL-2.0+ */
> > +/*
> > + * Copyright (C) 2014-2021 Tony Dinh <mibodhi@gmail.com>
> > + *
> > + * Based on
> > + * Copyright (C) 2012 David Purdy <david.c.purdy@gmail.com>
> > + *
> > + * Based on Kirkwood support:
> > + * (C) Copyright 2009
> > + * Marvell Semiconductor <www.marvell.com>
> > + * Written-by: Prafulla Wadaskar <prafulla@marvell.com>
> > + */
> > +
> > +#ifndef __POGO_V4_H
> > +#define __POGO_V4_H
> > +
> > +#include <linux/bitops.h>
> > +
> > +/* GPIO configuration */
> > +#define POGO_V4_OE_LOW                               (~(0))
> > +#define POGO_V4_OE_HIGH                              (~(0))
> > +#define POGO_V4_OE_VAL_LOW                   BIT(29)
> > +#define POGO_V4_OE_VAL_HIGH                  0
> > +
> > +/* PHY related */
> > +#define MV88E1116_LED_FCTRL_REG                      10
> > +#define MV88E1116_CPRSP_CR3_REG                      21
> > +#define MV88E1116_MAC_CTRL_REG                       21
> > +#define MV88E1116_PGADR_REG                  22
> > +#define MV88E1116_RGMII_TXTM_CTRL            BIT(4)
> > +#define MV88E1116_RGMII_RXTM_CTRL            BIT(5)
> > +
> > +/* button */
> > +#define BTN_EJECT                            29
> > +
> > +#endif /* __POGO_V4_H */
>
> Hello! As this pogo_v4.h include file is used only in pogo_v4.c source
> file and contains only few defines, you can move all these defines
> directly into pogo_v4.c source file. There is no need to export these
> constants if they are not used by other files or modules.

Sure, but that'll make the .c file harder to read? We've been using
the .h file since the old days, I think mostly for readability. This
is a small header file, but for some other boards, the header file is
quite large.

Thanks,
Tony

> > --
> > 2.20.1
> >
Stefan Roese Dec. 20, 2021, 7:23 a.m. UTC | #3
Hi Tony,

On 12/18/21 22:47, Tony Dinh wrote:
> Hi Pali,
> 
> On Sat, Dec 18, 2021 at 5:09 AM Pali Rohár <pali@kernel.org> wrote:
>>
>> On Friday 17 December 2021 20:23:32 Tony Dinh wrote:
>>> Add board implementation header and Makefile for Pogoplug V4
>>>
>>> Signed-off-by: Tony Dinh <mibodhi@gmail.com>
>>> ---
>>>
>>>   board/cloudengines/pogo_v4/Makefile  | 10 ++++++++
>>>   board/cloudengines/pogo_v4/pogo_v4.h | 36 ++++++++++++++++++++++++++++
>>>   2 files changed, 46 insertions(+)
>>>   create mode 100644 board/cloudengines/pogo_v4/Makefile
>>>   create mode 100644 board/cloudengines/pogo_v4/pogo_v4.h
>>>
>>> diff --git a/board/cloudengines/pogo_v4/Makefile b/board/cloudengines/pogo_v4/Makefile
>>> new file mode 100644
>>> index 0000000000..511bf5ff7e
>>> --- /dev/null
>>> +++ b/board/cloudengines/pogo_v4/Makefile
>>> @@ -0,0 +1,10 @@
>>> +# SPDX-License-Identifier: GPL-2.0+
>>> +#
>>> +# (C) Copyright 2014-2021 Tony Dinh <mibodhi@gmail.com>
>>> +#
>>> +# Based on
>>> +# Marvell Semiconductor <www.marvell.com>
>>> +# Written-by: Prafulla Wadaskar <prafulla@marvell.com>
>>> +#
>>> +
>>> +obj-y        := pogo_v4.o
>>> diff --git a/board/cloudengines/pogo_v4/pogo_v4.h b/board/cloudengines/pogo_v4/pogo_v4.h
>>> new file mode 100644
>>> index 0000000000..bf3060de60
>>> --- /dev/null
>>> +++ b/board/cloudengines/pogo_v4/pogo_v4.h
>>> @@ -0,0 +1,36 @@
>>> +/* SPDX-License-Identifier: GPL-2.0+ */
>>> +/*
>>> + * Copyright (C) 2014-2021 Tony Dinh <mibodhi@gmail.com>
>>> + *
>>> + * Based on
>>> + * Copyright (C) 2012 David Purdy <david.c.purdy@gmail.com>
>>> + *
>>> + * Based on Kirkwood support:
>>> + * (C) Copyright 2009
>>> + * Marvell Semiconductor <www.marvell.com>
>>> + * Written-by: Prafulla Wadaskar <prafulla@marvell.com>
>>> + */
>>> +
>>> +#ifndef __POGO_V4_H
>>> +#define __POGO_V4_H
>>> +
>>> +#include <linux/bitops.h>
>>> +
>>> +/* GPIO configuration */
>>> +#define POGO_V4_OE_LOW                               (~(0))
>>> +#define POGO_V4_OE_HIGH                              (~(0))
>>> +#define POGO_V4_OE_VAL_LOW                   BIT(29)
>>> +#define POGO_V4_OE_VAL_HIGH                  0
>>> +
>>> +/* PHY related */
>>> +#define MV88E1116_LED_FCTRL_REG                      10
>>> +#define MV88E1116_CPRSP_CR3_REG                      21
>>> +#define MV88E1116_MAC_CTRL_REG                       21
>>> +#define MV88E1116_PGADR_REG                  22
>>> +#define MV88E1116_RGMII_TXTM_CTRL            BIT(4)
>>> +#define MV88E1116_RGMII_RXTM_CTRL            BIT(5)
>>> +
>>> +/* button */
>>> +#define BTN_EJECT                            29
>>> +
>>> +#endif /* __POGO_V4_H */
>>
>> Hello! As this pogo_v4.h include file is used only in pogo_v4.c source
>> file and contains only few defines, you can move all these defines
>> directly into pogo_v4.c source file. There is no need to export these
>> constants if they are not used by other files or modules.
> 
> Sure, but that'll make the .c file harder to read? We've been using
> the .h file since the old days, I think mostly for readability. This
> is a small header file, but for some other boards, the header file is
> quite large.

I fail to see why moving these few lines from the header to the .c file
makes the code harder to read. Especially if the macros / defines are
only used in one specific file, it makes sense to place them in this
file IMHO.

Thanks,
Stefan
Tony Dinh Dec. 20, 2021, 9:14 p.m. UTC | #4
On Sun, Dec 19, 2021 at 11:23 PM Stefan Roese <sr@denx.de> wrote:
>
> Hi Tony,
>
> On 12/18/21 22:47, Tony Dinh wrote:
> > Hi Pali,
> >
> > On Sat, Dec 18, 2021 at 5:09 AM Pali Rohár <pali@kernel.org> wrote:
> >>
> >> On Friday 17 December 2021 20:23:32 Tony Dinh wrote:
> >>> Add board implementation header and Makefile for Pogoplug V4
> >>>
> >>> Signed-off-by: Tony Dinh <mibodhi@gmail.com>
> >>> ---
> >>>
> >>>   board/cloudengines/pogo_v4/Makefile  | 10 ++++++++
> >>>   board/cloudengines/pogo_v4/pogo_v4.h | 36 ++++++++++++++++++++++++++++
> >>>   2 files changed, 46 insertions(+)
> >>>   create mode 100644 board/cloudengines/pogo_v4/Makefile
> >>>   create mode 100644 board/cloudengines/pogo_v4/pogo_v4.h
> >>>
> >>> diff --git a/board/cloudengines/pogo_v4/Makefile b/board/cloudengines/pogo_v4/Makefile
> >>> new file mode 100644
> >>> index 0000000000..511bf5ff7e
> >>> --- /dev/null
> >>> +++ b/board/cloudengines/pogo_v4/Makefile
> >>> @@ -0,0 +1,10 @@
> >>> +# SPDX-License-Identifier: GPL-2.0+
> >>> +#
> >>> +# (C) Copyright 2014-2021 Tony Dinh <mibodhi@gmail.com>
> >>> +#
> >>> +# Based on
> >>> +# Marvell Semiconductor <www.marvell.com>
> >>> +# Written-by: Prafulla Wadaskar <prafulla@marvell.com>
> >>> +#
> >>> +
> >>> +obj-y        := pogo_v4.o
> >>> diff --git a/board/cloudengines/pogo_v4/pogo_v4.h b/board/cloudengines/pogo_v4/pogo_v4.h
> >>> new file mode 100644
> >>> index 0000000000..bf3060de60
> >>> --- /dev/null
> >>> +++ b/board/cloudengines/pogo_v4/pogo_v4.h
> >>> @@ -0,0 +1,36 @@
> >>> +/* SPDX-License-Identifier: GPL-2.0+ */
> >>> +/*
> >>> + * Copyright (C) 2014-2021 Tony Dinh <mibodhi@gmail.com>
> >>> + *
> >>> + * Based on
> >>> + * Copyright (C) 2012 David Purdy <david.c.purdy@gmail.com>
> >>> + *
> >>> + * Based on Kirkwood support:
> >>> + * (C) Copyright 2009
> >>> + * Marvell Semiconductor <www.marvell.com>
> >>> + * Written-by: Prafulla Wadaskar <prafulla@marvell.com>
> >>> + */
> >>> +
> >>> +#ifndef __POGO_V4_H
> >>> +#define __POGO_V4_H
> >>> +
> >>> +#include <linux/bitops.h>
> >>> +
> >>> +/* GPIO configuration */
> >>> +#define POGO_V4_OE_LOW                               (~(0))
> >>> +#define POGO_V4_OE_HIGH                              (~(0))
> >>> +#define POGO_V4_OE_VAL_LOW                   BIT(29)
> >>> +#define POGO_V4_OE_VAL_HIGH                  0
> >>> +
> >>> +/* PHY related */
> >>> +#define MV88E1116_LED_FCTRL_REG                      10
> >>> +#define MV88E1116_CPRSP_CR3_REG                      21
> >>> +#define MV88E1116_MAC_CTRL_REG                       21
> >>> +#define MV88E1116_PGADR_REG                  22
> >>> +#define MV88E1116_RGMII_TXTM_CTRL            BIT(4)
> >>> +#define MV88E1116_RGMII_RXTM_CTRL            BIT(5)
> >>> +
> >>> +/* button */
> >>> +#define BTN_EJECT                            29
> >>> +
> >>> +#endif /* __POGO_V4_H */
> >>
> >> Hello! As this pogo_v4.h include file is used only in pogo_v4.c source
> >> file and contains only few defines, you can move all these defines
> >> directly into pogo_v4.c source file. There is no need to export these
> >> constants if they are not used by other files or modules.
> >
> > Sure, but that'll make the .c file harder to read? We've been using
> > the .h file since the old days, I think mostly for readability. This
> > is a small header file, but for some other boards, the header file is
> > quite large.
>
> I fail to see why moving these few lines from the header to the .c file
> makes the code harder to read. Especially if the macros / defines are
> only used in one specific file, it makes sense to place them in this
> file IMHO.

Concur with you and Pali! Will merge the constants to .c file.

Thanks,
Tony

>
> Thanks,
> Stefan
diff mbox series

Patch

diff --git a/board/cloudengines/pogo_v4/Makefile b/board/cloudengines/pogo_v4/Makefile
new file mode 100644
index 0000000000..511bf5ff7e
--- /dev/null
+++ b/board/cloudengines/pogo_v4/Makefile
@@ -0,0 +1,10 @@ 
+# SPDX-License-Identifier: GPL-2.0+
+#
+# (C) Copyright 2014-2021 Tony Dinh <mibodhi@gmail.com>
+#
+# Based on
+# Marvell Semiconductor <www.marvell.com>
+# Written-by: Prafulla Wadaskar <prafulla@marvell.com>
+#
+
+obj-y	:= pogo_v4.o
diff --git a/board/cloudengines/pogo_v4/pogo_v4.h b/board/cloudengines/pogo_v4/pogo_v4.h
new file mode 100644
index 0000000000..bf3060de60
--- /dev/null
+++ b/board/cloudengines/pogo_v4/pogo_v4.h
@@ -0,0 +1,36 @@ 
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (C) 2014-2021 Tony Dinh <mibodhi@gmail.com>
+ *
+ * Based on
+ * Copyright (C) 2012 David Purdy <david.c.purdy@gmail.com>
+ *
+ * Based on Kirkwood support:
+ * (C) Copyright 2009
+ * Marvell Semiconductor <www.marvell.com>
+ * Written-by: Prafulla Wadaskar <prafulla@marvell.com>
+ */
+
+#ifndef __POGO_V4_H
+#define __POGO_V4_H
+
+#include <linux/bitops.h>
+
+/* GPIO configuration */
+#define POGO_V4_OE_LOW				(~(0))
+#define POGO_V4_OE_HIGH				(~(0))
+#define POGO_V4_OE_VAL_LOW			BIT(29)
+#define POGO_V4_OE_VAL_HIGH			0
+
+/* PHY related */
+#define MV88E1116_LED_FCTRL_REG			10
+#define MV88E1116_CPRSP_CR3_REG			21
+#define MV88E1116_MAC_CTRL_REG			21
+#define MV88E1116_PGADR_REG			22
+#define MV88E1116_RGMII_TXTM_CTRL		BIT(4)
+#define MV88E1116_RGMII_RXTM_CTRL		BIT(5)
+
+/* button */
+#define BTN_EJECT				29
+
+#endif /* __POGO_V4_H */