Skip to contentSkip to conversation

gpio: Add PCA9698 40-bit I2C I/O port

PATCH Superseded eibach at gdsys.de 3 participants 12 messages Oct 4, 2011 – Oct 21, 2011

Subsystems (2)

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 gpio: Add PCA9698 40-bit I2C I/O port

From: Dirk Eibach <[email protected]>

---
 drivers/gpio/Makefile  |    1 +
 drivers/gpio/pca9698.c |  123 ++++++++++++++++++++++++++++++++++++++++++++++++
 include/pca9698.h      |    9 ++++
 3 files changed, 133 insertions(+), 0 deletions(-)
 create mode 100644 drivers/gpio/pca9698.c
 create mode 100644 include/pca9698.h
drivers/gpio/Makefile +1 -0
index 62ec97d..38a62c3 100644
@@ -30,6 +30,7 @@ COBJS-$(CONFIG_KIRKWOOD_GPIO)	+= kw_gpio.o
 COBJS-$(CONFIG_MARVELL_MFP)	+= mvmfp.o
 COBJS-$(CONFIG_MXC_GPIO)	+= mxc_gpio.o
 COBJS-$(CONFIG_PCA953X)		+= pca953x.o
+COBJS-$(CONFIG_PCA9698)		+= pca9698.o
 COBJS-$(CONFIG_S5P)		+= s5p_gpio.o
 COBJS-$(CONFIG_TEGRA2_GPIO)	+= tegra2_gpio.o
 COBJS-$(CONFIG_DA8XX_GPIO)	+= da8xx_gpio.o
drivers/gpio/pca9698.c new file +123 -0

123 lines not on this page · raw message

include/pca9698.h new file +9 -0
new file mode 100644
index 0000000..2506088
@@ -0,0 +1,9 @@
+#ifndef __PCA9698_H_
+#define __PCA9698_H_
+
+int pca9698_direction_input(u8 chip, unsigned offset);
+int pca9698_direction_output(u8 chip, unsigned offset);
+int pca9698_get_input(u8 chip, unsigned offset);
+int pca9698_set_output(u8 chip, unsigned offset, int value);
+
+#endif /* __PCA9698_H_ */
Signature · 1 line
1.5.6.5
#1 lore raw

PATCH 1/1 ppc4xx: Do not stop booting on any keypress on intip

From: Dirk Eibach <[email protected]>

Use CONFIG_AUTOBOOT_KEYED on intip so that booting can only be stopped with well defined keypresses.

---
 include/configs/intip.h |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
include/configs/intip.h +6 -2
index 3ff4a86..931a43f 100644
@@ -37,10 +37,10 @@
 #define CONFIG_460EX		1	/* Specific PPC460EX		*/
 #ifdef CONFIG_DEVCONCENTER
 #define CONFIG_HOSTNAME		devconcenter
-#define CONFIG_IDENT_STRING	" devconcenter 0.02"
+#define CONFIG_IDENT_STRING	" devconcenter 0.03"
 #else
 #define CONFIG_HOSTNAME		intip
-#define CONFIG_IDENT_STRING	" intip 0.02"
+#define CONFIG_IDENT_STRING	" intip 0.03"
 #endif
 #define CONFIG_440		1
 #define CONFIG_4xx		1	/* ... PPC4xx family */
@@ -63,6 +63,10 @@
 #define CONFIG_FIT
 #define CFG_ALT_MEMTEST
 
+#undef CONFIG_ZERO_BOOTDELAY_CHECK     /* ignore keypress on bootdelay==0 */
+#define CONFIG_AUTOBOOT_KEYED          /* use key strings to stop autoboot */
+#define CONFIG_AUTOBOOT_STOP_STR " "
+
 /*
  * Base addresses -- Note these are effective addresses where the
  * actual resources get mapped (not physical addresses)
Signature · 1 line
1.5.6.5
#2 lore raw

PATCH 1/1 ppc4xx: Do not stop booting on any keypress on intip

Quoted 4 lines · On Tuesday 04 October 2011 11:13:52 eibach at gdsys.de wrote:

From: Dirk Eibach <[email protected]>

Use CONFIG_AUTOBOOT_KEYED on intip so that booting can only be stopped with well defined keypresses.

Applied to u-boot-ppc4xx/master. Thanks.

Best regards,
Stefan

--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office at denx.de

#3 lore raw

PATCH 1/1 ppc4xx: Improve lm63 pwm on dlvision-10g

In reply to eibach at gdsys.de

From: Dirk Eibach <[email protected]>

Fan PWM lookuptable was modified to start at 46 degrees celsius instead of 40 degrees celsius.

---
 include/configs/dlvision-10g.h |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
include/configs/dlvision-10g.h +3 -3
index 4fc5262..1468197 100644
@@ -34,7 +34,7 @@
  * Include common defines/options for all AMCC eval boards
  */
 #define CONFIG_HOSTNAME		dlvsion-10g
-#define CONFIG_IDENT_STRING	" dlvision-10g 0.01"
+#define CONFIG_IDENT_STRING	" dlvision-10g 0.02"
 #include "amcc-common.h"
 
 #define CONFIG_BOARD_EARLY_INIT_F	/* call board_early_init_f */
@@ -117,8 +117,8 @@
 #define CONFIG_DTT_LM63		1	/* National LM63	*/
 #define CONFIG_DTT_SENSORS	{ 0x4c, 0x4e }	/* Sensor addresses	*/
 #define CONFIG_DTT_PWM_LOOKUPTABLE	\
-		{ { 40, 10 }, { 43, 13 }, { 46, 16 },  \
-		  { 50, 20 }, { 53, 27 }, { 56, 34 }, { 60, 40 } }
+		{ { 46, 10 }, { 48, 14 }, { 50, 19 }, { 52, 23 },\
+		  { 54, 27 }, { 56, 31 }, { 58, 36 }, { 60, 40 } }
 #define CONFIG_DTT_TACH_LIMIT	0xa10
 
 /* EBC peripherals */
Signature · 1 line
1.5.6.5
#4 lore raw

PATCH 1/1 ppc4xx: Improve lm63 pwm on dlvision-10g

Quoted 4 lines · On Tuesday 04 October 2011 11:13:53 eibach at gdsys.de wrote:

From: Dirk Eibach <[email protected]>

Fan PWM lookuptable was modified to start at 46 degrees celsius instead of 40 degrees celsius.

Applied to u-boot-ppc4xx/master. Thanks.

Best regards,
Stefan

--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office at denx.de

#5 lore raw

PATCH 1/1 ppc4xx: Add Io64 board support

In reply to eibach at gdsys.de

From: Dirk Eibach <[email protected]>

Board support for the Guntermann & Drunck Io64.

---
 arch/powerpc/lib/board.c        |    7 +
 board/gdsys/405ex/405ex.c       |  250 +++++++++++++++++
 board/gdsys/405ex/405ex.h       |   10 +
 board/gdsys/405ex/Makefile      |   53 ++++
 board/gdsys/405ex/chip_config.c |   96 +++++++
 board/gdsys/405ex/io64.c        |  381 ++++++++++++++++++++++++++
 board/gdsys/common/Makefile     |    1 +
 board/gdsys/common/miiphybb.c   |   58 ++++-
 boards.cfg                      |    1 +
 include/configs/io64.h          |  565 +++++++++++++++++++++++++++++++++++++++
 include/gdsys_fpga.h            |   19 ++
 11 files changed, 1433 insertions(+), 8 deletions(-)
 create mode 100644 board/gdsys/405ex/405ex.c
 create mode 100644 board/gdsys/405ex/405ex.h
 create mode 100644 board/gdsys/405ex/Makefile
 create mode 100644 board/gdsys/405ex/chip_config.c
 create mode 100644 board/gdsys/405ex/io64.c
 create mode 100644 include/configs/io64.h
arch/powerpc/lib/board.c +7 -0
index 9885b14..1be0a34 100644
@@ -130,6 +130,10 @@ ulong monitor_flash_len;
 #include <bedbug/type.h>
 #endif
 
+#ifdef CONFIG_SYS_FPGA_COUNT
+#include <gdsys_fpga.h>
+#endif
+
 /************************************************************************
  * Utilities								*
  ************************************************************************
@@ -322,6 +326,9 @@ init_fnc_t *init_sequence[] = {
 #ifdef CONFIG_POST
 	post_init_f,
 #endif
+#ifdef CONFIG_FPGA_INIT
+	init_func_fpga,
+#endif
 	INIT_FUNC_WATCHDOG_RESET
 	init_func_ram,
 #if defined(CONFIG_SYS_DRAM_TEST)
board/gdsys/405ex/405ex.c new file +250 -0

250 lines not on this page · raw message

board/gdsys/405ex/405ex.h new file +10 -0
new file mode 100644
index 0000000..b15623f
@@ -0,0 +1,10 @@
+#ifndef __405EX_H_
+#define __405EX_H_
+
+/* functions to be provided by board implementation */
+void gd405ex_init(void);
+void gd405ex_set_fpga_reset(unsigned state);
+void gd405ex_setup_hw(void);
+int gd405ex_get_fpga_done(unsigned fpga);
+
+#endif /* __405EX_H_ */
board/gdsys/405ex/Makefile new file +53 -0

53 lines not on this page · raw message

board/gdsys/405ex/chip_config.c new file +96 -0

96 lines not on this page · raw message

board/gdsys/405ex/io64.c new file +381 -0

381 lines not on this page · raw message

board/gdsys/common/Makefile +1 -0
index 4c7fc99..47f8c95 100644
@@ -30,6 +30,7 @@ endif
 LIB	= $(obj)lib$(VENDOR).o
 
 COBJS-$(CONFIG_IO) += miiphybb.o
+COBJS-$(CONFIG_IO64) += miiphybb.o
 COBJS-$(CONFIG_IOCON) += osd.o
 COBJS-$(CONFIG_DLVISION_10G) += osd.o
 
board/gdsys/common/miiphybb.c +50 -8

116 lines not on this page · raw message

boards.cfg +1 -0
index d32ff7e..57ea36f 100644
@@ -838,6 +838,7 @@ dlvision-10g                 powerpc     ppc4xx      405ep               gdsys
 gdppc440etx                  powerpc     ppc4xx      -                   gdsys
 intip                        powerpc     ppc4xx      intip               gdsys          -           intip:INTIB
 io                           powerpc     ppc4xx      405ep               gdsys
+io64                         powerpc     ppc4xx      405ex               gdsys
 iocon                        powerpc     ppc4xx      405ep               gdsys
 neo                          powerpc     ppc4xx      -                   gdsys
 icon                         powerpc     ppc4xx      -                   mosaixtech
include/configs/io64.h new file +565 -0

565 lines not on this page · raw message

include/gdsys_fpga.h +19 -0
index c0b1b5c..e7a072b 100644
@@ -24,9 +24,12 @@
 #ifndef __GDSYS_FPGA_H
 #define __GDSYS_FPGA_H
 
+int init_func_fpga(void);
+
 enum {
 	FPGA_STATE_DONE_FAILED = 1 << 0,
 	FPGA_STATE_REFLECTION_FAILED = 1 << 1,
+	FPGA_STATE_PLATFORM = 1 << 2,
 };
 
 int get_fpga_state(unsigned dev);
@@ -68,6 +71,22 @@ typedef struct ihs_fpga {
 } ihs_fpga_t;
 #endif
 
