mbox series

[0/6] nvmem: add "cell-type" property to support mac-address

Message ID 20210908100257.17833-1-qiangqing.zhang@nxp.com
Headers show
Series nvmem: add "cell-type" property to support mac-address | expand

Message

Joakim Zhang Sept. 8, 2021, 10:02 a.m. UTC
This patch set adds "cell-type" property to parse mac address, take i.MX
as an example, which need reverse byte for mac address.

Joakim Zhang (2):
  arm64: dts: imx8mm: add "cell-type" property for mac-address
  arm64: dts: imx8m: remove unused "nvmem_macaddr_swap" property for FEC

Srinivas Kandagatla (4):
  dt-bindings: nvmem: add cell-type to nvmem cells
  nvmem: core: parse nvmem cell-type from device tree
  nvmem: core: add nvmem cell post processing callback
  nvmem: imx-ocotp: add support for post porcessing.

 .../devicetree/bindings/nvmem/nvmem.yaml      | 11 +++++++
 arch/arm64/boot/dts/freescale/imx8mm.dtsi     |  3 +-
 arch/arm64/boot/dts/freescale/imx8mn.dtsi     |  3 +-
 arch/arm64/boot/dts/freescale/imx8mp.dtsi     | 10 ++++++-
 arch/arm64/boot/dts/freescale/imx8mq.dtsi     |  3 +-
 drivers/nvmem/core.c                          | 12 ++++++++
 drivers/nvmem/imx-ocotp.c                     | 30 +++++++++++++++++++
 include/dt-bindings/nvmem/nvmem.h             |  8 +++++
 include/linux/nvmem-provider.h                |  5 ++++
 9 files changed, 81 insertions(+), 4 deletions(-)
 create mode 100644 include/dt-bindings/nvmem/nvmem.h

Comments

Joakim Zhang Sept. 22, 2021, 10:46 a.m. UTC | #1
Gentle Ping...

Best Regards,
Joakim Zhang

> -----Original Message-----
> From: Joakim Zhang <qiangqing.zhang@nxp.com>
> Sent: 2021年9月8日 18:03
> To: srinivas.kandagatla@linaro.org; robh+dt@kernel.org;
> shawnguo@kernel.org
> Cc: dl-linux-imx <linux-imx@nxp.com>; kernel@pengutronix.de;
> devicetree@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: [PATCH 0/6] nvmem: add "cell-type" property to support mac-address
> 
> This patch set adds "cell-type" property to parse mac address, take i.MX as an
> example, which need reverse byte for mac address.
> 
> Joakim Zhang (2):
>   arm64: dts: imx8mm: add "cell-type" property for mac-address
>   arm64: dts: imx8m: remove unused "nvmem_macaddr_swap" property for
> FEC
> 
> Srinivas Kandagatla (4):
>   dt-bindings: nvmem: add cell-type to nvmem cells
>   nvmem: core: parse nvmem cell-type from device tree
>   nvmem: core: add nvmem cell post processing callback
>   nvmem: imx-ocotp: add support for post porcessing.
> 
>  .../devicetree/bindings/nvmem/nvmem.yaml      | 11 +++++++
>  arch/arm64/boot/dts/freescale/imx8mm.dtsi     |  3 +-
>  arch/arm64/boot/dts/freescale/imx8mn.dtsi     |  3 +-
>  arch/arm64/boot/dts/freescale/imx8mp.dtsi     | 10 ++++++-
>  arch/arm64/boot/dts/freescale/imx8mq.dtsi     |  3 +-
>  drivers/nvmem/core.c                          | 12 ++++++++
>  drivers/nvmem/imx-ocotp.c                     | 30
> +++++++++++++++++++
>  include/dt-bindings/nvmem/nvmem.h             |  8 +++++
>  include/linux/nvmem-provider.h                |  5 ++++
>  9 files changed, 81 insertions(+), 4 deletions(-)  create mode 100644
> include/dt-bindings/nvmem/nvmem.h
> 
> --
> 2.17.1
Ahmad Fatoum Sept. 22, 2021, 11:36 a.m. UTC | #2
On 08.09.21 12:02, Joakim Zhang wrote:
> From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> 
> get nvmem cell-type from device tree
> 
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>

