mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
Merge git://git.denx.de/u-boot-dm
This commit is contained in:
@@ -45,19 +45,6 @@
|
||||
|
||||
/* general purpose I/O */
|
||||
#define CONFIG_ATMEL_LEGACY /* required until (g)pio is fixed */
|
||||
#define CONFIG_AT91_GPIO
|
||||
#define CONFIG_AT91_GPIO_PULLUP 1 /* keep pullups on peripheral pins */
|
||||
|
||||
/* serial console */
|
||||
#define CONFIG_ATMEL_USART
|
||||
#define CONFIG_USART_BASE ATMEL_BASE_DBGU
|
||||
#define CONFIG_USART_ID ATMEL_ID_SYS
|
||||
|
||||
/* LED */
|
||||
#define CONFIG_AT91_LED
|
||||
#define CONFIG_RED_LED AT91_PIN_PA9 /* this is the power led */
|
||||
#define CONFIG_GREEN_LED AT91_PIN_PA6 /* this is the user led */
|
||||
|
||||
|
||||
/*
|
||||
* BOOTP options
|
||||
@@ -87,10 +74,10 @@
|
||||
*/
|
||||
#ifdef CONFIG_AT91SAM9XE
|
||||
# define CONFIG_SYS_INIT_SP_ADDR \
|
||||
(ATMEL_BASE_SRAM + 0x1000 - GENERATED_GBL_DATA_SIZE)
|
||||
(ATMEL_BASE_SRAM + 16 * 1024 - GENERATED_GBL_DATA_SIZE)
|
||||
#else
|
||||
# define CONFIG_SYS_INIT_SP_ADDR \
|
||||
(ATMEL_BASE_SRAM1 + 0x1000 - GENERATED_GBL_DATA_SIZE)
|
||||
(ATMEL_BASE_SRAM1 + 16 * 1024 - GENERATED_GBL_DATA_SIZE)
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -142,18 +129,6 @@
|
||||
#define CONFIG_SYS_NAND_READY_PIN AT91_PIN_PC13
|
||||
#endif
|
||||
|
||||
/* MMC */
|
||||
#ifdef CONFIG_CMD_MMC
|
||||
#define CONFIG_GENERIC_ATMEL_MCI
|
||||
#endif
|
||||
|
||||
/* Ethernet */
|
||||
#define CONFIG_MACB 1
|
||||
#define CONFIG_RMII 1
|
||||
#define CONFIG_NET_RETRY_COUNT 20
|
||||
#define CONFIG_RESET_PHY_R 1
|
||||
#define CONFIG_AT91_WANTS_COMMON_PHY
|
||||
|
||||
/* USB */
|
||||
#define CONFIG_USB_ATMEL
|
||||
#define CONFIG_USB_ATMEL_CLK_SEL_PLLB
|
||||
@@ -200,7 +175,7 @@
|
||||
|
||||
/* bootstrap + u-boot + env + linux in nandflash */
|
||||
#define CONFIG_ENV_IS_IN_NAND 1
|
||||
#define CONFIG_ENV_OFFSET 0xc0000
|
||||
#define CONFIG_ENV_OFFSET 0x120000
|
||||
#define CONFIG_ENV_OFFSET_REDUND 0x100000
|
||||
#define CONFIG_ENV_SIZE 0x20000 /* 1 sector = 128 kB */
|
||||
#define CONFIG_BOOTCOMMAND "nand read 0x22000000 0x200000 0x300000; bootm"
|
||||
|
||||
@@ -45,13 +45,6 @@
|
||||
* Hardware drivers
|
||||
*/
|
||||
#define CONFIG_ATMEL_LEGACY
|
||||
#define CONFIG_AT91_GPIO 1
|
||||
#define CONFIG_AT91_GPIO_PULLUP 1
|
||||
|
||||
/* serial console */
|
||||
#define CONFIG_ATMEL_USART
|
||||
#define CONFIG_USART_BASE ATMEL_BASE_DBGU
|
||||
#define CONFIG_USART_ID ATMEL_ID_SYS
|
||||
|
||||
/* LCD */
|
||||
#define LCD_BPP LCD_COLOR8
|
||||
@@ -62,13 +55,6 @@
|
||||
#define CONFIG_ATMEL_LCD 1
|
||||
#define CONFIG_ATMEL_LCD_BGR555 1
|
||||
|
||||
/* LED */
|
||||
#define CONFIG_AT91_LED
|
||||
#define CONFIG_RED_LED AT91_PIN_PB7 /* the power led */
|
||||
#define CONFIG_GREEN_LED AT91_PIN_PB8 /* the user1 led */
|
||||
#define CONFIG_YELLOW_LED AT91_PIN_PC29 /* the user2 led */
|
||||
|
||||
|
||||
/*
|
||||
* BOOTP options
|
||||
*/
|
||||
@@ -88,7 +74,7 @@
|
||||
#define CONFIG_SYS_SDRAM_SIZE 0x04000000
|
||||
|
||||
#define CONFIG_SYS_INIT_SP_ADDR \
|
||||
(ATMEL_BASE_SRAM1 + 0x1000 - GENERATED_GBL_DATA_SIZE)
|
||||
(ATMEL_BASE_SRAM1 + 16 * 1024 - GENERATED_GBL_DATA_SIZE)
|
||||
|
||||
/* DataFlash */
|
||||
#define CONFIG_ATMEL_DATAFLASH_SPI
|
||||
@@ -99,11 +85,6 @@
|
||||
#define DATAFLASH_TCSS (0x1a << 16)
|
||||
#define DATAFLASH_TCHS (0x1 << 24)
|
||||
|
||||
/* MMC */
|
||||
#ifdef CONFIG_CMD_MMC
|
||||
#define CONFIG_GENERIC_ATMEL_MCI
|
||||
#endif
|
||||
|
||||
/* NOR flash, if populated */
|
||||
#ifdef CONFIG_SYS_USE_NORFLASH
|
||||
#define CONFIG_SYS_FLASH_CFI 1
|
||||
@@ -249,9 +230,6 @@
|
||||
#endif
|
||||
|
||||
/* Ethernet */
|
||||
#define CONFIG_MACB 1
|
||||
#define CONFIG_RMII 1
|
||||
#define CONFIG_NET_RETRY_COUNT 20
|
||||
#define CONFIG_RESET_PHY_R 1
|
||||
#define CONFIG_AT91_WANTS_COMMON_PHY
|
||||
|
||||
@@ -287,7 +265,7 @@
|
||||
|
||||
/* bootstrap + u-boot + env + linux in nandflash */
|
||||
#define CONFIG_ENV_IS_IN_NAND 1
|
||||
#define CONFIG_ENV_OFFSET 0xc0000
|
||||
#define CONFIG_ENV_OFFSET 0x120000
|
||||
#define CONFIG_ENV_OFFSET_REDUND 0x100000
|
||||
#define CONFIG_ENV_SIZE 0x20000 /* 1 sector = 128 kB */
|
||||
#define CONFIG_BOOTCOMMAND "nand read 0x22000000 0x200000 0x300000; bootm"
|
||||
|
||||
@@ -30,13 +30,6 @@
|
||||
|
||||
/* general purpose I/O */
|
||||
#define CONFIG_ATMEL_LEGACY /* required until (g)pio is fixed */
|
||||
#define CONFIG_AT91_GPIO
|
||||
#define CONFIG_AT91_GPIO_PULLUP 1 /* keep pullups on peripheral pins */
|
||||
|
||||
/* serial console */
|
||||
#define CONFIG_ATMEL_USART
|
||||
#define CONFIG_USART_BASE ATMEL_BASE_DBGU
|
||||
#define CONFIG_USART_ID ATMEL_ID_SYS
|
||||
|
||||
/* LCD */
|
||||
#define LCD_BPP LCD_COLOR8
|
||||
@@ -49,12 +42,6 @@
|
||||
/* board specific(not enough SRAM) */
|
||||
#define CONFIG_AT91SAM9G45_LCD_BASE 0x73E00000
|
||||
|
||||
/* LED */
|
||||
#define CONFIG_AT91_LED
|
||||
#define CONFIG_RED_LED AT91_PIN_PD31 /* this is the user1 led */
|
||||
#define CONFIG_GREEN_LED AT91_PIN_PD0 /* this is the user2 led */
|
||||
|
||||
|
||||
/*
|
||||
* BOOTP options
|
||||
*/
|
||||
@@ -75,7 +62,7 @@
|
||||
#define CONFIG_SYS_SDRAM_SIZE 0x08000000
|
||||
|
||||
#define CONFIG_SYS_INIT_SP_ADDR \
|
||||
(CONFIG_SYS_SDRAM_BASE + 4 * 1024 - GENERATED_GBL_DATA_SIZE)
|
||||
(CONFIG_SYS_SDRAM_BASE + 16 * 1024 - GENERATED_GBL_DATA_SIZE)
|
||||
|
||||
/* NAND flash */
|
||||
#ifdef CONFIG_CMD_NAND
|
||||
@@ -92,24 +79,10 @@
|
||||
|
||||
#endif
|
||||
|
||||
/* MMC */
|
||||
|
||||
#ifdef CONFIG_CMD_MMC
|
||||
#define CONFIG_GENERIC_ATMEL_MCI
|
||||
#endif
|
||||
|
||||
/* Ethernet */
|
||||
#define CONFIG_MACB
|
||||
#define CONFIG_RMII
|
||||
#define CONFIG_NET_RETRY_COUNT 20
|
||||
#define CONFIG_RESET_PHY_R
|
||||
#define CONFIG_AT91_WANTS_COMMON_PHY
|
||||
|
||||
/* USB */
|
||||
#define CONFIG_USB_EHCI
|
||||
#define CONFIG_USB_EHCI_ATMEL
|
||||
#define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 2
|
||||
|
||||
#define CONFIG_SYS_LOAD_ADDR 0x22000000 /* load address */
|
||||
|
||||
#define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE
|
||||
@@ -118,7 +91,7 @@
|
||||
#ifdef CONFIG_SYS_USE_NANDFLASH
|
||||
/* bootstrap + u-boot + env in nandflash */
|
||||
#define CONFIG_ENV_IS_IN_NAND
|
||||
#define CONFIG_ENV_OFFSET 0xc0000
|
||||
#define CONFIG_ENV_OFFSET 0x120000
|
||||
#define CONFIG_ENV_OFFSET_REDUND 0x100000
|
||||
#define CONFIG_ENV_SIZE 0x20000
|
||||
|
||||
|
||||
@@ -28,14 +28,6 @@
|
||||
#define CONFIG_INITRD_TAG
|
||||
#define CONFIG_SKIP_LOWLEVEL_INIT
|
||||
|
||||
/* general purpose I/O */
|
||||
#define CONFIG_AT91_GPIO
|
||||
|
||||
/* serial console */
|
||||
#define CONFIG_ATMEL_USART
|
||||
#define CONFIG_USART_BASE ATMEL_BASE_DBGU
|
||||
#define CONFIG_USART_ID ATMEL_ID_SYS
|
||||
|
||||
/* LCD */
|
||||
#define LCD_BPP LCD_COLOR16
|
||||
#define LCD_OUTPUT_BPP 24
|
||||
@@ -45,7 +37,6 @@
|
||||
#define CONFIG_ATMEL_HLCD
|
||||
#define CONFIG_ATMEL_LCD_RGB565
|
||||
|
||||
|
||||
/*
|
||||
* BOOTP options
|
||||
*/
|
||||
@@ -69,14 +60,11 @@
|
||||
* that address while providing maximum stack area below.
|
||||
*/
|
||||
# define CONFIG_SYS_INIT_SP_ADDR \
|
||||
(ATMEL_BASE_SRAM + 0x1000 - GENERATED_GBL_DATA_SIZE)
|
||||
(ATMEL_BASE_SRAM + 16 * 1024 - GENERATED_GBL_DATA_SIZE)
|
||||
|
||||
/* DataFlash */
|
||||
#ifdef CONFIG_CMD_SF
|
||||
#define CONFIG_ATMEL_SPI
|
||||
#define CONFIG_SF_DEFAULT_SPEED 30000000
|
||||
#define CONFIG_ENV_SPI_MODE SPI_MODE_3
|
||||
#define CONFIG_SF_DEFAULT_MODE SPI_MODE_3
|
||||
#endif
|
||||
|
||||
/* NAND flash */
|
||||
@@ -115,11 +103,6 @@
|
||||
"bootargs_nand=rootfstype=ubifs ubi.mtd=7 root=ubi0:rootfs rw\0"\
|
||||
"bootargs_mmc=root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait\0"
|
||||
|
||||
/* MMC */
|
||||
#ifdef CONFIG_CMD_MMC
|
||||
#define CONFIG_GENERIC_ATMEL_MCI
|
||||
#endif
|
||||
|
||||
/* Ethernet */
|
||||
#define CONFIG_KS8851_MLL
|
||||
#define CONFIG_KS8851_MLL_BASEADDR 0x30000000 /* use NCS2 */
|
||||
@@ -156,7 +139,7 @@
|
||||
|
||||
/* bootstrap + u-boot + env + linux in nandflash */
|
||||
#define CONFIG_ENV_IS_IN_NAND
|
||||
#define CONFIG_ENV_OFFSET 0xc0000
|
||||
#define CONFIG_ENV_OFFSET 0x120000
|
||||
#define CONFIG_ENV_OFFSET_REDUND 0x100000
|
||||
#define CONFIG_ENV_SIZE 0x20000 /* 1 sector = 128 kB */
|
||||
#define CONFIG_BOOTCOMMAND \
|
||||
|
||||
@@ -29,18 +29,11 @@
|
||||
#define CONFIG_INITRD_TAG 1
|
||||
|
||||
#define CONFIG_ATMEL_LEGACY
|
||||
#define CONFIG_AT91_GPIO 1
|
||||
#define CONFIG_AT91_GPIO_PULLUP 1
|
||||
|
||||
/*
|
||||
* Hardware drivers
|
||||
*/
|
||||
|
||||
/* serial console */
|
||||
#define CONFIG_ATMEL_USART
|
||||
#define CONFIG_USART_BASE ATMEL_BASE_DBGU
|
||||
#define CONFIG_USART_ID ATMEL_ID_SYS
|
||||
|
||||
/* LCD */
|
||||
#define LCD_BPP LCD_COLOR8
|
||||
#define CONFIG_LCD_LOGO 1
|
||||
@@ -52,13 +45,6 @@
|
||||
/* Let board_init_f handle the framebuffer allocation */
|
||||
#undef CONFIG_FB_ADDR
|
||||
|
||||
/* LED */
|
||||
#define CONFIG_AT91_LED
|
||||
#define CONFIG_RED_LED AT91_PIN_PD14 /* this is the power led */
|
||||
#define CONFIG_GREEN_LED AT91_PIN_PD15 /* this is the user1 led */
|
||||
#define CONFIG_YELLOW_LED AT91_PIN_PD16 /* this is the user2 led */
|
||||
|
||||
|
||||
/*
|
||||
* Command line configuration.
|
||||
*/
|
||||
@@ -71,7 +57,7 @@
|
||||
#define CONFIG_SYS_SDRAM_SIZE 0x04000000
|
||||
|
||||
#define CONFIG_SYS_INIT_SP_ADDR \
|
||||
(ATMEL_BASE_SRAM + 0x1000 - GENERATED_GBL_DATA_SIZE)
|
||||
(ATMEL_BASE_SRAM + 16 * 1024 - GENERATED_GBL_DATA_SIZE)
|
||||
|
||||
/* DataFlash */
|
||||
#define CONFIG_ATMEL_DATAFLASH_SPI
|
||||
@@ -97,12 +83,6 @@
|
||||
|
||||
#endif
|
||||
|
||||
/* MMC */
|
||||
|
||||
#ifdef CONFIG_CMD_MMC
|
||||
#define CONFIG_GENERIC_ATMEL_MCI
|
||||
#endif
|
||||
|
||||
/* Ethernet - not present */
|
||||
|
||||
/* USB - not supported */
|
||||
@@ -130,7 +110,7 @@
|
||||
|
||||
/* bootstrap + u-boot + env + linux in nandflash */
|
||||
#define CONFIG_ENV_IS_IN_NAND 1
|
||||
#define CONFIG_ENV_OFFSET 0xc0000
|
||||
#define CONFIG_ENV_OFFSET 0x120000
|
||||
#define CONFIG_ENV_OFFSET_REDUND 0x100000
|
||||
#define CONFIG_ENV_SIZE 0x20000 /* 1 sector = 128 kB */
|
||||
#define CONFIG_BOOTCOMMAND "nand read 0x22000000 0x200000 0x600000; " \
|
||||
|
||||
@@ -26,12 +26,6 @@
|
||||
|
||||
/* general purpose I/O */
|
||||
#define CONFIG_ATMEL_LEGACY /* required until (g)pio is fixed */
|
||||
#define CONFIG_AT91_GPIO
|
||||
|
||||
/* serial console */
|
||||
#define CONFIG_ATMEL_USART
|
||||
#define CONFIG_USART_BASE ATMEL_BASE_DBGU
|
||||
#define CONFIG_USART_ID ATMEL_ID_SYS
|
||||
|
||||
/* LCD */
|
||||
#define LCD_BPP LCD_COLOR16
|
||||
@@ -67,11 +61,10 @@
|
||||
#define CONFIG_SYS_SDRAM_SIZE 0x08000000 /* 128 megs */
|
||||
|
||||
#define CONFIG_SYS_INIT_SP_ADDR \
|
||||
(CONFIG_SYS_SDRAM_BASE + 4 * 1024 - GENERATED_GBL_DATA_SIZE)
|
||||
(CONFIG_SYS_SDRAM_BASE + 16 * 1024 - GENERATED_GBL_DATA_SIZE)
|
||||
|
||||
/* DataFlash */
|
||||
#ifdef CONFIG_CMD_SF
|
||||
#define CONFIG_ATMEL_SPI
|
||||
#define CONFIG_SF_DEFAULT_SPEED 30000000
|
||||
#endif
|
||||
|
||||
@@ -104,23 +97,9 @@
|
||||
#define CONFIG_CMD_UBIFS
|
||||
#endif
|
||||
|
||||
/* MMC */
|
||||
#ifdef CONFIG_CMD_MMC
|
||||
#define CONFIG_GENERIC_ATMEL_MCI
|
||||
#endif
|
||||
|
||||
/* Ethernet */
|
||||
#define CONFIG_MACB
|
||||
#define CONFIG_RMII
|
||||
#define CONFIG_NET_RETRY_COUNT 20
|
||||
#define CONFIG_MACB_SEARCH_PHY
|
||||
|
||||
/* USB */
|
||||
#ifdef CONFIG_CMD_USB
|
||||
#ifdef CONFIG_USB_EHCI
|
||||
#define CONFIG_USB_EHCI_ATMEL
|
||||
#define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 2
|
||||
#else
|
||||
#ifndef CONFIG_USB_EHCI
|
||||
#define CONFIG_USB_ATMEL
|
||||
#define CONFIG_USB_ATMEL_CLK_SEL_UPLL
|
||||
#define CONFIG_USB_OHCI_NEW
|
||||
@@ -139,7 +118,7 @@
|
||||
#ifdef CONFIG_SYS_USE_NANDFLASH
|
||||
/* bootstrap + u-boot + env + linux in nandflash */
|
||||
#define CONFIG_ENV_IS_IN_NAND
|
||||
#define CONFIG_ENV_OFFSET 0xc0000
|
||||
#define CONFIG_ENV_OFFSET 0x120000
|
||||
#define CONFIG_ENV_OFFSET_REDUND 0x100000
|
||||
#define CONFIG_ENV_SIZE 0x20000 /* 1 sector = 128 kB */
|
||||
#define CONFIG_BOOTCOMMAND "nand read " \
|
||||
|
||||
@@ -20,10 +20,10 @@
|
||||
#define CONFIG_SYS_SDRAM_SIZE 0x20000000
|
||||
|
||||
#ifdef CONFIG_SPL_BUILD
|
||||
#define CONFIG_SYS_INIT_SP_ADDR 0x210000
|
||||
#define CONFIG_SYS_INIT_SP_ADDR 0x218000
|
||||
#else
|
||||
#define CONFIG_SYS_INIT_SP_ADDR \
|
||||
(CONFIG_SYS_SDRAM_BASE + 4 * 1024 - GENERATED_GBL_DATA_SIZE)
|
||||
(CONFIG_SYS_SDRAM_BASE + 16 * 1024 - GENERATED_GBL_DATA_SIZE)
|
||||
#endif
|
||||
|
||||
#define CONFIG_SYS_LOAD_ADDR 0x22000000 /* load address */
|
||||
@@ -38,21 +38,10 @@
|
||||
/* NAND flash */
|
||||
#undef CONFIG_CMD_NAND
|
||||
|
||||
/* USB device */
|
||||
#define CONFIG_USB_ETHER
|
||||
#define CONFIG_USB_ETH_RNDIS
|
||||
#define CONFIG_USBNET_MANUFACTURER "Atmel SAMA5D2 XPlained"
|
||||
|
||||
/* I2C */
|
||||
#define AT24MAC_ADDR 0x5c
|
||||
#define AT24MAC_REG 0x9a
|
||||
|
||||
/* Ethernet Hardware */
|
||||
#define CONFIG_MACB
|
||||
#define CONFIG_RMII
|
||||
#define CONFIG_NET_RETRY_COUNT 20
|
||||
#define CONFIG_MACB_SEARCH_PHY
|
||||
|
||||
/* LCD */
|
||||
|
||||
#ifdef CONFIG_LCD
|
||||
@@ -84,7 +73,7 @@
|
||||
/* SPL */
|
||||
#define CONFIG_SPL_FRAMEWORK
|
||||
#define CONFIG_SPL_TEXT_BASE 0x200000
|
||||
#define CONFIG_SPL_MAX_SIZE 0x10000
|
||||
#define CONFIG_SPL_MAX_SIZE 0x18000
|
||||
#define CONFIG_SPL_BSS_START_ADDR 0x20000000
|
||||
#define CONFIG_SPL_BSS_MAX_SIZE 0x80000
|
||||
#define CONFIG_SYS_SPL_MALLOC_START 0x20080000
|
||||
@@ -100,7 +89,7 @@
|
||||
|
||||
#elif CONFIG_SYS_USE_SERIALFLASH
|
||||
#define CONFIG_SPL_SPI_LOAD
|
||||
#define CONFIG_SYS_SPI_U_BOOT_OFFS 0x8000
|
||||
#define CONFIG_SYS_SPI_U_BOOT_OFFS 0x10000
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -56,6 +56,7 @@ enum uclass_id {
|
||||
UCLASS_PCH, /* x86 platform controller hub */
|
||||
UCLASS_PCI, /* PCI bus */
|
||||
UCLASS_PCI_GENERIC, /* Generic PCI bus device */
|
||||
UCLASS_PHY, /* Physical Layer (PHY) device */
|
||||
UCLASS_PINCONFIG, /* Pin configuration node device */
|
||||
UCLASS_PINCTRL, /* Pinctrl (pin muxing/configuration) device */
|
||||
UCLASS_PMIC, /* PMIC I/O device */
|
||||
|
||||
224
include/generic-phy.h
Normal file
224
include/generic-phy.h
Normal file
@@ -0,0 +1,224 @@
|
||||
/*
|
||||
* Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/
|
||||
* Written by Jean-Jacques Hiblot <jjhiblot@ti.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#ifndef __GENERIC_PHY_H
|
||||
#define __GENERIC_PHY_H
|
||||
|
||||
|
||||
/**
|
||||
* struct phy - A handle to (allowing control of) a single phy port.
|
||||
*
|
||||
* Clients provide storage for phy handles. The content of the structure is
|
||||
* managed solely by the PHY API and PHY drivers. A phy struct is
|
||||
* initialized by "get"ing the phy struct. The phy struct is passed to all
|
||||
* other phy APIs to identify which PHY port to operate upon.
|
||||
*
|
||||
* @dev: The device which implements the PHY port.
|
||||
* @id: The PHY ID within the provider.
|
||||
*
|
||||
*/
|
||||
struct phy {
|
||||
struct udevice *dev;
|
||||
unsigned long id;
|
||||
};
|
||||
|
||||
/*
|
||||
* struct udevice_ops - set of function pointers for phy operations
|
||||
* @init: operation to be performed for initializing phy (optional)
|
||||
* @exit: operation to be performed while exiting (optional)
|
||||
* @reset: reset the phy (optional).
|
||||
* @power_on: powering on the phy (optional)
|
||||
* @power_off: powering off the phy (optional)
|
||||
*/
|
||||
struct phy_ops {
|
||||
/**
|
||||
* of_xlate - Translate a client's device-tree (OF) phy specifier.
|
||||
*
|
||||
* The PHY core calls this function as the first step in implementing
|
||||
* a client's generic_phy_get_by_*() call.
|
||||
*
|
||||
* If this function pointer is set to NULL, the PHY core will use a
|
||||
* default implementation, which assumes #phy-cells = <0> or
|
||||
* #phy-cells = <1>, and in the later case that the DT cell
|
||||
* contains a simple integer PHY port ID.
|
||||
*
|
||||
* @phy: The phy struct to hold the translation result.
|
||||
* @args: The phy specifier values from device tree.
|
||||
* @return 0 if OK, or a negative error code.
|
||||
*/
|
||||
int (*of_xlate)(struct phy *phy,
|
||||
struct fdtdec_phandle_args *args);
|
||||
|
||||
/**
|
||||
* init - initialize the hardware.
|
||||
*
|
||||
* Hardware intialization should not be done in during probe() but
|
||||
* should be implemented in this init() function. It could be starting
|
||||
* PLL, taking a controller out of reset, routing, etc. This function
|
||||
* is typically called only once per PHY port.
|
||||
* If power_on() is not implemented, it must power up the phy.
|
||||
*
|
||||
* @phy: the PHY port to initialize
|
||||
* @return 0 if OK, or a negative error code.
|
||||
*/
|
||||
int (*init)(struct phy *phy);
|
||||
|
||||
/**
|
||||
* exit - de-initialize the PHY device
|
||||
*
|
||||
* Hardware de-intialization should be done here. Every step done in
|
||||
* init() should be undone here.
|
||||
* This could be used to suspend the phy to reduce power consumption or
|
||||
* to put the phy in a known condition before booting the OS (though it
|
||||
* is NOT called automatically before booting the OS)
|
||||
* If power_off() is not implemented, it must power down the phy.
|
||||
*
|
||||
* @phy: PHY port to be de-initialized
|
||||
* @return 0 if OK, or a negative error code
|
||||
*/
|
||||
int (*exit)(struct phy *phy);
|
||||
|
||||
/**
|
||||
* reset - resets a PHY device without shutting down
|
||||
*
|
||||
* @phy: PHY port to be reset
|
||||
*
|
||||
* During runtime, the PHY may need to be reset in order to
|
||||
* re-establish connection etc without being shut down or exit.
|
||||
*
|
||||
* @return 0 if OK, or a negative error code
|
||||
*/
|
||||
int (*reset)(struct phy *phy);
|
||||
|
||||
/**
|
||||
* power_on - power on a PHY device
|
||||
*
|
||||
* @phy: PHY port to be powered on
|
||||
*
|
||||
* During runtime, the PHY may need to be powered on or off several
|
||||
* times. This function is used to power on the PHY. It relies on the
|
||||
* setup done in init(). If init() is not implemented, it must take care
|
||||
* of setting up the context (PLLs, ...)
|
||||
*
|
||||
* @return 0 if OK, or a negative error code
|
||||
*/
|
||||
int (*power_on)(struct phy *phy);
|
||||
|
||||
/**
|
||||
* power_off - power off a PHY device
|
||||
*
|
||||
* @phy: PHY port to be powered off
|
||||
*
|
||||
* During runtime, the PHY may need to be powered on or off several
|
||||
* times. This function is used to power off the PHY. Except if
|
||||
* init()/deinit() are not implemented, it must not de-initialize
|
||||
* everything.
|
||||
*
|
||||
* @return 0 if OK, or a negative error code
|
||||
*/
|
||||
int (*power_off)(struct phy *phy);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* generic_phy_init() - initialize the PHY port
|
||||
*
|
||||
* @phy: the PHY port to initialize
|
||||
* @return 0 if OK, or a negative error code
|
||||
*/
|
||||
int generic_phy_init(struct phy *phy);
|
||||
|
||||
/**
|
||||
* generic_phy_init() - de-initialize the PHY device
|
||||
*
|
||||
* @phy: PHY port to be de-initialized
|
||||
* @return 0 if OK, or a negative error code
|
||||
*/
|
||||
int generic_phy_exit(struct phy *phy);
|
||||
|
||||
/**
|
||||
* generic_phy_reset() - resets a PHY device without shutting down
|
||||
*
|
||||
* @phy: PHY port to be reset
|
||||
*@return 0 if OK, or a negative error code
|
||||
*/
|
||||
int generic_phy_reset(struct phy *phy);
|
||||
|
||||
/**
|
||||
* generic_phy_power_on() - power on a PHY device
|
||||
*
|
||||
* @phy: PHY port to be powered on
|
||||
* @return 0 if OK, or a negative error code
|
||||
*/
|
||||
int generic_phy_power_on(struct phy *phy);
|
||||
|
||||
/**
|
||||
* generic_phy_power_off() - power off a PHY device
|
||||
*
|
||||
* @phy: PHY port to be powered off
|
||||
* @return 0 if OK, or a negative error code
|
||||
*/
|
||||
int generic_phy_power_off(struct phy *phy);
|
||||
|
||||
|
||||
/**
|
||||
* generic_phy_get_by_index() - Get a PHY device by integer index.
|
||||
*
|
||||
* @user: the client device
|
||||
* @index: The index in the list of available PHYs
|
||||
* @phy: A pointer to the PHY port
|
||||
*
|
||||
* This looks up a PHY device for a client device based on its position in the
|
||||
* list of the possible PHYs.
|
||||
*
|
||||
* example:
|
||||
* usb1: usb_otg_ss@xxx {
|
||||
* compatible = "xxx";
|
||||
* reg = <xxx>;
|
||||
* .
|
||||
* .
|
||||
* phys = <&usb2_phy>, <&usb3_phy>;
|
||||
* .
|
||||
* .
|
||||
* };
|
||||
* the USB2 phy can be accessed by passing index '0' and the USB3 phy can
|
||||
* be accessed by passing index '1'
|
||||
*
|
||||
* @return 0 if OK, or a negative error code
|
||||
*/
|
||||
int generic_phy_get_by_index(struct udevice *user, int index,
|
||||
struct phy *phy);
|
||||
|
||||
/**
|
||||
* generic_phy_get_by_name() - Get a PHY device by its name.
|
||||
*
|
||||
* @user: the client device
|
||||
* @phy_name: The name of the PHY in the list of possible PHYs
|
||||
* @phy: A pointer to the PHY port
|
||||
*
|
||||
* This looks up a PHY device for a client device in the
|
||||
* list of the possible PHYs based on its name.
|
||||
*
|
||||
* example:
|
||||
* usb1: usb_otg_ss@xxx {
|
||||
* compatible = "xxx";
|
||||
* reg = <xxx>;
|
||||
* .
|
||||
* .
|
||||
* phys = <&usb2_phy>, <&usb3_phy>;
|
||||
* phy-names = "usb2phy", "usb3phy";
|
||||
* .
|
||||
* .
|
||||
* };
|
||||
* the USB3 phy can be accessed using "usb3phy", and USB2 by using "usb2phy"
|
||||
*
|
||||
* @return 0 if OK, or a negative error code
|
||||
*/
|
||||
int generic_phy_get_by_name(struct udevice *user, const char *phy_name,
|
||||
struct phy *phy);
|
||||
|
||||
#endif /*__GENERIC_PHY_H */
|
||||
Reference in New Issue
Block a user