+#ifdef CONFIG_IO64
+typedef struct ihs_fpga {
+	u16 reflection_low;	/* 0x0000 */
+	u16 versions;		/* 0x0002 */
+	u16 fpga_features;	/* 0x0004 */
+	u16 fpga_version;	/* 0x0006 */
+	u16 reserved_0[5];	/* 0x0008 */
+	u16 quad_serdes_reset;	/* 0x0012 */
+	u16 reserved_1[502];	/* 0x0014 */
+	u16 ch0_status_int;	/* 0x0400 */
+	u16 ch0_config_int;	/* 0x0402 */
+	u16 reserved_2[7677];	/* 0x0404 */
+	u16 reflection_high;	/* 0x3ffe */
+} ihs_fpga_t;
+#endif
+
 #ifdef CONFIG_IOCON
 typedef struct ihs_fpga {
 	u16 reflection_low;	/* 0x0000 */
Signature · 1 line
1.5.6.5
#6 lore raw

PATCH 1/1 ppc4xx: Add Io64 board support

Dear eibach at gdsys.de,

Quoted 16 lines · In message <[email protected]> you wrote:

From: Dirk Eibach <[email protected]>

Board support for the Guntermann & Drunck Io64.

---
 arch/powerpc/lib/board.c        |    7 +
 board/gdsys/405ex/405ex.c       |  250 +++++++++++++++++
 board/gdsys/405ex/405ex.h       |   10 +
 board/gdsys/405ex/Makefile      |   53 ++++
 board/gdsys/405ex/chip_config.c |   96 +++++++
 board/gdsys/405ex/io64.c        |  381 ++++++++++++++++++++++++++
 board/gdsys/common/Makefile     |    1 +
 board/gdsys/common/miiphybb.c   |   58 ++++-
 boards.cfg                      |    1 +
 include/configs/io64.h          |  565 +++++++++++++++++++++++++++++++++++++++
Quoted 8 lines
 include/gdsys_fpga.h            |   19 ++
 11 files changed, 1433 insertions(+), 8 deletions(-)
 create mode 100644 board/gdsys/405ex/405ex.c
 create mode 100644 board/gdsys/405ex/405ex.h
 create mode 100644 board/gdsys/405ex/Makefile
 create mode 100644 board/gdsys/405ex/chip_config.c
 create mode 100644 board/gdsys/405ex/io64.c
 create mode 100644 include/configs/io64.h

Checkpatch says:

total: 3 errors, 58 warnings, 1538 lines checked

Please clean up and resubmit. Thanks.

Best regards,

Wolfgang Denk

Signature · 4 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Work 8 hours, sleep 8 hours; but not the same 8 hours.
#7 lore raw

PATCH 1/1 ppc4xx: Add Io64 board support

In reply to eibach at gdsys.de

Dear eibach at gdsys.de,

Quoted 16 lines · In message <[email protected]> you wrote:

From: Dirk Eibach <[email protected]>

Board support for the Guntermann & Drunck Io64.

---
 arch/powerpc/lib/board.c        |    7 +
 board/gdsys/405ex/405ex.c       |  250 +++++++++++++++++
 board/gdsys/405ex/405ex.h       |   10 +
 board/gdsys/405ex/Makefile      |   53 ++++
 board/gdsys/405ex/chip_config.c |   96 +++++++
 board/gdsys/405ex/io64.c        |  381 ++++++++++++++++++++++++++
 board/gdsys/common/Makefile     |    1 +
 board/gdsys/common/miiphybb.c   |   58 ++++-
 boards.cfg                      |    1 +
 include/configs/io64.h          |  565 +++++++++++++++++++++++++++++++++++++++
Quoted 8 lines
 include/gdsys_fpga.h            |   19 ++
 11 files changed, 1433 insertions(+), 8 deletions(-)
 create mode 100644 board/gdsys/405ex/405ex.c
 create mode 100644 board/gdsys/405ex/405ex.h
 create mode 100644 board/gdsys/405ex/Makefile
 create mode 100644 board/gdsys/405ex/chip_config.c
 create mode 100644 board/gdsys/405ex/io64.c
 create mode 100644 include/configs/io64.h

Also, entry to MAINTAINERS missing.

Best regards,

Wolfgang Denk

Signature · 4 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
All I ask is a chance to prove that money can't make me happy.
#8 lore raw

PATCH 1/1 ppc4xx: Change DDR2 CL from 4 to 5 for intip

In reply to eibach at gdsys.de

From: Dirk Eibach <[email protected]>

Some intip boards don't seem to run stable with CL4, datasheets suggest that CL5 is the safe value.

---
 include/configs/intip.h |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)
include/configs/intip.h +6 -6
index 931a43f..92b65af 100644
@@ -37,10 +37,10 @@
 #define CONFIG_460EX		1	/* Specific PPC460EX		*/
 #ifdef CONFIG_DEVCONCENTER
 #define CONFIG_HOSTNAME		devconcenter
-#define CONFIG_IDENT_STRING	" devconcenter 0.03"
+#define CONFIG_IDENT_STRING	" devconcenter 0.05"
 #else
 #define CONFIG_HOSTNAME		intip
-#define CONFIG_IDENT_STRING	" intip 0.03"
+#define CONFIG_IDENT_STRING	" intip 0.05"
 #endif
 #define CONFIG_440		1
 #define CONFIG_4xx		1	/* ... PPC4xx family */
@@ -200,13 +200,13 @@
 #define CONFIG_SYS_SDRAM0_INITPLR2	0x81020000
 #define CONFIG_SYS_SDRAM0_INITPLR3	0x81030000
 #define CONFIG_SYS_SDRAM0_INITPLR4	0x81010002
