All of lore.kernel.org
 help / color / mirror / Atom feed
From: Przemyslaw Marczak <p.marczak@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 09/19] exynos: Add common board code for exynos5 boards that use device tree
Date: Wed, 05 Aug 2015 16:16:52 +0200	[thread overview]
Message-ID: <55C21AD4.3010305@samsung.com> (raw)
In-Reply-To: <1438611577-2245-10-git-send-email-sjg@chromium.org>

Hello Simon,

On 08/03/2015 04:19 PM, Simon Glass wrote:
> Some boards use device tree for almost all board-specific configuration.
> They therefore do not need their own separate board code, but can all use
> the same version. Add a common version of the board code. It uses the
> PMIC, regulator and video bridge uclasses. This will support smdk5250,
> smdk5420, snow, spring, pit and pi.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
>
> Changes in v2: None
>
>   board/samsung/common/Makefile     |   1 +
>   board/samsung/common/exynos5-dt.c | 362 ++++++++++++++++++++++++++++++++++++++
>   2 files changed, 363 insertions(+)
>   create mode 100644 board/samsung/common/exynos5-dt.c
>
> diff --git a/board/samsung/common/Makefile b/board/samsung/common/Makefile
> index 5fb01ce..6cbd906 100644
> --- a/board/samsung/common/Makefile
> +++ b/board/samsung/common/Makefile
> @@ -11,4 +11,5 @@ obj-$(CONFIG_MISC_COMMON) += misc.o
>
>   ifndef CONFIG_SPL_BUILD
>   obj-$(CONFIG_BOARD_COMMON)	+= board.o
> +obj-$(CONFIG_EXYNOS5_DT)	+= exynos5-dt.o
>   endif
> diff --git a/board/samsung/common/exynos5-dt.c b/board/samsung/common/exynos5-dt.c
> new file mode 100644
> index 0000000..7d1b88a
> --- /dev/null
> +++ b/board/samsung/common/exynos5-dt.c
> @@ -0,0 +1,362 @@
> +/*
> + * Copyright (C) 2012 Samsung Electronics
> + *
> + * SPDX-License-Identifier:	GPL-2.0+
> + */
> +
> +#include <common.h>
> +#include <dm.h>
> +#include <dwc3-uboot.h>
> +#include <fdtdec.h>
> +#include <asm/io.h>
> +#include <errno.h>
> +#include <i2c.h>
> +#include <mmc.h>
> +#include <netdev.h>
> +#include <samsung-usb-phy-uboot.h>
> +#include <spi.h>
> +#include <usb.h>
> +#include <video_bridge.h>
> +#include <asm/gpio.h>
> +#include <asm/arch/cpu.h>
> +#include <asm/arch/dwmmc.h>
> +#include <asm/arch/mmc.h>
> +#include <asm/arch/pinmux.h>
> +#include <asm/arch/power.h>
> +#include <asm/arch/sromc.h>
> +#include <power/pmic.h>
> +#include <power/max77686_pmic.h>
> +#include <power/regulator.h>
> +#include <power/s5m8767.h>
> +#include <tmu.h>
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +static void board_enable_audio_codec(void)
> +{
> +	int node, ret;
> +	struct gpio_desc en_gpio;
> +
> +	node = fdtdec_next_compatible(gd->fdt_blob, 0,
> +		COMPAT_SAMSUNG_EXYNOS5_SOUND);
> +	if (node <= 0)
> +		return;
> +
> +	ret = gpio_request_by_name_nodev(gd->fdt_blob, node,
> +					 "codec-enable-gpio", 0, &en_gpio,
> +					 GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE);
> +	if (ret == -FDT_ERR_NOTFOUND)
> +		return;
> +
> +	/* Turn on the GPIO which connects to the codec's "enable" line. */
> +	gpio_set_pull(gpio_get_number(&en_gpio), S5P_GPIO_PULL_NONE);
> +
> +#ifdef CONFIG_SOUND_MAX98095
> +	/* Enable MAX98095 Codec */
> +	gpio_request(EXYNOS5_GPIO_X17, "max98095_enable");
> +	gpio_direction_output(EXYNOS5_GPIO_X17, 1);
> +	gpio_set_pull(EXYNOS5_GPIO_X17, S5P_GPIO_PULL_NONE);
> +#endif
> +}
> +
> +int exynos_init(void)
> +{
> +	board_enable_audio_codec();
> +
> +	return 0;
> +}
> +
> +static int exynos_set_regulator(const char *name, uint uv)
> +{
> +	struct udevice *dev;
> +	int ret;
> +
> +	ret = regulator_get_by_platname(name, &dev);
> +	if (ret) {
> +		debug("%s: Cannot find regulator %s\n", __func__, name);
> +		return ret;
> +	}
> +	ret = regulator_set_value(dev, uv);
> +	if (ret) {
> +		debug("%s: Cannot set regulator %s\n", __func__, name);
> +		return ret;
> +	}
> +
> +	return 0;
> +}
> +
> +int exynos_power_init(void)
> +{
> +	struct udevice *dev;
> +	int ret;
> +
> +	ret = pmic_get("max77686", &dev);
> +	if (!ret) {
> +		/* TODO(sjg at chromium.org): Move into the clock/pmic API */
> +		ret = pmic_clrsetbits(dev, MAX77686_REG_PMIC_32KHZ, 0,
> +				MAX77686_32KHCP_EN);
> +		if (ret)
> +			return ret;
> +		ret = pmic_clrsetbits(dev, MAX77686_REG_PMIC_BBAT, 0,
> +				MAX77686_BBCHOSTEN | MAX77686_BBCVS_3_5V);
> +		if (ret)
> +			return ret;
> +	} else {
> +		ret = pmic_get("s5m8767-pmic", &dev);
> +		/* TODO(sjg at chromium.org): Use driver model to access clock */
> +#ifdef CONFIG_PMIC_S5M8767

What about: "if (dev)" or "if (!ret && dev)", instead of #ifdef?

> +		if (!ret)
> +			s5m8767_enable_32khz_cp(dev);
> +#endif

... snip ...


Best regards
-- 
Przemyslaw Marczak
Samsung R&D Institute Poland
Samsung Electronics
p.marczak at samsung.com

  reply	other threads:[~2015-08-05 14:16 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-03 14:19 [U-Boot] [PATCH v2 00/19] dm: exynos: Driver model improvements leading to spring support Simon Glass
2015-08-03 14:19 ` [U-Boot] [PATCH v2 01/19] exynos: dts: Correct LDO and BUCK naming Simon Glass
2015-08-09 13:39   ` Simon Glass
2015-08-03 14:19 ` [U-Boot] [PATCH v2 02/19] video: Work around lack of pinctrl Simon Glass
2015-08-09 13:39   ` Simon Glass
2015-08-03 14:19 ` [U-Boot] [PATCH v2 03/19] dm: i2c: Add support for multiplexed I2C buses Simon Glass
2015-08-09 13:39   ` Simon Glass
2015-08-03 14:19 ` [U-Boot] [PATCH v2 04/19] i2c: Add a mux for GPIO-based I2C bus arbitration Simon Glass
2015-08-09 13:39   ` Simon Glass
2015-08-03 14:19 ` [U-Boot] [PATCH v2 05/19] dm: cros_ec: Convert the I2C tunnel code to use driver model Simon Glass
2015-08-09 13:39   ` Simon Glass
2015-08-03 14:19 ` [U-Boot] [PATCH v2 06/19] cros_ec: Support the LDO access method used by spring Simon Glass
2015-08-09 13:40   ` Simon Glass
2015-08-03 14:19 ` [U-Boot] [PATCH v2 07/19] dm: pmic: max77686: Support all BUCK regulators Simon Glass
2015-08-05 14:16   ` Przemyslaw Marczak
2015-08-09 15:05   ` Simon Glass
2015-08-03 14:19 ` [U-Boot] [PATCH v2 08/19] exynos: dts: Drop the old TPS65090 I2C node Simon Glass
2015-08-09 15:04   ` Simon Glass
2015-08-03 14:19 ` [U-Boot] [PATCH v2 09/19] exynos: Add common board code for exynos5 boards that use device tree Simon Glass
2015-08-05 14:16   ` Przemyslaw Marczak [this message]
2015-08-09 13:40     ` Simon Glass
2015-08-03 14:19 ` [U-Boot] [PATCH v2 10/19] exynos: Enable new features for exynos5 boards Simon Glass
2015-08-09 15:04   ` Simon Glass
2015-08-03 14:19 ` [U-Boot] [PATCH v2 11/19] exynos: config: Move common options to the common headers and tidy up Simon Glass
2015-08-09 15:04   ` Simon Glass
2015-08-03 14:19 ` [U-Boot] [PATCH v2 12/19] exynos: Drop old exynos5420-specific board code Simon Glass
2015-08-09 15:04   ` Simon Glass
2015-08-03 14:19 ` [U-Boot] [PATCH v2 13/19] exynos: Drop old exynos5250-specific " Simon Glass
2015-08-09 15:04   ` Simon Glass
2015-08-03 14:19 ` [U-Boot] [PATCH v2 14/19] power: Remove old TPS65090 drivers Simon Glass
2015-08-09 15:04   ` Simon Glass
2015-08-03 14:19 ` [U-Boot] [PATCH v2 15/19] cros_ec: Remove the old tunnel code Simon Glass
2015-08-09 15:04   ` Simon Glass
2015-08-03 14:19 ` [U-Boot] [PATCH v2 16/19] video: Remove the old parade driver Simon Glass
2015-08-09 14:29   ` Anatolij Gustschin
2015-08-09 15:04   ` Simon Glass
2015-08-03 14:19 ` [U-Boot] [PATCH v2 17/19] dts: Drop unused compatible ID for the NXP video bridge Simon Glass
2015-08-09 15:04   ` Simon Glass
2015-08-03 14:19 ` [U-Boot] [PATCH v2 18/19] exynos: video: Remove non-device-tree code Simon Glass
2015-08-09 14:30   ` Anatolij Gustschin
2015-08-09 15:04   ` Simon Glass
2015-08-03 14:19 ` [U-Boot] [PATCH v2 19/19] exynos: Add support for spring Simon Glass
2015-08-09 15:04   ` Simon Glass
2015-08-05 14:16 ` [U-Boot] [PATCH v2 00/19] dm: exynos: Driver model improvements leading to spring support Przemyslaw Marczak

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=55C21AD4.3010305@samsung.com \
    --to=p.marczak@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.