All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.