-#define CONFIG_SYS_SDRAM0_INITPLR5	0xE4000542
+#define CONFIG_SYS_SDRAM0_INITPLR5	0xE4000552
 #define CONFIG_SYS_SDRAM0_INITPLR6	0x81900400
 #define CONFIG_SYS_SDRAM0_INITPLR7	0x8A880000
 #define CONFIG_SYS_SDRAM0_INITPLR8	0x8A880000
 #define CONFIG_SYS_SDRAM0_INITPLR9	0x8A880000
 #define CONFIG_SYS_SDRAM0_INITPLR10	0x8A880000
-#define CONFIG_SYS_SDRAM0_INITPLR11	0x81000442
+#define CONFIG_SYS_SDRAM0_INITPLR11	0x81000452
 #define CONFIG_SYS_SDRAM0_INITPLR12	0x81010382
 #define CONFIG_SYS_SDRAM0_INITPLR13	0x81010002
 #define CONFIG_SYS_SDRAM0_INITPLR14	0x00000000
@@ -216,11 +216,11 @@
 #define CONFIG_SYS_SDRAM0_RDCC		0x40000000
 #define CONFIG_SYS_SDRAM0_DLCR		0x00000000
 #define CONFIG_SYS_SDRAM0_CLKTR		0x40000000
-#define CONFIG_SYS_SDRAM0_WRDTR		0x84000823
+#define CONFIG_SYS_SDRAM0_WRDTR		0x86000823
 #define CONFIG_SYS_SDRAM0_SDTR1		0x80201000
 #define CONFIG_SYS_SDRAM0_SDTR2		0x32204232
 #define CONFIG_SYS_SDRAM0_SDTR3		0x090C0D15
-#define CONFIG_SYS_SDRAM0_MMODE		0x00000442
+#define CONFIG_SYS_SDRAM0_MMODE		0x00000452
 #define CONFIG_SYS_SDRAM0_MEMODE	0x00000002
 
 #define CONFIG_SYS_MBYTES_SDRAM	256	/* 256MB */
Signature · 1 line
1.5.6.5
#9 lore raw

PATCH 1/1 ppc4xx: Change DDR2 CL from 4 to 5 for intip

Quoted 4 lines · On Tuesday 04 October 2011 11:13:55 eibach at gdsys.de wrote:

From: Dirk Eibach <[email protected]>

Some intip boards don't seem to run stable with CL4, datasheets suggest that CL5 is the safe value.

Applied to u-boot-ppc4xx/master. Thanks.

Best regards,
Stefan

--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office at denx.de

#10 lore raw

PATCH 1/1 gpio: Add PCA9698 40-bit I2C I/O port

In reply to eibach at gdsys.de

Hi Dirk,

Quoted 1 line · On Tuesday 04 October 2011 11:13:51 eibach at gdsys.de wrote:

From: Dirk Eibach <[email protected]>

Checkpatch output:

ERROR: memset size is 3rd argument, not the second. #239: FILE: drivers/gpio/pca9698.c:120:
+ memset(data, sizeof(data), 0);

total: 1 errors, 0 warnings, 139 lines checked

So, this now really is a good checkpatch feature. I wasn't ware, that it checked for such bugs as well. Nice. :)

Please fix and resubmit.

Thanks,
Stefan

--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office at denx.de

#11 lore raw

PATCH 1/1 gpio: Add PCA9698 40-bit I2C I/O port

In reply to eibach at gdsys.de

Dear eibach at gdsys.de,

Quoted 10 lines · In message <[email protected]> you wrote:

From: Dirk Eibach <[email protected]>

---
 drivers/gpio/Makefile  |    1 +
 drivers/gpio/pca9698.c |  123 ++++++++++++++++++++++++++++++++++++++++++++++++
 include/pca9698.h      |    9 ++++
 3 files changed, 133 insertions(+), 0 deletions(-)
 create mode 100644 drivers/gpio/pca9698.c
 create mode 100644 include/pca9698.h

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 6 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The reasonable man adapts himself to the world; the unreasonable  one
persists  in  trying  to  adapt  the  world to himself. Therefore all
progress depends on the unreasonable man."      - George Bernard Shaw