summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/configs/MPC8349EMDS.h1
-rw-r--r--include/configs/MPC8349EMDS_SDRAM.h1
-rw-r--r--include/configs/MPC8540ADS.h1
-rw-r--r--include/configs/MPC8541CDS.h1
-rw-r--r--include/configs/MPC8544DS.h1
-rw-r--r--include/configs/MPC8548CDS.h1
-rw-r--r--include/configs/MPC8555CDS.h1
-rw-r--r--include/configs/MPC8560ADS.h1
-rw-r--r--include/configs/MPC8568MDS.h1
-rw-r--r--include/configs/MPC8569MDS.h1
-rw-r--r--include/configs/MPC8572DS.h1
-rw-r--r--include/configs/MPC8641HPCN.h1
-rw-r--r--include/configs/TQM834x.h1
-rw-r--r--include/configs/beacon-rzg2m.h89
-rw-r--r--include/configs/caddy2.h1
-rw-r--r--include/configs/integratorap.h1
-rw-r--r--include/configs/sbc8349.h1
-rw-r--r--include/configs/sbc8548.h1
-rw-r--r--include/configs/sbc8641d.h1
-rw-r--r--include/configs/vme8349.h1
-rw-r--r--include/cpu.h16
-rw-r--r--include/dm/uclass-id.h1
-rw-r--r--include/dt-bindings/clock/r8a774a1-cpg-mssr.h65
-rw-r--r--include/dt-bindings/power/r8a774a1-sysc.h33
-rw-r--r--include/env_internal.h11
-rw-r--r--include/fdtdec.h39
-rw-r--r--include/soc.h145
27 files changed, 352 insertions, 66 deletions
diff --git a/include/configs/MPC8349EMDS.h b/include/configs/MPC8349EMDS.h
index 41ef3d80e1..c2f44416b9 100644
--- a/include/configs/MPC8349EMDS.h
+++ b/include/configs/MPC8349EMDS.h
@@ -220,7 +220,6 @@
#define CONFIG_83XX_PCI_STREAMING
-#undef CONFIG_TULIP
#if !defined(CONFIG_PCI_PNP)
#define PCI_ENET0_IOADDR 0xFIXME
diff --git a/include/configs/MPC8349EMDS_SDRAM.h b/include/configs/MPC8349EMDS_SDRAM.h
index 4b43ee1d44..618e210e4e 100644
--- a/include/configs/MPC8349EMDS_SDRAM.h
+++ b/include/configs/MPC8349EMDS_SDRAM.h
@@ -275,7 +275,6 @@
#define CONFIG_83XX_PCI_STREAMING
-#undef CONFIG_TULIP
#if !defined(CONFIG_PCI_PNP)
#define PCI_ENET0_IOADDR 0xFIXME
diff --git a/include/configs/MPC8540ADS.h b/include/configs/MPC8540ADS.h
index d2a92619fb..8b7e0da9ca 100644
--- a/include/configs/MPC8540ADS.h
+++ b/include/configs/MPC8540ADS.h
@@ -234,7 +234,6 @@
#define CONFIG_SYS_PCI1_IO_SIZE 0x100000 /* 1M */
#if defined(CONFIG_PCI)
-#undef CONFIG_TULIP
#if !defined(CONFIG_PCI_PNP)
#define PCI_ENET0_IOADDR 0xe0000000
diff --git a/include/configs/MPC8541CDS.h b/include/configs/MPC8541CDS.h
index 834bf7a0ff..d174b27309 100644
--- a/include/configs/MPC8541CDS.h
+++ b/include/configs/MPC8541CDS.h
@@ -280,7 +280,6 @@ extern unsigned long get_clock_freq(void);
#define CONFIG_MPC85XX_PCI2
-#undef CONFIG_TULIP
#undef CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */
#define CONFIG_SYS_PCI_SUBSYS_VENDORID 0x1057 /* Motorola */
diff --git a/include/configs/MPC8544DS.h b/include/configs/MPC8544DS.h
index b9c57e1f51..e473c0f531 100644
--- a/include/configs/MPC8544DS.h
+++ b/include/configs/MPC8544DS.h
@@ -256,7 +256,6 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);
#define CONFIG_SYS_ISA_IO_BASE_ADDRESS VIDEO_IO_OFFSET
#endif
-#undef CONFIG_TULIP
#ifndef CONFIG_PCI_PNP
#define PCI_ENET0_IOADDR CONFIG_SYS_PCI1_IO_BUS
diff --git a/include/configs/MPC8548CDS.h b/include/configs/MPC8548CDS.h
index 4b40129197..f760518676 100644
--- a/include/configs/MPC8548CDS.h
+++ b/include/configs/MPC8548CDS.h
@@ -374,7 +374,6 @@ extern unsigned long get_clock_freq(void);
#endif
#if defined(CONFIG_PCI)
-#undef CONFIG_TULIP
#if !defined(CONFIG_DM_PCI)
#define CONFIG_FSL_PCI_INIT 1 /* Use common FSL init code */
diff --git a/include/configs/MPC8555CDS.h b/include/configs/MPC8555CDS.h
index c25b04e979..dcb09b056f 100644
--- a/include/configs/MPC8555CDS.h
+++ b/include/configs/MPC8555CDS.h
@@ -278,7 +278,6 @@ extern unsigned long get_clock_freq(void);
#define CONFIG_MPC85XX_PCI2
-#undef CONFIG_TULIP
#define CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */
#define CONFIG_SYS_PCI_SUBSYS_VENDORID 0x1057 /* Motorola */
diff --git a/include/configs/MPC8560ADS.h b/include/configs/MPC8560ADS.h
index 4d1a417e42..a9f3029292 100644
--- a/include/configs/MPC8560ADS.h
+++ b/include/configs/MPC8560ADS.h
@@ -231,7 +231,6 @@
#define CONFIG_SYS_PCI1_IO_SIZE 0x100000 /* 1M */
#if defined(CONFIG_PCI)
-#undef CONFIG_TULIP
#if !defined(CONFIG_PCI_PNP)
#define PCI_ENET0_IOADDR 0xe0000000
diff --git a/include/configs/MPC8568MDS.h b/include/configs/MPC8568MDS.h
index 14663644d1..c49f786ee0 100644
--- a/include/configs/MPC8568MDS.h
+++ b/include/configs/MPC8568MDS.h
@@ -288,7 +288,6 @@ extern unsigned long get_clock_freq(void);
#endif /* CONFIG_QE */
#if defined(CONFIG_PCI)
-#undef CONFIG_TULIP
#undef CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */
#define CONFIG_SYS_PCI_SUBSYS_VENDORID 0x1057 /* Motorola */
diff --git a/include/configs/MPC8569MDS.h b/include/configs/MPC8569MDS.h
index dd291aca1e..acb8dec819 100644
--- a/include/configs/MPC8569MDS.h
+++ b/include/configs/MPC8569MDS.h
@@ -394,7 +394,6 @@ extern unsigned long get_clock_freq(void);
#endif /* CONFIG_QE */
#if defined(CONFIG_PCI)
-#undef CONFIG_TULIP
#undef CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */
diff --git a/include/configs/MPC8572DS.h b/include/configs/MPC8572DS.h
index 429dae19af..57aebfd337 100644
--- a/include/configs/MPC8572DS.h
+++ b/include/configs/MPC8572DS.h
@@ -436,7 +436,6 @@
#define CONFIG_SYS_ISA_IO_BASE_ADDRESS VIDEO_IO_OFFSET
#endif
-#undef CONFIG_TULIP
#ifndef CONFIG_PCI_PNP
#define PCI_ENET0_IOADDR CONFIG_SYS_PCIE3_IO_BUS
diff --git a/include/configs/MPC8641HPCN.h b/include/configs/MPC8641HPCN.h
index 1560b61387..42fdcdd43f 100644
--- a/include/configs/MPC8641HPCN.h
+++ b/include/configs/MPC8641HPCN.h
@@ -330,7 +330,6 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);
#define CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */
-#undef CONFIG_TULIP
/************************************************************
* USB support
diff --git a/include/configs/TQM834x.h b/include/configs/TQM834x.h
index d43d217956..aa70f01ddd 100644
--- a/include/configs/TQM834x.h
+++ b/include/configs/TQM834x.h
@@ -167,7 +167,6 @@
#define CONFIG_SYS_PCI1_IO_PHYS CONFIG_SYS_PCI1_IO_BASE
#define CONFIG_SYS_PCI1_IO_SIZE 0x1000000 /* 16M */
-#undef CONFIG_TULIP
#if !defined(CONFIG_PCI_PNP)
#define PCI_ENET0_IOADDR CONFIG_SYS_PCI1_IO_BASE
diff --git a/include/configs/beacon-rzg2m.h b/include/configs/beacon-rzg2m.h
new file mode 100644
index 0000000000..0e48fbd46e
--- /dev/null
+++ b/include/configs/beacon-rzg2m.h
@@ -0,0 +1,89 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (C) 2020 Compass Electronics Group, LLC
+ */
+
+#ifndef __BEACON_RZG2M_H
+#define __BEACON_RZG2M_H
+
+#include "rcar-gen3-common.h"
+
+/* Ethernet RAVB */
+#define CONFIG_BITBANGMII_MULTI
+
+/* Environment in eMMC, at the end of 2nd "boot sector" */
+/* #define CONFIG_ENV_OFFSET (-CONFIG_ENV_SIZE) */
+#define CONFIG_SYS_MMC_ENV_DEV 1
+#define CONFIG_SYS_MMC_ENV_PART 2
+
+#undef CONFIG_EXTRA_ENV_SETTINGS
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ "usb_pgood_delay=2000\0" \
+ "script=boot.scr\0" \
+ "image=Image\0" \
+ "console=ttySC0,115200\0" \
+ "fdt_addr=0x48000000\0" \
+ "loadaddr=0x48080000\0" \
+ "boot_fdt=try\0" \
+ "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \
+ "initrd_addr=0x43800000\0" \
+ "mmcdev=0\0" \
+ "mmcpart=1\0" \
+ "mmcrootpart=2\0" \
+ "finduuid=part uuid mmc ${mmcdev}:${mmcrootpart} uuid\0" \
+ "mmcautodetect=yes\0" \
+ "mmcargs=setenv bootargs console=${console} " \
+ " root=PARTUUID=${uuid} rootwait rw ${optargs}\0" \
+ "loadbootscript=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
+ "bootscript=echo Running bootscript from mmc ...; " \
+ "source\0" \
+ "loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
+ "loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
+ "mmcboot=echo Booting from mmc ...; " \
+ "run finduuid; run mmcargs; " \
+ "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+ "if run loadfdt; then " \
+ "booti ${loadaddr} - ${fdt_addr}; " \
+ "else " \
+ "echo WARN: Cannot load the DT; " \
+ "fi; " \
+ "else " \
+ "echo wait for boot; " \
+ "fi;\0" \
+ "netargs=setenv bootargs ${jh_clk} console=${console} " \
+ "root=/dev/nfs " \
+ "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
+ "netboot=echo Booting from net ...; " \
+ "run netargs; " \
+ "if test ${ip_dyn} = yes; then " \
+ "setenv get_cmd dhcp; " \
+ "else " \
+ "setenv get_cmd tftp; " \
+ "fi; " \
+ "${get_cmd} ${loadaddr} ${image}; " \
+ "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+ "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
+ "booti ${loadaddr} - ${fdt_addr}; " \
+ "else " \
+ "echo WARN: Cannot load the DT; " \
+ "fi; " \
+ "else " \
+ "booti; " \
+ "fi;\0"
+
+#undef CONFIG_BOOTCOMMAND
+
+#define CONFIG_BOOTCOMMAND \
+ "mmc dev ${mmcdev}; if mmc rescan; then " \
+ "if run loadbootscript; then " \
+ "run bootscript; " \
+ "else " \
+ "if run loadimage; then " \
+ "run mmcboot; " \
+ "else run netboot; " \
+ "fi; " \
+ "fi; " \
+ "else booti ${loadaddr} - ${fdt_addr}; fi"
+
+#endif /* __BEACON_RZG2M_H */
diff --git a/include/configs/caddy2.h b/include/configs/caddy2.h
index a7c667711b..e51398d531 100644
--- a/include/configs/caddy2.h
+++ b/include/configs/caddy2.h
@@ -155,7 +155,6 @@
#if defined(CONFIG_PCI)
-#undef CONFIG_TULIP
#if !defined(CONFIG_PCI_PNP)
#define PCI_ENET0_IOADDR 0xFIXME
diff --git a/include/configs/integratorap.h b/include/configs/integratorap.h
index 96c1d53b9b..2f8ac20a76 100644
--- a/include/configs/integratorap.h
+++ b/include/configs/integratorap.h
@@ -34,7 +34,6 @@
* PCI definitions
*/
-#define CONFIG_TULIP
#define CONFIG_SYS_RX_ETH_BUFFER 8 /* use 8 rx buffer on eepro100 */
/*-----------------------------------------------------------------------
diff --git a/include/configs/sbc8349.h b/include/configs/sbc8349.h
index cca596d43a..0561ec2024 100644
--- a/include/configs/sbc8349.h
+++ b/include/configs/sbc8349.h
@@ -180,7 +180,6 @@
#if defined(CONFIG_PCI)
-#undef CONFIG_TULIP
#if !defined(CONFIG_PCI_PNP)
#define PCI_ENET0_IOADDR 0xFIXME
diff --git a/include/configs/sbc8548.h b/include/configs/sbc8548.h
index f94683329b..6ac5d7b0c0 100644
--- a/include/configs/sbc8548.h
+++ b/include/configs/sbc8548.h
@@ -432,7 +432,6 @@
#endif
#if defined(CONFIG_PCI)
-#undef CONFIG_TULIP
#define CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */
diff --git a/include/configs/sbc8641d.h b/include/configs/sbc8641d.h
index 5b93ccbda1..27a15eddd3 100644
--- a/include/configs/sbc8641d.h
+++ b/include/configs/sbc8641d.h
@@ -274,7 +274,6 @@
#define CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */
-#undef CONFIG_TULIP
#if !defined(CONFIG_PCI_PNP)
#define PCI_ENET0_IOADDR 0xe0000000
diff --git a/include/configs/vme8349.h b/include/configs/vme8349.h
index 52d632ba0a..bd94352179 100644
--- a/include/configs/vme8349.h
+++ b/include/configs/vme8349.h
@@ -155,7 +155,6 @@
#if defined(CONFIG_PCI)
-#undef CONFIG_TULIP
#if !defined(CONFIG_PCI_PNP)
#define PCI_ENET0_IOADDR 0xFIXME
diff --git a/include/cpu.h b/include/cpu.h
index 2f283fe244..78e88b9ed0 100644
--- a/include/cpu.h
+++ b/include/cpu.h
@@ -61,7 +61,7 @@ struct cpu_ops {
* @size: Size of string space
* @return 0 if OK, -ENOSPC if buffer is too small, other -ve on error
*/
- int (*get_desc)(struct udevice *dev, char *buf, int size);
+ int (*get_desc)(const struct udevice *dev, char *buf, int size);
/**
* get_info() - Get information about a CPU
@@ -70,7 +70,7 @@ struct cpu_ops {
* @info: Returns CPU info
* @return 0 if OK, -ve on error
*/
- int (*get_info)(struct udevice *dev, struct cpu_info *info);
+ int (*get_info)(const struct udevice *dev, struct cpu_info *info);
/**
* get_count() - Get number of CPUs
@@ -78,7 +78,7 @@ struct cpu_ops {
* @dev: Device to check (UCLASS_CPU)
* @return CPU count if OK, -ve on error
*/
- int (*get_count)(struct udevice *dev);
+ int (*get_count)(const struct udevice *dev);
/**
* get_vendor() - Get vendor name of a CPU
@@ -88,7 +88,7 @@ struct cpu_ops {
* @size: Size of string space
* @return 0 if OK, -ENOSPC if buffer is too small, other -ve on error
*/
- int (*get_vendor)(struct udevice *dev, char *buf, int size);
+ int (*get_vendor)(const struct udevice *dev, char *buf, int size);
/**
* is_current() - Check if the CPU that U-Boot is currently running from
@@ -110,7 +110,7 @@ struct cpu_ops {
*
* Return: 0 if OK, -ENOSPC if buffer is too small, other -ve on error
*/
-int cpu_get_desc(struct udevice *dev, char *buf, int size);
+int cpu_get_desc(const struct udevice *dev, char *buf, int size);
/**
* cpu_get_info() - Get information about a CPU
@@ -119,7 +119,7 @@ int cpu_get_desc(struct udevice *dev, char *buf, int size);
*
* Return: 0 if OK, -ve on error
*/
-int cpu_get_info(struct udevice *dev, struct cpu_info *info);
+int cpu_get_info(const struct udevice *dev, struct cpu_info *info);
/**
* cpu_get_count() - Get number of CPUs
@@ -127,7 +127,7 @@ int cpu_get_info(struct udevice *dev, struct cpu_info *info);
*
* Return: CPU count if OK, -ve on error
*/
-int cpu_get_count(struct udevice *dev);
+int cpu_get_count(const struct udevice *dev);
/**
* cpu_get_vendor() - Get vendor name of a CPU
@@ -137,7 +137,7 @@ int cpu_get_count(struct udevice *dev);
*
* Return: 0 if OK, -ENOSPC if buffer is too small, other -ve on error
*/
-int cpu_get_vendor(struct udevice *dev, char *buf, int size);
+int cpu_get_vendor(const struct udevice *dev, char *buf, int size);
/**
* cpu_probe_all() - Probe all available CPUs
diff --git a/include/dm/uclass-id.h b/include/dm/uclass-id.h
index 7837d459f1..690a8ed4df 100644
--- a/include/dm/uclass-id.h
+++ b/include/dm/uclass-id.h
@@ -97,6 +97,7 @@ enum uclass_id {
UCLASS_SERIAL, /* Serial UART */
UCLASS_SIMPLE_BUS, /* Bus with child devices */
UCLASS_SMEM, /* Shared memory interface */
+ UCLASS_SOC, /* SOC Device */
UCLASS_SOUND, /* Playing simple sounds */
UCLASS_SPI, /* SPI bus */
UCLASS_SPI_FLASH, /* SPI flash */
diff --git a/include/dt-bindings/clock/r8a774a1-cpg-mssr.h b/include/dt-bindings/clock/r8a774a1-cpg-mssr.h
new file mode 100644
index 0000000000..ac3fde148c
--- /dev/null
+++ b/include/dt-bindings/clock/r8a774a1-cpg-mssr.h
@@ -0,0 +1,65 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2019 Renesas Electronics Corp.
+ */
+#ifndef __DT_BINDINGS_CLOCK_R8A774A1_CPG_MSSR_H__
+#define __DT_BINDINGS_CLOCK_R8A774A1_CPG_MSSR_H__
+
+#include <dt-bindings/clock/renesas-cpg-mssr.h>
+
+/* r8a774a1 CPG Core Clocks */
+#define R8A774A1_CLK_Z 0
+#define R8A774A1_CLK_Z2 1
+#define R8A774A1_CLK_ZR 2
+#define R8A774A1_CLK_ZG 3
+#define R8A774A1_CLK_ZTR 4
+#define R8A774A1_CLK_ZTRD2 5
+#define R8A774A1_CLK_ZT 6
+#define R8A774A1_CLK_ZX 7
+#define R8A774A1_CLK_S0D1 8
+#define R8A774A1_CLK_S0D2 9
+#define R8A774A1_CLK_S0D3 10
+#define R8A774A1_CLK_S0D4 11
+#define R8A774A1_CLK_S0D6 12
+#define R8A774A1_CLK_S0D8 13
+#define R8A774A1_CLK_S0D12 14
+#define R8A774A1_CLK_S1D1 15
+#define R8A774A1_CLK_S1D2 16
+#define R8A774A1_CLK_S1D4 17
+#define R8A774A1_CLK_S2D1 18
+#define R8A774A1_CLK_S2D2 19
+#define R8A774A1_CLK_S2D4 20
+#define R8A774A1_CLK_S3D1 21
+#define R8A774A1_CLK_S3D2 22
+#define R8A774A1_CLK_S3D4 23
+#define R8A774A1_CLK_LB 24
+#define R8A774A1_CLK_CL 25
+#define R8A774A1_CLK_ZB3 26
+#define R8A774A1_CLK_ZB3D2 27
+#define R8A774A1_CLK_ZB3D4 28
+#define R8A774A1_CLK_CR 29
+#define R8A774A1_CLK_CRD2 30
+#define R8A774A1_CLK_SD0H 31
+#define R8A774A1_CLK_SD0 32
+#define R8A774A1_CLK_SD1H 33
+#define R8A774A1_CLK_SD1 34
+#define R8A774A1_CLK_SD2H 35
+#define R8A774A1_CLK_SD2 36
+#define R8A774A1_CLK_SD3H 37
+#define R8A774A1_CLK_SD3 38
+#define R8A774A1_CLK_SSP2 39
+#define R8A774A1_CLK_SSP1 40
+#define R8A774A1_CLK_SSPRS 41
+#define R8A774A1_CLK_RPC 42
+#define R8A774A1_CLK_RPCD2 43
+#define R8A774A1_CLK_MSO 44
+#define R8A774A1_CLK_CANFD 45
+#define R8A774A1_CLK_HDMI 46
+#define R8A774A1_CLK_CSI0 47
+#define R8A774A1_CLK_CSIREF 48
+#define R8A774A1_CLK_CP 49
+#define R8A774A1_CLK_CPEX 50
+#define R8A774A1_CLK_R 51
+#define R8A774A1_CLK_OSC 52
+
+#endif /* __DT_BINDINGS_CLOCK_R8A774A1_CPG_MSSR_H__ */
diff --git a/include/dt-bindings/power/r8a774a1-sysc.h b/include/dt-bindings/power/r8a774a1-sysc.h
new file mode 100644
index 0000000000..d84ea0eb12
--- /dev/null
+++ b/include/dt-bindings/power/r8a774a1-sysc.h
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2019 Renesas Electronics Corp.
+ */
+#ifndef __DT_BINDINGS_POWER_R8A774A1_SYSC_H__
+#define __DT_BINDINGS_POWER_R8A774A1_SYSC_H__
+
+/*
+ * These power domain indices match the numbers of the interrupt bits
+ * representing the power areas in the various Interrupt Registers
+ * (e.g. SYSCISR, Interrupt Status Register)
+ */
+
+#define R8A774A1_PD_CA57_CPU0 0
+#define R8A774A1_PD_CA57_CPU1 1
+#define R8A774A1_PD_CA53_CPU0 5
+#define R8A774A1_PD_CA53_CPU1 6
+#define R8A774A1_PD_CA53_CPU2 7
+#define R8A774A1_PD_CA53_CPU3 8
+#define R8A774A1_PD_CA57_SCU 12
+#define R8A774A1_PD_CR7 13
+#define R8A774A1_PD_A3VC 14
+#define R8A774A1_PD_3DG_A 17
+#define R8A774A1_PD_3DG_B 18
+#define R8A774A1_PD_CA53_SCU 21
+#define R8A774A1_PD_A3IR 24
+#define R8A774A1_PD_A2VC0 25
+#define R8A774A1_PD_A2VC1 26
+
+/* Always-on power area */
+#define R8A774A1_PD_ALWAYS_ON 32
+
+#endif /* __DT_BINDINGS_POWER_R8A774A1_SYSC_H__ */
diff --git a/include/env_internal.h b/include/env_internal.h
index e89fbdb1b7..66550434c3 100644
--- a/include/env_internal.h
+++ b/include/env_internal.h
@@ -211,6 +211,17 @@ struct env_driver {
extern struct hsearch_data env_htab;
+/**
+ * env_get_location()- Provide the best location for the U-Boot environment
+ *
+ * It is a weak function allowing board to overidde the environment location
+ *
+ * @op: operations performed on the environment
+ * @prio: priority between the multiple environments, 0 being the
+ * highest priority
+ * @return an enum env_location value on success, or -ve error code.
+ */
+enum env_location env_get_location(enum env_operation op, int prio);
#endif /* DO_DEPS_ONLY */
#endif /* _ENV_INTERNAL_H_ */
diff --git a/include/fdtdec.h b/include/fdtdec.h
index abd6d42671..760b392bdf 100644
--- a/include/fdtdec.h
+++ b/include/fdtdec.h
@@ -909,26 +909,6 @@ int fdtdec_decode_display_timing(const void *blob, int node, int index,
struct display_timing *config);
/**
- * fdtdec_setup_mem_size_base_fdt() - decode and setup gd->ram_size and
- * gd->ram_start
- *
- * Decode the /memory 'reg' property to determine the size and start of the
- * first memory bank, populate the global data with the size and start of the
- * first bank of memory.
- *
- * This function should be called from a boards dram_init(). This helper
- * function allows for boards to query the device tree for DRAM size and start
- * address instead of hard coding the value in the case where the memory size
- * and start address cannot be detected automatically.
- *
- * @param blob FDT blob
- *
- * @return 0 if OK, -EINVAL if the /memory node or reg property is missing or
- * invalid
- */
-int fdtdec_setup_mem_size_base_fdt(const void *blob);
-
-/**
* fdtdec_setup_mem_size_base() - decode and setup gd->ram_size and
* gd->ram_start
*
@@ -947,25 +927,6 @@ int fdtdec_setup_mem_size_base_fdt(const void *blob);
int fdtdec_setup_mem_size_base(void);
/**
- * fdtdec_setup_memory_banksize_fdt() - decode and populate gd->bd->bi_dram
- *
- * Decode the /memory 'reg' property to determine the address and size of the
- * memory banks. Use this data to populate the global data board info with the
- * phys address and size of memory banks.
- *
- * This function should be called from a boards dram_init_banksize(). This
- * helper function allows for boards to query the device tree for memory bank
- * information instead of hard coding the information in cases where it cannot
- * be detected automatically.
- *
- * @param blob FDT blob
- *
- * @return 0 if OK, -EINVAL if the /memory node or reg property is missing or
- * invalid
- */
-int fdtdec_setup_memory_banksize_fdt(const void *blob);
-
-/**
* fdtdec_setup_memory_banksize() - decode and populate gd->bd->bi_dram
*
* Decode the /memory 'reg' property to determine the address and size of the
diff --git a/include/soc.h b/include/soc.h
new file mode 100644
index 0000000000..a55eb1b572
--- /dev/null
+++ b/include/soc.h
@@ -0,0 +1,145 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * (C) Copyright 2020 - Texas Instruments Incorporated - http://www.ti.com/
+ * Dave Gerlach <d-gerlach@ti.com>
+ */
+
+#ifndef __SOC_H
+#define __SOC_H
+
+#define SOC_MAX_STR_SIZE 128
+
+/**
+ * struct soc_attr - Contains SoC identify information to be used in
+ * SoC matching. An array of these structs
+ * representing different SoCs can be passed to
+ * soc_device_match and the struct matching the SoC
+ * in use will be returned.
+ *
+ * @family - Name of SoC family that can include multiple related SoC
+ * variants. Example: am33
+ * @machine - Name of a specific SoC. Example: am3352
+ * @revision - Name of a specific SoC revision. Example: SR1.1
+ * @data - A pointer to user data for the SoC variant
+ */
+struct soc_attr {
+ const char *family;
+ const char *machine;
+ const char *revision;
+ const void *data;
+};
+
+struct soc_ops {
+ /**
+ * get_machine() - Get machine name of an SOC
+ *
+ * @dev: Device to check (UCLASS_SOC)
+ * @buf: Buffer to place string
+ * @size: Size of string space
+ * @return 0 if OK, -ENOSPC if buffer is too small, other -ve on error
+ */
+ int (*get_machine)(struct udevice *dev, char *buf, int size);
+
+ /**
+ * get_revision() - Get revision name of a SOC
+ *
+ * @dev: Device to check (UCLASS_SOC)
+ * @buf: Buffer to place string
+ * @size: Size of string space
+ * @return 0 if OK, -ENOSPC if buffer is too small, other -ve on error
+ */
+ int (*get_revision)(struct udevice *dev, char *buf, int size);
+
+ /**
+ * get_family() - Get family name of an SOC
+ *
+ * @dev: Device to check (UCLASS_SOC)
+ * @buf: Buffer to place string
+ * @size: Size of string space
+ * @return 0 if OK, -ENOSPC if buffer is too small, other -ve on error
+ */
+ int (*get_family)(struct udevice *dev, char *buf, int size);
+};
+
+#define soc_get_ops(dev) ((struct soc_ops *)(dev)->driver->ops)
+
+#ifdef CONFIG_SOC_DEVICE
+/**
+ * soc_get() - Return the soc device for the soc in use.
+ * @devp: Pointer to structure to receive the soc device.
+ *
+ * Since there can only be at most one SOC instance, the API can supply a
+ * function that returns the unique device.
+ *
+ * Return: 0 if OK, -ve on error.
+ */
+int soc_get(struct udevice **devp);
+
+/**
+ * soc_get_machine() - Get machine name of an SOC
+ * @dev: Device to check (UCLASS_SOC)
+ * @buf: Buffer to place string
+ * @size: Size of string space
+ *
+ * Return: 0 if OK, -ENOSPC if buffer is too small, other -ve on error
+ */
+int soc_get_machine(struct udevice *dev, char *buf, int size);
+
+/**
+ * soc_get_revision() - Get revision name of an SOC
+ * @dev: Device to check (UCLASS_SOC)
+ * @buf: Buffer to place string
+ * @size: Size of string space
+ *
+ * Return: 0 if OK, -ENOSPC if buffer is too small, other -ve on error
+ */
+int soc_get_revision(struct udevice *dev, char *buf, int size);
+
+/**
+ * soc_get_family() - Get family name of an SOC
+ * @dev: Device to check (UCLASS_SOC)
+ * @buf: Buffer to place string
+ * @size: Size of string space
+ *
+ * Return: 0 if OK, -ENOSPC if buffer is too small, other -ve on error
+ */
+int soc_get_family(struct udevice *dev, char *buf, int size);
+
+/**
+ * soc_device_match() - Return match from an array of soc_attr
+ * @matches: Array with any combination of family, revision or machine set
+ *
+ * Return: Pointer to struct from matches array with set attributes matching
+ * those provided by the soc device, or NULL if no match found.
+ */
+const struct soc_attr *
+soc_device_match(const struct soc_attr *matches);
+
+#else
+static inline int soc_get(struct udevice **devp)
+{
+ return -ENOSYS;
+}
+
+static inline int soc_get_machine(struct udevice *dev, char *buf, int size)
+{
+ return -ENOSYS;
+}
+
+static inline int soc_get_revision(struct udevice *dev, char *buf, int size)
+{
+ return -ENOSYS;
+}
+
+static inline int soc_get_family(struct udevice *dev, char *buf, int size)
+{
+ return -ENOSYS;
+}
+
+static inline const struct soc_attr *
+soc_device_match(const struct soc_attr *matches)
+{
+ return NULL;
+}
+#endif
+#endif /* _SOC_H */