Hi, On 09/15/2014 12:12 AM, Simon Glass wrote: > Change this board to add a device tree. > > This also adds a pinmux header file although it is not used as yet. > > Signed-off-by: Simon Glass <s...@chromium.org> > --- > > Changes in v2: > - Avoid using a common file, and just add a device tree > - Fix device tree base addresses > > arch/arm/dts/Makefile | 1 + > arch/arm/dts/s5pc1xx-goni.dts | 28 ++++++++++++++ > arch/arm/include/asm/arch-s5pc1xx/periph.h | 61 > ++++++++++++++++++++++++++++++ > arch/arm/include/asm/arch-s5pc1xx/pinmux.h | 50 ++++++++++++++++++++++++ > drivers/mmc/s5p_sdhci.c | 2 - > include/configs/s5p_goni.h | 7 +++- > 6 files changed, 146 insertions(+), 3 deletions(-) > create mode 100644 arch/arm/dts/s5pc1xx-goni.dts > create mode 100644 arch/arm/include/asm/arch-s5pc1xx/periph.h > create mode 100644 arch/arm/include/asm/arch-s5pc1xx/pinmux.h > > diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile > index f72207d..8a8ee56 100644 > --- a/arch/arm/dts/Makefile > +++ b/arch/arm/dts/Makefile > @@ -1,3 +1,4 @@ > +dtb-$(CONFIG_S5PC110) += s5pc1xx-goni.dtb > dtb-$(CONFIG_EXYNOS4) += exynos4210-origen.dtb \ > exynos4210-smdkv310.dtb \ > exynos4210-universal_c210.dtb \ > diff --git a/arch/arm/dts/s5pc1xx-goni.dts b/arch/arm/dts/s5pc1xx-goni.dts > new file mode 100644 > index 0000000..64d6bd3 > --- /dev/null > +++ b/arch/arm/dts/s5pc1xx-goni.dts > @@ -0,0 +1,28 @@ > +/* > + * Samsung's S5PC110-based Goni board device tree source > + * > + * Copyright (c) 2014 Google, Inc > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +/dts-v1/; > + > +#include "skeleton.dtsi" > + > +/ { > + model = "Samsung Goni based on S5PC110"; > + compatible = "samsung,goni", "samsung,s5pc110"; > + > + aliases { > + serial0 = "/serial@e2900000"; > + console = "/serial@e2900000"; > + }; > + > + serial@e2900000 { > + compatible = "samsung,exynos4210-uart"; > + reg = <0xe2900000 0x100>; > + interrupts = <0 51 0>; > + id = <0>; > + };
At goni platform default serial used for console is uart2, so it should be rather like this: + aliases { + serial2 = "/serial@e2900800"; + console = "/serial@e2900800"; + }; + + serial@e2900800 { + compatible = "samsung,exynos4210-uart"; + reg = <0xe2900800 0x400>; + id = <2>; + }; > +}; > diff --git a/arch/arm/include/asm/arch-s5pc1xx/periph.h > b/arch/arm/include/asm/arch-s5pc1xx/periph.h > new file mode 100644 > index 0000000..5c1c3d4 > --- /dev/null > +++ b/arch/arm/include/asm/arch-s5pc1xx/periph.h > @@ -0,0 +1,61 @@ > +/* > + * Copyright (C) 2012 Samsung Electronics > + * Rajeshwari Shinde <rajeshwar...@samsung.com> > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#ifndef __ASM_ARM_ARCH_PERIPH_H > +#define __ASM_ARM_ARCH_PERIPH_H > + > +/* > + * Peripherals required for pinmux configuration. List will > + * grow with support for more devices getting added. > + * Numbering based on interrupt table. > + * > + */ > +enum periph_id { > + PERIPH_ID_UART0 = 51, > + PERIPH_ID_UART1, > + PERIPH_ID_UART2, > + PERIPH_ID_UART3, > + PERIPH_ID_I2C0 = 56, > + PERIPH_ID_I2C1, > + PERIPH_ID_I2C2, > + PERIPH_ID_I2C3, > + PERIPH_ID_I2C4, > + PERIPH_ID_I2C5, > + PERIPH_ID_I2C6, > + PERIPH_ID_I2C7, > + PERIPH_ID_SPI0 = 68, > + PERIPH_ID_SPI1, > + PERIPH_ID_SPI2, > + PERIPH_ID_SDMMC0 = 75, > + PERIPH_ID_SDMMC1, > + PERIPH_ID_SDMMC2, > + PERIPH_ID_SDMMC3, > + PERIPH_ID_I2C8 = 87, > + PERIPH_ID_I2C9, > + PERIPH_ID_I2S0 = 98, > + PERIPH_ID_I2S1 = 99, > + > + /* Since following peripherals do > + * not have shared peripheral interrupts (SPIs) > + * they are numbered arbitiraly after the maximum > + * SPIs Exynos has (128) > + */ > + PERIPH_ID_SROMC = 128, > + PERIPH_ID_SPI3, > + PERIPH_ID_SPI4, > + PERIPH_ID_SDMMC4, > + PERIPH_ID_PWM0, > + PERIPH_ID_PWM1, > + PERIPH_ID_PWM2, > + PERIPH_ID_PWM3, > + PERIPH_ID_PWM4, > + PERIPH_ID_I2C10 = 203, > + > + PERIPH_ID_NONE = -1, > +}; > + > +#endif /* __ASM_ARM_ARCH_PERIPH_H */ > diff --git a/arch/arm/include/asm/arch-s5pc1xx/pinmux.h > b/arch/arm/include/asm/arch-s5pc1xx/pinmux.h > new file mode 100644 > index 0000000..0b91ef6 > --- /dev/null > +++ b/arch/arm/include/asm/arch-s5pc1xx/pinmux.h > @@ -0,0 +1,50 @@ > +/* > + * Copyright (C) 2012 Samsung Electronics > + * Abhilash Kesavan <a.kesa...@samsung.com> > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#ifndef __ASM_ARM_ARCH_PINMUX_H > +#define __ASM_ARM_ARCH_PINMUX_H > + > +#include "periph.h" > + > +/* > + * Flags for setting specific configarations of peripherals. > + * List will grow with support for more devices getting added. > + */ > +enum { > + PINMUX_FLAG_NONE = 0x00000000, > + > + /* Flags for eMMC */ > + PINMUX_FLAG_8BIT_MODE = 1 << 0, /* SDMMC 8-bit mode */ > + > + /* Flags for SROM controller */ > + PINMUX_FLAG_BANK = 3 << 0, /* bank number (0-3) */ > + PINMUX_FLAG_16BIT = 1 << 2, /* 16-bit width */ > +}; > + > +/** > + * Configures the pinmux for a particular peripheral. > + * > + * Each gpio can be configured in many different ways (4 bits on exynos) > + * such as "input", "output", "special function", "external interrupt" > + * etc. This function will configure the peripheral pinmux along with > + * pull-up/down and drive strength. > + * > + * @param peripheral peripheral to be configured > + * @param flags configure flags > + * @return 0 if ok, -1 on error (e.g. unsupported peripheral) > + */ > +int exynos_pinmux_config(int peripheral, int flags); > + > +/** > + * Decode the peripheral id using the interrpt numbers. > + * > + * @param blob Device tree blob > + * @param node FDT I2C node to find > + * @return peripheral id if ok, PERIPH_ID_NONE on error > + */ > +int pinmux_decode_periph_id(const void *blob, int node); > +#endif > diff --git a/drivers/mmc/s5p_sdhci.c b/drivers/mmc/s5p_sdhci.c > index 2ff0ec2..637dd97 100644 > --- a/drivers/mmc/s5p_sdhci.c > +++ b/drivers/mmc/s5p_sdhci.c > @@ -14,9 +14,7 @@ > #include <asm/arch/mmc.h> > #include <asm/arch/clk.h> > #include <errno.h> > -#ifdef CONFIG_OF_CONTROL > #include <asm/arch/pinmux.h> > -#endif > > static char *S5P_NAME = "SAMSUNG SDHCI"; > static void s5p_sdhci_set_control_reg(struct sdhci_host *host) > diff --git a/include/configs/s5p_goni.h b/include/configs/s5p_goni.h > index a51215d..b22ac18 100644 > --- a/include/configs/s5p_goni.h > +++ b/include/configs/s5p_goni.h > @@ -53,6 +53,7 @@ > #define CONFIG_MMC > #define CONFIG_SDHCI > #define CONFIG_S5P_SDHCI > +#define SDHCI_MAX_HOSTS 4 > > /* PWM */ > #define CONFIG_PWM 1 > @@ -106,7 +107,6 @@ > ",12m(modem)"\ > ",60m(qboot)\0" > > -#define CONFIG_BOOTDELAY 1 > #define CONFIG_ZERO_BOOTDELAY_CHECK > > /* partitions definitions */ > @@ -283,4 +283,9 @@ > #define CONFIG_CMD_USB_MASS_STORAGE > #define CONFIG_USB_GADGET_MASS_STORAGE > > +#define CONFIG_DEFAULT_DEVICE_TREE s5pc1xx-goni > +#define CONFIG_OF_CONTROL > +#define CONFIG_OF_SEPARATE > +#define CONFIG_OF_LIBFDT > + > #endif /* __CONFIG_H */ > Thanks, Robert Baldyga _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot