summaryrefslogtreecommitdiff
path: root/board/ge
AgeCommit message (Collapse)AuthorFilesLines
2021-09-24Taking over responsibility for GE boards from SebastianMartyn Welch3-3/+3
I am taking over responsibility for the GE board from Sebastian Reichel. Updating the MAINTAINERS files to reflect this. Signed-off-by: Martyn Welch <martyn.welch@collabora.com> Acked-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2021-05-02board: ge: bx50v3: fix crystal bitSebastian Reichel1-0/+26
The DA9063 enables the CRYSTAL bit by default, but there is no crystal populated on the BA16 system on module. Without explicitly clearing the CRYSTAL bit the system runs unstable and sometimes reboots unexpectedly. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2021-03-02reset: Remove addr parameter from reset_cpu()Harald Seiler1-1/+1
Historically, the reset_cpu() function had an `addr` parameter which was meant to pass in an address of the reset vector location, where the CPU should reset to. This feature is no longer used anywhere in U-Boot as all reset_cpu() implementations now ignore the passed value. Generic code has been added which always calls reset_cpu() with `0` which means this feature can no longer be used easily anyway. Over time, many implementations seem to have "misunderstood" the existence of this parameter as a way to customize/parameterize the reset (e.g. COLD vs WARM resets). As this is not properly supported, the code will almost always not do what it is intended to (because all call-sites just call reset_cpu() with 0). To avoid confusion and to clean up the codebase from unused left-overs of the past, remove the `addr` parameter entirely. Code which intends to support different kinds of resets should be rewritten as a sysreset driver instead. This transformation was done with the following coccinelle patch: @@ expression argvalue; @@ - reset_cpu(argvalue) + reset_cpu() @@ identifier argname; type argtype; @@ - reset_cpu(argtype argname) + reset_cpu(void) { ... } Signed-off-by: Harald Seiler <hws@denx.de> Reviewed-by: Simon Glass <sjg@chromium.org>
2021-02-02common: Drop asm/global_data.h from common headerSimon Glass3-0/+3
Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com>
2020-12-26board: ge: bx50v3: cleanup phy configSebastian Reichel1-23/+12
The current PHY rework does the following things: 1. Configure 125MHz clock 2. Setup the TX clock delay (RX is enabled by default), 3. Setup reserved bits to avoid voltage peak The clock delays are nowadays already configured by the PHY driver (in ar803x_delay_config). The code for that can simply be dropped. The clock speed can also be configured by the PHY driver by adding the device tree property "qca,clk-out-frequency". What is left is setting up the undocumented reserved bits to avoid the voltage peak problem. I slightly improved its documentation while updating the board's PHY rework code. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2020-12-26board: ge: bx50v3: remove confidx magic numbersSebastian Reichel1-6/+10
Instead of hardcoding index magic numbers in the board code, also rely on board_fit_config_name_match choosing the right config for the fitImage containing the kernel. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2020-12-06board: ge: bx50v3: check b850v3 power management watchdogIan Ray1-0/+17
Set `bootcause' from b850v3 power management watchdog status. Boot cause "REVERT" is no longer used, remove it. Signed-off-by: Ian Ray <ian.ray@ge.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2020-12-06board: ge: bx50v3: reduce magic numbersSebastian Reichel1-21/+7
Use VPD product ID instead of confidx, so that we can easily reuse the product ID defines and avoid some magic numbers. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2020-12-06board: ge: bx50v3: drop unused pinmux definesSebastian Reichel1-15/+0
Remove pinmux defines, that are no longer used after converting the code to devicetree. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2020-12-06board: ge: common: vpd: fix nameSebastian Reichel1-1/+1
Commit f692b479f02d changed the VPD partition name from "vpd" to "vpd@0". Fix the VPD reader code to use the new name, so that the VPD code keeps working. Fixes: f692b479f02d ("i2c: eeprom: Use reg property instead of offset and size") Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2020-11-04board: ge: b1x5v2: Add MAINTAINERSSebastian Reichel1-0/+9
Introduce maintainers file for the GE B1x5 board. Cc: Huan 'Kitty' Wang <HuanWang@ge.com> Cc: Ian Ray <ian.ray@ge.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2020-11-04board: ge: ppd: Update MAINTAINERSSebastian Reichel1-4/+6
This updates the PPD MAINTAINERS file doing a couple of changes: * Replace Martyn with myself, since he no longer has the hardware available and add Ian Ray as maintainer * Fix the board directory path, which was still listing freescale/ instead of ge/ * Order the list of files alphabetically * Add board specific device tree files to the file list Cc: Martyn Welch <martyn.welch@collabora.com> Cc: Ian Ray <ian.ray@ge.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2020-11-04board: ge: bx50v3: Update MAINTAINERSSebastian Reichel1-3/+8
This updates the Bx50v3 MAINTAINERS file, so that it also catches changes to the related device tree files. Additionally the list of files has been sorted alphabetically and I added myself as maintainer. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2020-11-01board: ge: b1x5v2: Add GE B1x5v2 and B1x5Pv2Sebastian Reichel4-0/+1305
GE B1x5v2 patient monitor series is similar to the CARESCAPE Monitor series (GE Bx50). It consists of a carrier PCB used in combination with a Congatec QMX6 SoM. This adds U-Boot support using device model everywhere and SPL for memory initialization. Proper configuration is provided as 'ge_b1x5v2_defconfig' and the combined image u-boot-with-spi.imx can be flashed directly to 1024 byte offset to /dev/mtdblock0. Alternatively SPL and u-boot.imx can be loaded separately via USB-OTG using e.g. imx_usb. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2020-11-01board: ge: common: vpd: separate I2C specific codeSebastian Reichel4-12/+27
This separates the I2C specific code from the generic GE vital product data code, so that the generic parts can be used on hardware with VPD stored in SPI flash memory. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2020-11-01board: ge: common: add config option for RTC and VPD featureSebastian Reichel4-1/+13
While this code is being used by all GE platforms its useful to have it behind a config option for hardware bringup of new platforms. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2020-11-01board: ge: common: rename ge_common.c to ge_rtc.cSebastian Reichel5-3/+3
The file only contains RTC related code, so let's name it accordingly. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2020-07-17treewide: convert bd_t to struct bd_info by coccinelleMasahiro Yamada2-2/+2
The Linux coding style guide (Documentation/process/coding-style.rst) clearly says: It's a **mistake** to use typedef for structures and pointers. Besides, using typedef for structures is annoying when you try to make headers self-contained. Let's say you have the following function declaration in a header: void foo(bd_t *bd); This is not self-contained since bd_t is not defined. To tell the compiler what 'bd_t' is, you need to include <asm/u-boot.h> #include <asm/u-boot.h> void foo(bd_t *bd); Then, the include direcective pulls in more bloat needlessly. If you use 'struct bd_info' instead, it is enough to put a forward declaration as follows: struct bd_info; void foo(struct bd_info *bd); Right, typedef'ing bd_t is a mistake. I used coccinelle to generate this commit. The semantic patch that makes this change is as follows: <smpl> @@ typedef bd_t; @@ -bd_t +struct bd_info </smpl> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2020-05-19common: Drop linux/delay.h from common headerSimon Glass1-0/+1
Move this uncommon header out of the common header. Signed-off-by: Simon Glass <sjg@chromium.org>
2020-05-19common: Drop image.h from common headerSimon Glass1-0/+1
Move this uncommon header out of the common header. Signed-off-by: Simon Glass <sjg@chromium.org>
2020-04-17doc: update reference to README.imximagePatrick Delaunay2-2/+2
Update reference in many files detected by scripts/documentation-file-ref-check README.imximage => imx/mkimage/imximage.txt Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
2020-02-11Merge tag 'dm-pull-6feb20' of https://gitlab.denx.de/u-boot/custodians/u-boot-dmTom Rini1-0/+1
sandbox conversion to SDL2 TPM TEE driver Various minor sandbox video enhancements New driver model core utility functions
2020-02-09board: ge: mx53ppd: use DM for uartIan Ray2-9/+0
Drop PPD_UART_PAD_CTRL since it matches defaults. Enable DM serial and MXC uart. Signed-off-by: Ian Ray <ian.ray@ge.com> Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
2020-02-09board: ge: bx50v3: use DM for uartRobert Beckett1-24/+0
Remove legacy uart pad and iomux code Enable DM serial and mxc uart Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
2020-02-09board: ge: mx53ppd: Use DM for ethernetRobert Beckett1-26/+0
Remove legacy iomux setup for fec. Enable phylib and DM fec. Use Kconfig for enabling fec. Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
2020-02-09board: ge: bx50v3: Enable DM PWM for backlightRobert Beckett1-65/+16
Add backlight and panel devicetree definitions Use UCLASS_PANEL to enable backlight via display enable handler Remove old explicit gpio code for handling backlight Use cls command to initiate display in HW agnostic manner Enable DM regulator and pwm Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
2020-02-09board: ge: mx53ppd: enable DM_VIDEOIan Ray4-89/+44
Enable DM_VIDEO for mx53ppd. Enable DM_REGULATOR_FIXED and DM_PWM for the backlight. Remove unused MX53PPD_LCD_POWER. Remove old (incorrect) setup_iomux_lcd. Enable backlight via display enable handler. Use cls command to initiate display in HW agnostic manner. Modify `failbootcmd' to use lcdputs. Signed-off-by: Ian Ray <ian.ray@ge.com> Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
2020-02-09board: ge: bx50v3, imx53ppd: use DM I2CRobert Beckett8-167/+55
Remove old (pre-DM) i2c setup code. Enable DM i2c. Convert common code to use DM rtc. Convert common code to read VPD from eeprom partition. Convert the generic i2c PMIC init code to use the new da9063 driver. mx53ppd only: Correct RTC compatible in device tree. Enable MXC DM i2c driver. Define CONFIG_SYS_MALLOC_F_LEN so that DM is available in pre-reloc. Make GPIO banks available during preloc, since initialisation is done in board_early_init_f(). Add gpio_request() calls to satisfy the DM_GPIO compatibility API. Remove unused power configuration. Signed-off-by: Robert Beckett <bob.beckett@collabora.com> Signed-off-by: Ian Ray <ian.ray@ge.com>
2020-02-06dm: core: Create a new header file for 'compat' featuresSimon Glass1-0/+1
At present dm/device.h includes the linux-compatible features. This requires including linux/compat.h which in turn includes a lot of headers. One of these is malloc.h which we thus end up including in every file in U-Boot. Apart from the inefficiency of this, it is problematic for sandbox which needs to use the system malloc() in some files. Move the compatibility features into a separate header file. Signed-off-by: Simon Glass <sjg@chromium.org>
2020-01-07board: ge: mx53ppd: use imx wdtRobert Beckett1-1/+0
Enable DM imx WDT Enable SYSRESET_WATCHDOG to maintain WDT based reset ability Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
2020-01-07board: ge: pass rtc_status via device treeIan Ray3-9/+25
Pass rtc_status via the device tree, instead of on kernel command line. Additionally, the 2038 mitigation is reported, if applied successfully. Signed-off-by: Ian Ray <ian.ray@ge.com> Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
2020-01-07board: ge: bx50v3: Enable DM for PCI and ethernetDenis Zalevskiy1-62/+13
DM for PCI pulls DM for ethernet that also needs other changes described below to build u-boot and keep existing functionality - ability to update MAC addresses of FEC ethernet adapter and I210 adapter connected to the Marvell switch. - fec_mxc driver with DM needs PHYLIB; - configuration items are moved from ge_bx50v3.h to ge_bx50v3_defconfig; - FEC is marked as eth0 because it is always present, so indices changed: I210 are still probed in the same order; - board_eth_init() was used by legacy ethernet, setup for enet iomux and pcie is moved to the board_late_init(); - pci_init() is called from the board_late_init() to initiate PCI bus probing, so I210 devices are propagated to the device tree; Signed-off-by: Denis Zalevskiy <denis.zalevskiy@ge.com> [Describe PHY reset in device tree] Signed-off-by: Ian Ray <ian.ray@ge.com> Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
2020-01-07board: ge: bx50v3: Fix message output to video consoleIan Ray1-7/+14
Use vidconsole for output to the LCD, now that DM_VIDEO is used. Write white text on a black background, like before migrating to DM_VIDEO. Signed-off-by: Ian Ray <ian.ray@ge.com> Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
2020-01-07board: ge: bx50v3: Fix run-time warningIan Ray1-10/+13
Fix GPIO reservation warning on code paths that do not need LVDS power. Signed-off-by: Ian Ray <ian.ray@ge.com> Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
2020-01-07board: ge: bx50v3: sync devicetrees from LinuxRobert Beckett1-1/+33
Copy device trees from linux, keeping them as separate files for each board to ease future sync. Update board code to use generic bx50v3 dt initially, then select the specific dt based on board detection. Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
2019-12-03common: Move some board functions out of common.hSimon Glass2-0/+2
A number of board function belong in init.h with the others. Move them. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
2019-08-11env: Drop environment.h header file where not neededSimon Glass1-1/+0
This header file is now only used by files that access internal environment features. Drop it from various places where it is not needed. Acked-by: Joe Hershberger <joe.hershberger@ni.com> Signed-off-by: Simon Glass <sjg@chromium.org>
2019-08-11env: Move env_set() to env.hSimon Glass3-0/+3
Move env_set() over to the new header file. Acked-by: Joe Hershberger <joe.hershberger@ni.com> Signed-off-by: Simon Glass <sjg@chromium.org>
2019-06-23Convert to use fsl_esdhc_imx for i.MX platformsYangbo Lu2-2/+2
Converted to use fsl_esdhc_imx for i.MX platforms. Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com> Tested-by: Steffen Dirkwinkel <s.dirkwinkel@beckhoff.com> Reviewed-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Lukasz Majewski <lukma@denx.de> Reviewed-by: Martyn Welch <martyn.welch@collabora.com> Acked-by: Jason Liu <Jason.hui.liu@nxp.com>
2019-04-13mx53ppd: bring dock out of reset at bootIan Ray1-0/+4
Configure GPIO BUFFERED_HOST_CONTROLLED_RESET_TO_DOCKING_CONNECTOR_N to bring the dock out of reset at boot. Signed-off-by: Ian Ray <ian.ray@ge.com>
2019-04-13board: ge: store version information in fdtIan Ray2-0/+22
Add board-specific FDT function to store U-Boot version in device tree. Signed-off-by: Ian Ray <ian.ray@ge.com>
2019-04-13board: ge: ppd: Enable CONFIG_DM_MMCIan Ray1-73/+0
Use MMC device model, and remove USDHC pin configuration code since the pinctrl driver is used. Signed-off-by: Ian Ray <ian.ray@ge.com>
2019-04-13board: ge: bx50v3: Enable CONFIG_DM_SPI, CONFIG_DM_SPI_FLASHIan Ray1-25/+0
Use SPI flash device model, and remove SPI pin configuration code since the pinctrl driver is used. Signed-off-by: Ian Ray <ian.ray@ge.com>
2019-04-13board: ge: bx50v3: Enable CONFIG_DM_GPIOIan Ray1-1/+10
Enable CONFIG_DM_GPIO as a pre-requisite for enabling CONFIG_DM_SPI. Add explicit gpio_requests. Signed-off-by: Ian Ray <ian.ray@ge.com>
2019-04-13board: ge: bx50v3: Enable CONFIG_DM_MMCIan Ray1-113/+0
Use MMC device model, and remove USDHC pin configuration code since the pinctrl driver is used. Signed-off-by: Ian Ray <ian.ray@ge.com>
2019-01-01imx: mx53ppd: fix build errorPeng Fan1-3/+3
board/ge/mx53ppd/mx53ppd.c: In function 'board_late_init': board/ge/mx53ppd/mx53ppd.c:359:23: error: passing argument 2 of 'read_vpd' from incompatible pointer type [-Werror=incompatible-pointer-types] res = read_vpd(&vpd, vpd_callback); ^~~~~~~~~~~~ In file included from board/ge/mx53ppd/mx53ppd.c:37:0: board/ge/mx53ppd/../../ge/common/vpd_reader.h:19:5: note: expected 'int (*)(struct vpd_cache *, u8, u8, u8, size_t, const u8 *) {aka int (*)(struct vpd_cache *, unsigned char, unsigned char, unsigned char, unsigned int, const unsigned char *)}' but argument is of type 'int (*)(void *, u8, u8, u8, size_t, const u8 *) {aka int (*)(void *, unsigned char, unsigned char, unsigned char, unsigned int, const unsigned char *)}' int read_vpd(struct vpd_cache *cache, ^~~~~~~~ cc1: all warnings being treated as errors Signed-off-by: Peng Fan <peng.fan@nxp.com> Acked-by: Stefano Babic <sbabic@denx.de>
2019-01-01board: ge: Move VPD reading to the vpd_readerDenis Zalevskiy4-76/+63
Merge functionality duplicated in bx50v3 and mx53ppd: the logic is the same except that process_vpd is called at different phases. Also read_vpd could end up in error, so there is no VPD data in this case - it shouldn't be processed. Signed-off-by: Denis Zalevskiy <denis.zalevskiy@ge.com> Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.com>
2018-12-17board: ge: Move VPD EEPROM configuration to the defconfigDenis Zalevskiy5-23/+26
Use standard configuration logic to define EEPROM constants. Names are based on VPD_EEPROM_ prefix because EEPROM_ is already used by i2c_eeprom driver. Signed-off-by: Denis Zalevskiy <denis.zalevskiy@ge.com> Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.com>
2018-12-17board: ge: Remove EEPROM bus param from read_vpd()Denis Zalevskiy2-6/+6
The bus is statically defined, so remove redundant parameters from read_vpd() for PPD and Bx50v3. Signed-off-by: Denis Zalevskiy <denis.zalevskiy@ge.com> Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.com>
2018-10-22board: ge: bx50v3: fix initialization of i2c bus0Dan Cimpoca1-3/+3
I2C bus 0 was not initialized correctly. There is an offset between i2c index and the structure number of pad info. So i2c bus 0 can be in an inconsistent state. This problem become visible on B{4,6}50v3 with the CPUC HW watchdog enabled. Sometimes when the CPUC HW watchdog interrupted the boot process, U-Boot was not able to read VPD from I2C/EEPROM and the system failed to boot up again, because a device connected to that bus was stuck in data transfer state (from previous boot attempt) and there was no method to recover (struct mxc_i2c_bus::idle_bus_fn was not set) courtesy of incorrect initialization. Signed-off-by: Dan Cimpoca <dan.I.cimpoca@ge.com> Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.com>