From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jean-Christophe PLAGNIOL-VILLARD Date: Fri, 17 Apr 2009 07:44:59 +0200 Subject: [U-Boot] [PATCH u-boot git] there are non-DM6446 DaVinci chips In-Reply-To: <200904121544.23683.david-b@pacbell.net> References: <200904121544.23683.david-b@pacbell.net> Message-ID: <20090417054459.GL31923@game.jcrosoft.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 15:44 Sun 12 Apr , David Brownell wrote: > From: David Brownell > > Start updating DaVinci board support to reduce dependencies on > dm644x chips and EVM-like boards ... beginning with "psc.c", > which hosts a bunch of those dependencies: > > - Pinmux registers and their contents are SoC-specific, and > are also unrelated to the Power and Sleep Controller. > > * Declare more of the pinmux registers; > * Move their bitfield decls to a public header; > * Renaming thse bitfields to be clearly SoC-specific. > > - Rename the errata workarounds to be clearly SoC-specific. > > - Add a CONFIG_SOC_DM6446; use it to prevent some mux goofs. > > - Don't include the I2C support if the I2C driver is not enabled. > > Plus two minor bugfixes: > > - Correct the PSC_MDSTAT mask ... it's six bits, not five. > (Original DM6446 doces said five, FWIW.) > > - Correct the PWREMU_MGT mask ... don't set must-be-zero bits. > > The simplest always-correct way to handle pinmux is in board_init() > calls; or possibly in SoC-specific device setup code. Currently > these chips don't have such SoC-specific support. could you split it in more logical change please > > Signed-off-by: David Brownell > --- > board/davinci/common/psc.c | 29 ++++++++++++++++------------- > board/davinci/common/psc.h | 2 +- > board/davinci/dvevm/dvevm.c | 2 +- > board/davinci/schmoogie/schmoogie.c | 2 +- > board/davinci/sffsdr/sffsdr.c | 2 +- > board/davinci/sonata/sonata.c | 2 +- > include/asm-arm/arch-davinci/hardware.h | 23 +++++++++++++++++++++-- > include/configs/davinci_dvevm.h | 1 + > include/configs/davinci_schmoogie.h | 1 + > include/configs/davinci_sffsdr.h | 1 + > include/configs/davinci_sonata.h | 1 + > 11 files changed, 46 insertions(+), 20 deletions(-) > > --- a/board/davinci/common/psc.c > +++ b/board/davinci/common/psc.c > @@ -26,13 +26,6 @@ > #include > #include > > -#define PINMUX0_EMACEN (1 << 31) > -#define PINMUX0_AECS5 (1 << 11) > -#define PINMUX0_AECS4 (1 << 10) > - > -#define PINMUX1_I2C (1 << 7) > -#define PINMUX1_UART1 (1 << 1) > -#define PINMUX1_UART0 (1 << 0) > > /* > * The DM6446 includes two separate power domains: "Always On" and "DSP". The > @@ -57,7 +50,7 @@ void lpsc_on(unsigned int id) > > while (REG(PSC_PTSTAT) & 0x01); > > - if ((*mdstat & 0x1f) == 0x03) > + if ((*mdstat & 0x3f) == 0x03) > return; /* Already on and enabled */ > > *mdctl |= 0x03; > @@ -129,10 +122,12 @@ void davinci_enable_uart0(void) > lpsc_on(DAVINCI_LPSC_UART0); > > /* Bringup UART0 out of reset */ > - REG(UART0_PWREMU_MGMT) = 0x0000e003; > + REG(UART0_PWREMU_MGMT) = 0x00006001; > > +#ifdef CONFIG_SOC_DM6446 > /* Enable UART0 MUX lines */ > - REG(PINMUX1) |= PINMUX1_UART0; > + REG(PINMUX1) |= DM644X_PINMUX1_UART0; is this the same for all DM6446? and the same question for the I2C and EMAC it will be better to init pio/mux in devices file without redefined it in the board as done for the at91 Best Regards, J.