Reviewed-by: Ahmad Fatoum <a.fatoum@pengutronix.de>

> ---
>  drivers/nvmem/core.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
> index 3d87fadaa160..23c08dbaf45e 100644
> --- a/drivers/nvmem/core.c
> +++ b/drivers/nvmem/core.c
> @@ -52,6 +52,7 @@ struct nvmem_cell {
>  	int			bytes;
>  	int			bit_offset;
>  	int			nbits;
> +	u32			type;
>  	struct device_node	*np;
>  	struct nvmem_device	*nvmem;
>  	struct list_head	node;
> @@ -726,6 +727,8 @@ static int nvmem_add_cells_from_of(struct nvmem_device *nvmem)
>  			return -EINVAL;
>  		}
>  
> +		of_property_read_u32(child, "cell-type", &cell->type);
> +
>  		cell->np = of_node_get(child);
>  		nvmem_cell_add(cell);
>  	}
>
Ahmad Fatoum Sept. 22, 2021, 11:37 a.m. UTC | #3
On 08.09.21 12:02, Joakim Zhang wrote:
> From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> 
> Some NVMEM providers have certain nvmem cells encoded, which requires
> post processing before actually using it.
> 
> For example mac-address is stored in either in ascii or delimited or reverse-order.
> 
> Having a post-process callback hook to provider drivers would enable them to
> do this vendor specific post processing before nvmem consumers see it.
> 
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
> ---
>  drivers/nvmem/core.c           | 9 +++++++++
>  include/linux/nvmem-provider.h | 5 +++++
>  2 files changed, 14 insertions(+)
> 
> diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
> index 23c08dbaf45e..4f81a3adf081 100644
> --- a/drivers/nvmem/core.c
> +++ b/drivers/nvmem/core.c
> @@ -38,6 +38,7 @@ struct nvmem_device {
>  	unsigned int		nkeepout;
>  	nvmem_reg_read_t	reg_read;
>  	nvmem_reg_write_t	reg_write;
> +	nvmem_cell_post_process_t cell_post_process;
>  	struct gpio_desc	*wp_gpio;
>  	void *priv;
>  };
> @@ -797,6 +798,7 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
>  	nvmem->type = config->type;
>  	nvmem->reg_read = config->reg_read;
>  	nvmem->reg_write = config->reg_write;
> +	nvmem->cell_post_process = config->cell_post_process;
>  	nvmem->keepout = config->keepout;
>  	nvmem->nkeepout = config->nkeepout;
>  	if (config->of_node)
> @@ -1404,6 +1406,13 @@ static int __nvmem_cell_read(struct nvmem_device *nvmem,
>  	if (cell->bit_offset || cell->nbits)
>  		nvmem_shift_read_buffer_in_place(cell, buf);
>  
> +	if (nvmem->cell_post_process) {
> +		rc = nvmem->cell_post_process(nvmem->priv, cell->type,
> +					      cell->offset, buf, cell->bytes);
> +		if (rc)
> +			return rc;
> +	}
> +
>  	if (len)
>  		*len = cell->bytes;
>  
> diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h
> index 104505e9028f..d980c79f9605 100644
> --- a/include/linux/nvmem-provider.h
> +++ b/include/linux/nvmem-provider.h
> @@ -19,6 +19,9 @@ typedef int (*nvmem_reg_read_t)(void *priv, unsigned int offset,
>  				void *val, size_t bytes);
>  typedef int (*nvmem_reg_write_t)(void *priv, unsigned int offset,
>  				 void *val, size_t bytes);
> +/* used for vendor specific post processing of cell data */
> +typedef int (*nvmem_cell_post_process_t)(void *priv, int type, unsigned int offset,
> +					  void *buf, size_t bytes);
>  
>  enum nvmem_type {
>  	NVMEM_TYPE_UNKNOWN = 0,
> @@ -62,6 +65,7 @@ struct nvmem_keepout {
>   * @no_of_node:	Device should not use the parent's of_node even if it's !NULL.
>   * @reg_read:	Callback to read data.
>   * @reg_write:	Callback to write data.
> + * @cell_read_callback: Callback for vendor specific post processing of cell data

The member below is called cell_post_process

>   * @size:	Device size.
>   * @word_size:	Minimum read/write access granularity.
>   * @stride:	Minimum read/write access stride.
> @@ -92,6 +96,7 @@ struct nvmem_config {
>  	bool			no_of_node;
>  	nvmem_reg_read_t	reg_read;
>  	nvmem_reg_write_t	reg_write;
> +	nvmem_cell_post_process_t cell_post_process;
>  	int	size;
>  	int	word_size;
>  	int	stride;
>
Ahmad Fatoum Sept. 22, 2021, 11:40 a.m. UTC | #4
On 08.09.21 12:02, Joakim Zhang wrote:
> Add "cell-type" property for mac-address nvmem cell to supporting mac
> address reverse byte.

s/imx8mm/imx8m/ in commit message title.
Do you intend to do this for older i.MX as well?

> 
> Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
> ---
>  arch/arm64/boot/dts/freescale/imx8mm.dtsi | 2 ++
>  arch/arm64/boot/dts/freescale/imx8mn.dtsi | 2 ++
>  arch/arm64/boot/dts/freescale/imx8mp.dtsi | 9 +++++++++
>  arch/arm64/boot/dts/freescale/imx8mq.dtsi | 2 ++
>  4 files changed, 15 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> index e7648c3b8390..fb14be932386 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> @@ -7,6 +7,7 @@
>  #include <dt-bindings/gpio/gpio.h>
>  #include <dt-bindings/input/input.h>
>  #include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/nvmem/nvmem.h>
>  #include <dt-bindings/thermal/thermal.h>
>  
>  #include "imx8mm-pinfunc.h"
> @@ -539,6 +540,7 @@
>  
>  				fec_mac_address: mac-address@90 {
>  					reg = <0x90 6>;
> +					cell-type = <NVMEM_CELL_TYPE_MAC_ADDRESS>;
>  				};
>  			};
>  
> diff --git a/arch/arm64/boot/dts/freescale/imx8mn.dtsi b/arch/arm64/boot/dts/freescale/imx8mn.dtsi
> index d4231e061403..0a994e6edc0b 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mn.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mn.dtsi
> @@ -7,6 +7,7 @@
>  #include <dt-bindings/gpio/gpio.h>
>  #include <dt-bindings/input/input.h>
>  #include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/nvmem/nvmem.h>
>  #include <dt-bindings/thermal/thermal.h>
>  
>  #include "imx8mn-pinfunc.h"
> @@ -544,6 +545,7 @@
>  
>  				fec_mac_address: mac-address@90 {
>  					reg = <0x90 6>;
> +					cell-type = <NVMEM_CELL_TYPE_MAC_ADDRESS>;
>  				};
>  			};
>  
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> index 9f7c7f587d38..37188ff07f21 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> @@ -7,6 +7,7 @@
>  #include <dt-bindings/gpio/gpio.h>
>  #include <dt-bindings/input/input.h>
>  #include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/nvmem/nvmem.h>
>  #include <dt-bindings/thermal/thermal.h>
>  
>  #include "imx8mp-pinfunc.h"
> @@ -358,6 +359,12 @@
>  
>  				eth_mac1: mac-address@90 {
>  					reg = <0x90 6>;
> +					cell-type = <NVMEM_CELL_TYPE_MAC_ADDRESS>;
> +				};
> +
> +				eth_mac2: mac-address@96 {
> +					reg = <0x96 6>;
> +					cell-type = <NVMEM_CELL_TYPE_MAC_ADDRESS>;
>  				};
>  			};
>  
> @@ -836,6 +843,8 @@
>  							 <&clk IMX8MP_SYS_PLL2_100M>,
>  							 <&clk IMX8MP_SYS_PLL2_125M>;
>  				assigned-clock-rates = <0>, <100000000>, <125000000>;
> +				nvmem-cells = <&eth_mac2>;
> +				nvmem-cell-names = "mac-address";
>  				intf_mode = <&gpr 0x4>;
>  				status = "disabled";
>  			};
> diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> index 91df9c5350ae..1cb211e470ae 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> @@ -10,6 +10,7 @@
>  #include <dt-bindings/gpio/gpio.h>
>  #include "dt-bindings/input/input.h"
>  #include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/nvmem/nvmem.h>
>  #include <dt-bindings/thermal/thermal.h>
>  #include <dt-bindings/interconnect/imx8mq.h>
>  #include "imx8mq-pinfunc.h"
> @@ -570,6 +571,7 @@
>  
>  				fec_mac_address: mac-address@90 {
>  					reg = <0x90 6>;
> +					cell-type = <NVMEM_CELL_TYPE_MAC_ADDRESS>;
>  				};
>  			};
>  
>
Ahmad Fatoum Sept. 22, 2021, 11:40 a.m. UTC | #5
On 08.09.21 12:02, Joakim Zhang wrote:
> Remove unused "nvmem_macaddr_swap" property for FEC, there is no info in both
> dt-binding and driver, so it's safe to remove it.
> 
> Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>

Reviewed-by: Ahmad Fatoum <a.fatoum@pengutronix.de>

> ---
>  arch/arm64/boot/dts/freescale/imx8mm.dtsi | 1 -
>  arch/arm64/boot/dts/freescale/imx8mn.dtsi | 1 -
>  arch/arm64/boot/dts/freescale/imx8mp.dtsi | 1 -
>  arch/arm64/boot/dts/freescale/imx8mq.dtsi | 1 -
>  4 files changed, 4 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> index fb14be932386..2210cfda4e60 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> @@ -948,7 +948,6 @@
>  				fsl,num-rx-queues = <3>;
>  				nvmem-cells = <&fec_mac_address>;
>  				nvmem-cell-names = "mac-address";
> -				nvmem_macaddr_swap;
>  				fsl,stop-mode = <&gpr 0x10 3>;
>  				status = "disabled";
>  			};
> diff --git a/arch/arm64/boot/dts/freescale/imx8mn.dtsi b/arch/arm64/boot/dts/freescale/imx8mn.dtsi
> index 0a994e6edc0b..408024426315 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mn.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mn.dtsi
> @@ -951,7 +951,6 @@
>  				fsl,num-rx-queues = <3>;
>  				nvmem-cells = <&fec_mac_address>;
>  				nvmem-cell-names = "mac-address";
> -				nvmem_macaddr_swap;
>  				fsl,stop-mode = <&gpr 0x10 3>;
>  				status = "disabled";
>  			};
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> index 37188ff07f21..cb7867791d05 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> @@ -821,7 +821,6 @@
>  				nvmem-cells = <&eth_mac1>;
>  				nvmem-cell-names = "mac-address";
>  				fsl,stop-mode = <&gpr 0x10 3>;
> -				nvmem_macaddr_swap;
>  				status = "disabled";
>  			};
>  
> diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> index 1cb211e470ae..dc4e39ef9d39 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> @@ -1191,7 +1191,6 @@
>  				fsl,num-rx-queues = <3>;
>  				nvmem-cells = <&fec_mac_address>;
>  				nvmem-cell-names = "mac-address";
> -				nvmem_macaddr_swap;
>  				fsl,stop-mode = <&iomuxc_gpr 0x10 3>;
>  				status = "disabled";
>  			};
>
Joakim Zhang Sept. 23, 2021, 2:52 a.m. UTC | #6
Hi Ahmad,

> -----Original Message-----
> From: Ahmad Fatoum <a.fatoum@pengutronix.de>
> Sent: 2021年9月22日 19:37
> To: Joakim Zhang <qiangqing.zhang@nxp.com>;
> srinivas.kandagatla@linaro.org; robh+dt@kernel.org; shawnguo@kernel.org
> Cc: devicetree@vger.kernel.org; dl-linux-imx <linux-imx@nxp.com>;
> kernel@pengutronix.de; linux-kernel@vger.kernel.org
> Subject: Re: [PATCH 3/6] nvmem: core: add nvmem cell post processing
> callback
> 
> On 08.09.21 12:02, Joakim Zhang wrote:
> > From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> >
> > Some NVMEM providers have certain nvmem cells encoded, which requires
> > post processing before actually using it.
> >
> > For example mac-address is stored in either in ascii or delimited or
> reverse-order.
> >
> > Having a post-process callback hook to provider drivers would enable
> > them to do this vendor specific post processing before nvmem consumers see
> it.
> >
> > Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> > Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
> > ---
> >  drivers/nvmem/core.c           | 9 +++++++++
> >  include/linux/nvmem-provider.h | 5 +++++
> >  2 files changed, 14 insertions(+)
> >
> > diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index
> > 23c08dbaf45e..4f81a3adf081 100644
> > --- a/drivers/nvmem/core.c
> > +++ b/drivers/nvmem/core.c
> > @@ -38,6 +38,7 @@ struct nvmem_device {
> >  	unsigned int		nkeepout;
> >  	nvmem_reg_read_t	reg_read;
> >  	nvmem_reg_write_t	reg_write;
> > +	nvmem_cell_post_process_t cell_post_process;
> >  	struct gpio_desc	*wp_gpio;
> >  	void *priv;
> >  };
> > @@ -797,6 +798,7 @@ struct nvmem_device *nvmem_register(const struct
> nvmem_config *config)
> >  	nvmem->type = config->type;
> >  	nvmem->reg_read = config->reg_read;
> >  	nvmem->reg_write = config->reg_write;
> > +	nvmem->cell_post_process = config->cell_post_process;
> >  	nvmem->keepout = config->keepout;
> >  	nvmem->nkeepout = config->nkeepout;
> >  	if (config->of_node)
> > @@ -1404,6 +1406,13 @@ static int __nvmem_cell_read(struct
> nvmem_device *nvmem,
> >  	if (cell->bit_offset || cell->nbits)
> >  		nvmem_shift_read_buffer_in_place(cell, buf);
> >
> > +	if (nvmem->cell_post_process) {
> > +		rc = nvmem->cell_post_process(nvmem->priv, cell->type,
> > +					      cell->offset, buf, cell->bytes);
> > +		if (rc)
> > +			return rc;
> > +	}
> > +
> >  	if (len)
> >  		*len = cell->bytes;
> >
> > diff --git a/include/linux/nvmem-provider.h
> > b/include/linux/nvmem-provider.h index 104505e9028f..d980c79f9605
> > 100644
> > --- a/include/linux/nvmem-provider.h
> > +++ b/include/linux/nvmem-provider.h
> > @@ -19,6 +19,9 @@ typedef int (*nvmem_reg_read_t)(void *priv, unsigned
> int offset,
> >  				void *val, size_t bytes);
> >  typedef int (*nvmem_reg_write_t)(void *priv, unsigned int offset,
> >  				 void *val, size_t bytes);
> > +/* used for vendor specific post processing of cell data */ typedef
> > +int (*nvmem_cell_post_process_t)(void *priv, int type, unsigned int offset,
> > +					  void *buf, size_t bytes);
> >
> >  enum nvmem_type {
> >  	NVMEM_TYPE_UNKNOWN = 0,
> > @@ -62,6 +65,7 @@ struct nvmem_keepout {
> >   * @no_of_node:	Device should not use the parent's of_node even if
> it's !NULL.
> >   * @reg_read:	Callback to read data.
> >   * @reg_write:	Callback to write data.
> > + * @cell_read_callback: Callback for vendor specific post processing
> > + of cell data
> 
> The member below is called cell_post_process

Good caught! Will fix it in V2. Thanks.

Best Regards,
Joakim Zhang
> >   * @size:	Device size.
> >   * @word_size:	Minimum read/write access granularity.
> >   * @stride:	Minimum read/write access stride.
> > @@ -92,6 +96,7 @@ struct nvmem_config {
> >  	bool			no_of_node;
> >  	nvmem_reg_read_t	reg_read;
> >  	nvmem_reg_write_t	reg_write;
> > +	nvmem_cell_post_process_t cell_post_process;
> >  	int	size;
> >  	int	word_size;
> >  	int	stride;
> >
> 
> 
> --
> Pengutronix e.K.                           |
> |
> Steuerwalder Str. 21                       |
> https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.pe
> ngutronix.de%2F&amp;data=04%7C01%7Cqiangqing.zhang%40nxp.com%7C85
> 4dcad461914aa4227e08d97dbd56f0%7C686ea1d3bc2b4c6fa92cd99c5c301635
> %7C0%7C0%7C637679074424671648%7CUnknown%7CTWFpbGZsb3d8eyJWIj
> oiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C10
> 00&amp;sdata=nYxnuFbFB9PhGfEUPiwg7dJOR2hQHV5NbjfT1NyKWBM%3D&a
> mp;reserved=0  |
> 31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0
> |
> Amtsgericht Hildesheim, HRA 2686           | Fax:
> +49-5121-206917-5555 |
Joakim Zhang Sept. 23, 2021, 2:52 a.m. UTC | #7
Hi Ahmad,

> -----Original Message-----
> From: Ahmad Fatoum <a.fatoum@pengutronix.de>
> Sent: 2021年9月22日 19:40
> To: Joakim Zhang <qiangqing.zhang@nxp.com>;
> srinivas.kandagatla@linaro.org; robh+dt@kernel.org; shawnguo@kernel.org
> Cc: devicetree@vger.kernel.org; dl-linux-imx <linux-imx@nxp.com>;
> kernel@pengutronix.de; linux-kernel@vger.kernel.org
> Subject: Re: [PATCH 5/6] arm64: dts: imx8mm: add "cell-type" property for
> mac-address
> 
> On 08.09.21 12:02, Joakim Zhang wrote:
> > Add "cell-type" property for mac-address nvmem cell to supporting mac
> > address reverse byte.
> 
> s/imx8mm/imx8m/ in commit message title.

Will fix it in V2.

> Do you intend to do this for older i.MX as well?

No plan now, I just prepare it for i.MX8M serials.

Best Regards,
Joakim Zhang
> >
> > Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
> > ---
> >  arch/arm64/boot/dts/freescale/imx8mm.dtsi | 2 ++
> > arch/arm64/boot/dts/freescale/imx8mn.dtsi | 2 ++
> > arch/arm64/boot/dts/freescale/imx8mp.dtsi | 9 +++++++++
> > arch/arm64/boot/dts/freescale/imx8mq.dtsi | 2 ++
> >  4 files changed, 15 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > index e7648c3b8390..fb14be932386 100644
> > --- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > +++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > @@ -7,6 +7,7 @@
> >  #include <dt-bindings/gpio/gpio.h>
> >  #include <dt-bindings/input/input.h>
> >  #include <dt-bindings/interrupt-controller/arm-gic.h>
> > +#include <dt-bindings/nvmem/nvmem.h>
> >  #include <dt-bindings/thermal/thermal.h>
> >
> >  #include "imx8mm-pinfunc.h"
> > @@ -539,6 +540,7 @@
> >
> >  				fec_mac_address: mac-address@90 {
> >  					reg = <0x90 6>;
> > +					cell-type = <NVMEM_CELL_TYPE_MAC_ADDRESS>;
> >  				};
> >  			};
> >
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mn.dtsi
> > b/arch/arm64/boot/dts/freescale/imx8mn.dtsi
> > index d4231e061403..0a994e6edc0b 100644
> > --- a/arch/arm64/boot/dts/freescale/imx8mn.dtsi
> > +++ b/arch/arm64/boot/dts/freescale/imx8mn.dtsi
> > @@ -7,6 +7,7 @@
> >  #include <dt-bindings/gpio/gpio.h>
> >  #include <dt-bindings/input/input.h>
> >  #include <dt-bindings/interrupt-controller/arm-gic.h>
> > +#include <dt-bindings/nvmem/nvmem.h>
> >  #include <dt-bindings/thermal/thermal.h>
> >
> >  #include "imx8mn-pinfunc.h"
> > @@ -544,6 +545,7 @@
> >
> >  				fec_mac_address: mac-address@90 {
> >  					reg = <0x90 6>;
> > +					cell-type = <NVMEM_CELL_TYPE_MAC_ADDRESS>;
> >  				};
> >  			};
> >
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > index 9f7c7f587d38..37188ff07f21 100644
> > --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > @@ -7,6 +7,7 @@
> >  #include <dt-bindings/gpio/gpio.h>
> >  #include <dt-bindings/input/input.h>
> >  #include <dt-bindings/interrupt-controller/arm-gic.h>
> > +#include <dt-bindings/nvmem/nvmem.h>
> >  #include <dt-bindings/thermal/thermal.h>
> >
> >  #include "imx8mp-pinfunc.h"
> > @@ -358,6 +359,12 @@
> >
> >  				eth_mac1: mac-address@90 {
> >  					reg = <0x90 6>;
> > +					cell-type = <NVMEM_CELL_TYPE_MAC_ADDRESS>;
> > +				};
> > +
> > +				eth_mac2: mac-address@96 {
> > +					reg = <0x96 6>;
> > +					cell-type = <NVMEM_CELL_TYPE_MAC_ADDRESS>;
> >  				};
> >  			};
> >
> > @@ -836,6 +843,8 @@
> >  							 <&clk IMX8MP_SYS_PLL2_100M>,
> >  							 <&clk IMX8MP_SYS_PLL2_125M>;
> >  				assigned-clock-rates = <0>, <100000000>, <125000000>;
> > +				nvmem-cells = <&eth_mac2>;
> > +				nvmem-cell-names = "mac-address";
> >  				intf_mode = <&gpr 0x4>;
> >  				status = "disabled";
> >  			};
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> > b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> > index 91df9c5350ae..1cb211e470ae 100644
> > --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> > +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> > @@ -10,6 +10,7 @@
> >  #include <dt-bindings/gpio/gpio.h>
> >  #include "dt-bindings/input/input.h"
> >  #include <dt-bindings/interrupt-controller/arm-gic.h>
> > +#include <dt-bindings/nvmem/nvmem.h>
> >  #include <dt-bindings/thermal/thermal.h>  #include
> > <dt-bindings/interconnect/imx8mq.h>
> >  #include "imx8mq-pinfunc.h"
> > @@ -570,6 +571,7 @@
> >
> >  				fec_mac_address: mac-address@90 {
> >  					reg = <0x90 6>;
> > +					cell-type = <NVMEM_CELL_TYPE_MAC_ADDRESS>;
> >  				};
> >  			};
> >
> >
> 
> 
> --
> Pengutronix e.K.                           |
> |
> Steuerwalder Str. 21                       |
> https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.pe
> ngutronix.de%2F&amp;data=04%7C01%7Cqiangqing.zhang%40nxp.com%7C94
> d6744dc99545da696a08d97dbdb83f%7C686ea1d3bc2b4c6fa92cd99c5c301635
> %7C0%7C0%7C637679076057590614%7CUnknown%7CTWFpbGZsb3d8eyJWIj
> oiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C10
> 00&amp;sdata=rb9ZZXEqNxQaq9PORDP5ZVOgqZINFltBG1eMvM9VcBc%3D&a
> mp;reserved=0  |
> 31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0
> |
> Amtsgericht Hildesheim, HRA 2686           | Fax:
> +49-5121-206917-5555 |