From: Robert Baldyga <r.baldyga@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 13/16] samsung: Enable device tree for s5p_goni
Date: Fri, 19 Sep 2014 11:56:50 +0200 [thread overview]
Message-ID: <541BFDE2.4030103@samsung.com> (raw)
In-Reply-To: <1410732754-14821-14-git-send-email-sjg@chromium.org>
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 <sjg@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 at e2900000";
> + console = "/serial at e2900000";
> + };
> +
> + serial at 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 at e2900800";
+ console = "/serial at e2900800";
+ };
+
+ serial at 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 <rajeshwari.s@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.kesavan@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
next prev parent reply other threads:[~2014-09-19 9:56 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-14 22:12 [U-Boot] [PATCH v2 0/16] samsung: Use common config files with Samsung boards (please test) Simon Glass
2014-09-14 22:12 ` [U-Boot] [PATCH v2 01/16] Exynos: Use 900MHz ARM frequency in SPL for peach_pit Simon Glass
2014-09-14 22:12 ` [U-Boot] [PATCH v2 02/16] exynos5: Enable data cache Simon Glass
2014-09-14 22:12 ` [U-Boot] [PATCH v2 03/16] cros_ec: power: Add a tunnelled version of the tps65090 driver Simon Glass
2014-09-14 22:12 ` [U-Boot] [PATCH v2 04/16] cros_ec: exynos: Use the correct tps65090 driver in each case Simon Glass
2014-09-14 22:12 ` [U-Boot] [PATCH v2 05/16] dm: exynos: Split out the cros_ec drivers Simon Glass
2014-09-14 22:12 ` [U-Boot] [PATCH v2 06/16] exynos: dts: Add device tree node for cros_ec keyboard Simon Glass
2014-09-14 22:12 ` [U-Boot] [PATCH v2 07/16] exynos: Rename -dt config files to -common Simon Glass
2014-09-14 22:12 ` [U-Boot] [PATCH v2 08/16] exynos: Move common exynos settings into a common file Simon Glass
2014-09-14 22:12 ` [U-Boot] [PATCH v2 09/16] exynos: Move common smdk5420 things to " Simon Glass
2014-09-14 22:12 ` [U-Boot] [PATCH v2 10/16] exynos: config: Move cros_ec and tps65090 out of smdk boards Simon Glass
2014-09-14 22:12 ` [U-Boot] [PATCH v2 11/16] config: Move arndale to use common exynos5250 file Simon Glass
2014-09-14 22:12 ` [U-Boot] [PATCH v2 12/16] config: Move smdkv310 to use common exynos4 file Simon Glass
2014-09-14 22:12 ` [U-Boot] [PATCH v2 13/16] samsung: Enable device tree for s5p_goni Simon Glass
2014-09-19 9:56 ` Robert Baldyga [this message]
2014-09-14 22:12 ` [U-Boot] [PATCH v2 14/16] samsung: Enable device tree for smdkc100 Simon Glass
2014-09-14 22:12 ` [U-Boot] [PATCH v2 15/16] exynos: Enable pre-relocation malloc() Simon Glass
2014-09-14 22:12 ` [U-Boot] [PATCH v2 16/16] wip Simon Glass
2014-09-14 22:14 ` Simon Glass
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=541BFDE2.4030103@samsung.com \
--to=r.baldyga@samsung.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox