All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eugen Hristev <eugen.hristev@microchip.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 14/20] board: atmel: add support for pda detection
Date: Thu, 19 Jul 2018 12:58:02 +0300	[thread overview]
Message-ID: <1531994288-19423-15-git-send-email-eugen.hristev@microchip.com> (raw)
In-Reply-To: <1531994288-19423-1-git-send-email-eugen.hristev@microchip.com>

This adds the support for PDA detection as common code for
Atmel boards.
Using the one wire interface over GPIO , an EEPROM memory is read
and compared to preprogrammed values for PDA screens TM4300, TM7000
and TM7000B.
Once the PDA is detected, an environment variable is set accordingly.

Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
---
 board/atmel/common/board.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/board/atmel/common/board.c b/board/atmel/common/board.c
index 650eb22..b9cf54c 100644
--- a/board/atmel/common/board.c
+++ b/board/atmel/common/board.c
@@ -5,7 +5,62 @@
  */
 
 #include <common.h>
+#include <w1.h>
+#include <w1-eeprom.h>
+#include <dm/device-internal.h>
+
+#define AT91_PDA_EEPROM_ID_OFFSET		15
+#define AT91_PDA_EEPROM_ID_LENGTH		5
+#define AT91_PDA_EEPROM_DEFAULT_BUS		0
 
 void dummy(void)
 {
 }
+
+#if defined CONFIG_W1
+void at91_pda_detect(void)
+{
+	struct udevice *bus, *dev;
+	u8 buf[AT91_PDA_EEPROM_ID_LENGTH + 1] = {0};
+	int ret;
+	int pda = 0;
+
+	ret = w1_get_bus(AT91_PDA_EEPROM_DEFAULT_BUS, &bus);
+	if (ret)
+		return;
+
+	for (device_find_first_child(bus, &dev);
+	     dev;
+	     device_find_next_child(&dev)) {
+		ret = device_probe(dev);
+		if (ret) {
+			continue;
+		} else {
+			w1_eeprom_read_buf(dev, AT91_PDA_EEPROM_ID_OFFSET,
+					   (u8 *)buf, AT91_PDA_EEPROM_ID_LENGTH);
+			break;
+		}
+	}
+	pda = simple_strtoul((const char *)buf, NULL, 10);
+
+	switch (pda) {
+	case 7000:
+		if (buf[4] == 'B')
+			printf("PDA TM7000B detected\n");
+		else
+			printf("PDA TM7000 detected\n");
+		break;
+	case 4300:
+		printf("PDA TM4300 detected\n");
+		break;
+	case 5000:
+		printf("PDA TM5000 detected\n");
+		break;
+	}
+	env_set("pda", (const char *)buf);
+}
+#else
+void at91_pda_detect(void)
+{
+}
+#endif
-- 
2.7.4

  parent reply	other threads:[~2018-07-19  9:58 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-19  9:57 [U-Boot] [PATCH 00/20] Add support for 1wire protocol and 1wire eeproms Eugen Hristev
2018-07-19  9:57 ` [U-Boot] [PATCH 01/20] w1: Add 1-Wire uclass Eugen Hristev
2018-07-19  9:57 ` [U-Boot] [PATCH 02/20] w1: Add 1-Wire gpio driver Eugen Hristev
2018-07-19  9:57 ` [U-Boot] [PATCH 03/20] dt-bindings: W1: w1-gpio: added bindings for w1-gpio Eugen Hristev
2018-07-19  9:57 ` [U-Boot] [PATCH 04/20] W1-EEPROM: Add an W1-EEPROM uclass for 1 wire EEPROMs Eugen Hristev
2018-07-20 14:28   ` Maxime Ripard
2018-07-30  8:54     ` Eugen Hristev
2018-07-31  2:06       ` Tom Rini
2018-08-02 16:56         ` Simon Glass
2018-07-19  9:57 ` [U-Boot] [PATCH 05/20] W1-EEPROM: add support for Maxim DS24 eeprom families Eugen Hristev
2018-07-19  9:57 ` [U-Boot] [PATCH 06/20] W1-EEPROM: add sandbox driver Eugen Hristev
2018-07-19  9:57 ` [U-Boot] [PATCH 07/20] w1: add command for onewire protocol Eugen Hristev
2018-07-19  9:57 ` [U-Boot] [PATCH 08/20] pinctrl: sandbox: add gpio onewire w1 group Eugen Hristev
2018-07-19  9:57 ` [U-Boot] [PATCH 09/20] sandbox: DTS: w1: add node for one wire interface on GPIO Eugen Hristev
2018-07-19  9:57 ` [U-Boot] [PATCH 10/20] configs: sandbox: add onewire w1 and sandbox eeprom Eugen Hristev
2018-07-19  9:57 ` [U-Boot] [PATCH 11/20] w1: enumerate sandbox driver if configured Eugen Hristev
2018-07-20 14:01   ` Lukasz Majewski
2018-07-23 23:48     ` Simon Glass
2018-07-24  6:58       ` Maxime Ripard
2018-07-24 15:28         ` Simon Glass
2018-07-25  9:15           ` Maxime Ripard
2018-07-19  9:58 ` [U-Boot] [PATCH 12/20] configs: sama5d2_xplained: add onewire and eeprom drivers Eugen Hristev
2018-07-19  9:58 ` [U-Boot] [PATCH 13/20] configs: sama5d3_xplained: " Eugen Hristev
2018-07-19  9:58 ` Eugen Hristev [this message]
2018-07-19  9:58 ` [U-Boot] [PATCH 15/20] board: sama5d2_xplained: add pda detect call at init time Eugen Hristev
2018-07-19  9:58 ` [U-Boot] [PATCH 16/20] board: sama5d3_xplained: " Eugen Hristev
2018-07-19  9:58 ` [U-Boot] [PATCH 17/20] configs: sama5d2_xplained: add fdt overlay support Eugen Hristev
2018-07-19  9:58 ` [U-Boot] [PATCH 18/20] configs: sama5d3_xplained: " Eugen Hristev
2018-07-19  9:58 ` [U-Boot] [PATCH 19/20] ARM: dts: at91: sama5d2_xplained: add onewire connector for LCD eeprom Eugen Hristev
2018-07-19  9:58 ` [U-Boot] [PATCH 20/20] ARM: dts: at91: sama5d3_xplained: " Eugen Hristev

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=1531994288-19423-15-git-send-email-eugen.hristev@microchip.com \
    --to=eugen.hristev@microchip.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.