Message ID | 1543597332-27719-1-git-send-email-meenakshi.aggarwal@nxp.com |
---|---|
State | Accepted |
Commit | e088e587eda7a8813c977ddee84207ca728f87c5 |
Delegated to: | Prabhakar Kushwaha |
Headers | show |
Series | [U-Boot,1/2] armv8: emc2305: add support for fan controller | expand |
Gentle reminter > -----Original Message----- > From: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com> > Sent: Friday, November 30, 2018 10:32 PM > To: u-boot@lists.denx.de; York Sun <york.sun@nxp.com> > Cc: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com> > Subject: [PATCH 1/2] armv8: emc2305: add support for fan controller > > Add support for fan controller emc2305. > > Signed-off-by: Sriram Dash <sriram.dash@nxp.com> > Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com> > --- > arch/arm/cpu/armv8/fsl-layerscape/Kconfig | 6 +++++ > board/freescale/common/Makefile | 2 ++ > board/freescale/common/emc2305.c | 41 > +++++++++++++++++++++++++++++++ > board/freescale/common/emc2305.h | 23 +++++++++++++++++ > 4 files changed, 72 insertions(+) > create mode 100644 board/freescale/common/emc2305.c create mode > 100644 board/freescale/common/emc2305.h > > diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig > b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig > index 5dba2af..b0e779d 100644 > --- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig > +++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig > @@ -346,6 +346,12 @@ config MAX_CPUS > cores, count the reserved ports. This will allocate enough memory > in spin table to properly handle all cores. > > +config EMC2305 > + bool "Fan controller" > + help > + Enable the EMC2305 fan controller for configuration of fan > + speed. > + > config SECURE_BOOT > bool "Secure Boot" > help > diff --git a/board/freescale/common/Makefile > b/board/freescale/common/Makefile index e3c5eae..a9d61a8 100644 > --- a/board/freescale/common/Makefile > +++ b/board/freescale/common/Makefile > @@ -64,6 +64,8 @@ obj-$(CONFIG_POWER_MC34VR500) += > mc34vr500.o > > obj-$(CONFIG_LS102XA_STREAM_ID) += ls102xa_stream_id.o > > +obj-$(CONFIG_EMC2305) += emc2305.o > + > # deal with common files for P-series corenet based devices > obj-$(CONFIG_TARGET_P2041RDB) += p_corenet/ > obj-$(CONFIG_TARGET_P3041DS) += p_corenet/ > diff --git a/board/freescale/common/emc2305.c > b/board/freescale/common/emc2305.c > new file mode 100644 > index 0000000..8523084 > --- /dev/null > +++ b/board/freescale/common/emc2305.c > @@ -0,0 +1,41 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * Copyright 2018 NXP. > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#include <common.h> > +#include <command.h> > +#include <i2c.h> > +#include <asm/io.h> > + > +#include "emc2305.h" > + > +DECLARE_GLOBAL_DATA_PTR; > + > +void set_fan_speed(u8 data) > +{ > + u8 index; > + u8 Fan[NUM_OF_FANS] = {I2C_EMC2305_FAN1, > + I2C_EMC2305_FAN2, > + I2C_EMC2305_FAN3, > + I2C_EMC2305_FAN4, > + I2C_EMC2305_FAN5}; > + > + for (index = 0; index < NUM_OF_FANS; index++) { > + if (i2c_write(I2C_EMC2305_ADDR, Fan[index], 1, &data, 1) != 0) > { > + printf("Error: failed to change fan speed @%x\n", > + Fan[index]); > + } > + } > +} > + > +void emc2305_init(void) > +{ > + u8 data; > + > + data = I2C_EMC2305_CMD; > + if (i2c_write(I2C_EMC2305_ADDR, I2C_EMC2305_CONF, 1, &data, 1) != > 0) > + printf("Error: failed to configure EMC2305\n"); } > diff --git a/board/freescale/common/emc2305.h > b/board/freescale/common/emc2305.h > new file mode 100644 > index 0000000..eddf537 > --- /dev/null > +++ b/board/freescale/common/emc2305.h > @@ -0,0 +1,23 @@ > +/* SPDX-License-Identifier: GPL-2.0+ */ > +/* > + * Copyright 2018 NXP > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#ifndef __EMC2305_H_ > +#define __EMC2305_H_ > + > +#define I2C_EMC2305_CONF 0x20 > +#define I2C_EMC2305_FAN1 0x30 > +#define I2C_EMC2305_FAN2 0x40 > +#define I2C_EMC2305_FAN3 0x50 > +#define I2C_EMC2305_FAN4 0x60 > +#define I2C_EMC2305_FAN5 0x70 > + > +#define NUM_OF_FANS 5 > + > +void emc2305_init(void); > +void set_fan_speed(u8 data); > + > +#endif /* __EMC2305_H_ */ > -- > 1.9.1
> -----Original Message----- > From: U-Boot <u-boot-bounces@lists.denx.de> On Behalf Of Meenakshi > Aggarwal > Sent: Friday, November 30, 2018 10:32 PM > To: u-boot@lists.denx.de; York Sun <york.sun@nxp.com> > Subject: [U-Boot] [PATCH 1/2] armv8: emc2305: add support for fan > controller > > Add support for fan controller emc2305. > > Signed-off-by: Sriram Dash <sriram.dash@nxp.com> > Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com> > --- This patch been applied to fsl-qoriq master, awaiting upstream. --pk > arch/arm/cpu/armv8/fsl-layerscape/Kconfig | 6 +++++ > board/freescale/common/Makefile | 2 ++ > board/freescale/common/emc2305.c | 41 > +++++++++++++++++++++++++++++++ > board/freescale/common/emc2305.h | 23 +++++++++++++++++ > 4 files changed, 72 insertions(+) > create mode 100644 board/freescale/common/emc2305.c create mode > 100644 board/freescale/common/emc2305.h > > diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig > b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig > index 5dba2af..b0e779d 100644 > --- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig > +++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig > @@ -346,6 +346,12 @@ config MAX_CPUS > cores, count the reserved ports. This will allocate enough memory > in spin table to properly handle all cores. > > +config EMC2305 > + bool "Fan controller" > + help > + Enable the EMC2305 fan controller for configuration of fan > + speed. > + > config SECURE_BOOT > bool "Secure Boot" > help > diff --git a/board/freescale/common/Makefile > b/board/freescale/common/Makefile index e3c5eae..a9d61a8 100644 > --- a/board/freescale/common/Makefile > +++ b/board/freescale/common/Makefile > @@ -64,6 +64,8 @@ obj-$(CONFIG_POWER_MC34VR500) += > mc34vr500.o > > obj-$(CONFIG_LS102XA_STREAM_ID) += ls102xa_stream_id.o > > +obj-$(CONFIG_EMC2305) += emc2305.o > + > # deal with common files for P-series corenet based devices > obj-$(CONFIG_TARGET_P2041RDB) += p_corenet/ > obj-$(CONFIG_TARGET_P3041DS) += p_corenet/ > diff --git a/board/freescale/common/emc2305.c > b/board/freescale/common/emc2305.c > new file mode 100644 > index 0000000..8523084 > --- /dev/null > +++ b/board/freescale/common/emc2305.c > @@ -0,0 +1,41 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * Copyright 2018 NXP. > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#include <common.h> > +#include <command.h> > +#include <i2c.h> > +#include <asm/io.h> > + > +#include "emc2305.h" > + > +DECLARE_GLOBAL_DATA_PTR; > + > +void set_fan_speed(u8 data) > +{ > + u8 index; > + u8 Fan[NUM_OF_FANS] = {I2C_EMC2305_FAN1, > + I2C_EMC2305_FAN2, > + I2C_EMC2305_FAN3, > + I2C_EMC2305_FAN4, > + I2C_EMC2305_FAN5}; > + > + for (index = 0; index < NUM_OF_FANS; index++) { > + if (i2c_write(I2C_EMC2305_ADDR, Fan[index], 1, &data, 1) != > 0) { > + printf("Error: failed to change fan speed @%x\n", > + Fan[index]); > + } > + } > +} > + > +void emc2305_init(void) > +{ > + u8 data; > + > + data = I2C_EMC2305_CMD; > + if (i2c_write(I2C_EMC2305_ADDR, I2C_EMC2305_CONF, 1, &data, 1) > != 0) > + printf("Error: failed to configure EMC2305\n"); } > diff --git a/board/freescale/common/emc2305.h > b/board/freescale/common/emc2305.h > new file mode 100644 > index 0000000..eddf537 > --- /dev/null > +++ b/board/freescale/common/emc2305.h > @@ -0,0 +1,23 @@ > +/* SPDX-License-Identifier: GPL-2.0+ */ > +/* > + * Copyright 2018 NXP > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#ifndef __EMC2305_H_ > +#define __EMC2305_H_ > + > +#define I2C_EMC2305_CONF 0x20 > +#define I2C_EMC2305_FAN1 0x30 > +#define I2C_EMC2305_FAN2 0x40 > +#define I2C_EMC2305_FAN3 0x50 > +#define I2C_EMC2305_FAN4 0x60 > +#define I2C_EMC2305_FAN5 0x70 > + > +#define NUM_OF_FANS 5 > + > +void emc2305_init(void); > +void set_fan_speed(u8 data); > + > +#endif /* __EMC2305_H_ */ > -- > 1.9.1 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist > s.denx.de%2Flistinfo%2Fu- > boot&data=02%7C01%7Cprabhakar.kushwaha%40nxp.com%7C852de48 > ff3054484af5008d656b5433a%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7 > C0%7C636791733851930824&sdata=ks6iNJrjqSMfP8nHjlu%2BMpYqUKZ6 > JxzXrXnef4zPj%2FA%3D&reserved=0
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig index 5dba2af..b0e779d 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig +++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig @@ -346,6 +346,12 @@ config MAX_CPUS cores, count the reserved ports. This will allocate enough memory in spin table to properly handle all cores. +config EMC2305 + bool "Fan controller" + help + Enable the EMC2305 fan controller for configuration of fan + speed. + config SECURE_BOOT bool "Secure Boot" help diff --git a/board/freescale/common/Makefile b/board/freescale/common/Makefile index e3c5eae..a9d61a8 100644 --- a/board/freescale/common/Makefile +++ b/board/freescale/common/Makefile @@ -64,6 +64,8 @@ obj-$(CONFIG_POWER_MC34VR500) += mc34vr500.o obj-$(CONFIG_LS102XA_STREAM_ID) += ls102xa_stream_id.o +obj-$(CONFIG_EMC2305) += emc2305.o + # deal with common files for P-series corenet based devices obj-$(CONFIG_TARGET_P2041RDB) += p_corenet/ obj-$(CONFIG_TARGET_P3041DS) += p_corenet/ diff --git a/board/freescale/common/emc2305.c b/board/freescale/common/emc2305.c new file mode 100644 index 0000000..8523084 --- /dev/null +++ b/board/freescale/common/emc2305.c @@ -0,0 +1,41 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2018 NXP. + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <common.h> +#include <command.h> +#include <i2c.h> +#include <asm/io.h> + +#include "emc2305.h" + +DECLARE_GLOBAL_DATA_PTR; + +void set_fan_speed(u8 data) +{ + u8 index; + u8 Fan[NUM_OF_FANS] = {I2C_EMC2305_FAN1, + I2C_EMC2305_FAN2, + I2C_EMC2305_FAN3, + I2C_EMC2305_FAN4, + I2C_EMC2305_FAN5}; + + for (index = 0; index < NUM_OF_FANS; index++) { + if (i2c_write(I2C_EMC2305_ADDR, Fan[index], 1, &data, 1) != 0) { + printf("Error: failed to change fan speed @%x\n", + Fan[index]); + } + } +} + +void emc2305_init(void) +{ + u8 data; + + data = I2C_EMC2305_CMD; + if (i2c_write(I2C_EMC2305_ADDR, I2C_EMC2305_CONF, 1, &data, 1) != 0) + printf("Error: failed to configure EMC2305\n"); +} diff --git a/board/freescale/common/emc2305.h b/board/freescale/common/emc2305.h new file mode 100644 index 0000000..eddf537 --- /dev/null +++ b/board/freescale/common/emc2305.h @@ -0,0 +1,23 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright 2018 NXP + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __EMC2305_H_ +#define __EMC2305_H_ + +#define I2C_EMC2305_CONF 0x20 +#define I2C_EMC2305_FAN1 0x30 +#define I2C_EMC2305_FAN2 0x40 +#define I2C_EMC2305_FAN3 0x50 +#define I2C_EMC2305_FAN4 0x60 +#define I2C_EMC2305_FAN5 0x70 + +#define NUM_OF_FANS 5 + +void emc2305_init(void); +void set_fan_speed(u8 data); + +#endif /* __EMC2305_H_ */