X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=board%2Fdavinci%2Fsonata%2Fsonata.c;h=f5c3258de563326bb02a5d8d498d9e2fef87dcc1;hb=21871138b7686b36dd8ae97cab5dc1e9c5c6e183;hp=7f9d9bba3dc045c0171976dc224f9f6650d039f3;hpb=8453587ef9137daf98b7c9cf4f3b865f4039cea0;p=oweals%2Fu-boot.git diff --git a/board/davinci/sonata/sonata.c b/board/davinci/sonata/sonata.c index 7f9d9bba3d..f5c3258de5 100644 --- a/board/davinci/sonata/sonata.c +++ b/board/davinci/sonata/sonata.c @@ -8,33 +8,20 @@ * Copyright (C) 2004 Texas Instruments. * * ---------------------------------------------------------------------------- - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * SPDX-License-Identifier: GPL-2.0+ * ---------------------------------------------------------------------------- */ #include +#include +#include #include -#include "../common/misc.h" +#include DECLARE_GLOBAL_DATA_PTR; int board_init(void) { - /* arch number of the board */ - gd->bd->bi_arch_number = MACH_TYPE_SONATA; - /* address of boot parameters */ gd->bd->bi_boot_params = LINUX_BOOT_PARAM_ADDR; @@ -68,7 +55,33 @@ int misc_init_r(void) /* Read Ethernet MAC address from EEPROM if available. */ if (dvevm_read_mac_address(eeprom_enetaddr)) - dv_configure_mac_address(eeprom_enetaddr); + davinci_sync_env_enetaddr(eeprom_enetaddr); return(0); } + +#ifdef CONFIG_NAND_DAVINCI + +/* Set WP on deselect, write enable on select */ +static void nand_sonata_select_chip(struct mtd_info *mtd, int chip) +{ +#define GPIO_SET_DATA01 0x01c67018 +#define GPIO_CLR_DATA01 0x01c6701c +#define GPIO_NAND_WP (1 << 4) +#ifdef SONATA_BOARD_GPIOWP + if (chip < 0) { + REG(GPIO_CLR_DATA01) |= GPIO_NAND_WP; + } else { + REG(GPIO_SET_DATA01) |= GPIO_NAND_WP; + } +#endif +} + +int board_nand_init(struct nand_chip *nand) +{ + davinci_nand_init(nand); + nand->select_chip = nand_sonata_select_chip; + return 0; +} + +#endif /* CONFIG_NAND_DAVINCI */