On Tue, Jul 12, 2016 at 09:44:41PM +0200, Marcin Wojtas wrote:
From: Bartosz Szczepanek bsz@semihalf.com
PHY protocol consists of MARVELL_PHY_STATUS and MARVELL_PHY_INIT functions.
A full commit subject body, please :) Who uses it and why?
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Bartosz Szczepanek bsz@semihalf.com Signed-off-by: Marcin Wojtas mw@semihalf.com
Platforms/Marvell/Include/Protocol/Phy.h | 103 +++++++++++++++++++++++++++++++ Platforms/Marvell/Marvell.dec | 1 + 2 files changed, 104 insertions(+) create mode 100644 Platforms/Marvell/Include/Protocol/Phy.h
Could do with some namespace tightening. MvPhy.h?
diff --git a/Platforms/Marvell/Include/Protocol/Phy.h b/Platforms/Marvell/Include/Protocol/Phy.h new file mode 100644 index 0000000..1bb7229 --- /dev/null +++ b/Platforms/Marvell/Include/Protocol/Phy.h @@ -0,0 +1,103 @@ +/******************************************************************************** +Copyright (C) 2016 Marvell International Ltd.
+Marvell BSD License Option
+If you received this File from Marvell, you may opt to use, redistribute and/or +modify this File under the following licensing terms. +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- Neither the name of Marvell nor the names of its contributors may be
- used to endorse or promote products derived from this software without
- specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*******************************************************************************/
+#ifndef __PHY_H__ +#define __PHY_H__
Could do with some namespace tightening.
+#define MARVELL_PHY_PROTOCOL_GUID { 0x0d728a1e, 0x45b5, 0x4feb, { 0x98, 0xc8, 0x31, 0x3d, 0xa8, 0x11, 0x74, 0x62 }}
+typedef struct _MARVELL_PHY_PROTOCOL MARVELL_PHY_PROTOCOL;
+typedef enum {
- PHY_CONNECTION_RGMII,
- PHY_CONNECTION_RGMII_ID,
- PHY_CONNECTION_RGMII_TXID,
- PHY_CONNECTION_RGMII_RXID,
- PHY_CONNECTION_SGMII,
- PHY_CONNECTION_RTBI,
- PHY_CONNECTION_XAUI,
- PHY_CONNECTION_RXAUI
+} PHY_CONNECTION;
+typedef enum {
- NO_SPEED,
- SPEED_10,
- SPEED_100,
- SPEED_1000,
- SPEED_2500,
- SPEED_10000
+} PHY_SPEED;
+typedef struct {
- UINT32 Addr;
- BOOLEAN LinkUp;
- BOOLEAN FullDuplex;
- BOOLEAN AutoNegotiation;
- PHY_SPEED Speed;
- PHY_CONNECTION Connection;
+} PHY_DEVICE;
+/*
- Before calling MARVELL_PHY_STATUS driver should request PHY_DEVICE structure by
- calling MARVELL_PHY_INIT. Pointer to that needs to be provided as an argument to
- MARVELL_PHY_STATUS.
- */
+typedef +EFI_STATUS +(EFIAPI *MARVELL_PHY_STATUS) (
- IN CONST MARVELL_PHY_PROTOCOL *This,
- IN OUT PHY_DEVICE *PhyDev
- );
+/*
- MARVELL_PHY_INIT allocates PhyDev and provides driver with pointer via **PhyDev.
- After it becomes unnecessary, PhyDev should be freed by a driver (or it will
- get freed at ExitBootServices).
- */
+typedef +EFI_STATUS +(EFIAPI *MARVELL_PHY_INIT) (
- IN CONST MARVELL_PHY_PROTOCOL *This,
- IN UINT32 PhyAddr,
- IN PHY_CONNECTION PhyConnection,
- IN OUT PHY_DEVICE **PhyDev
- );
+struct _MARVELL_PHY_PROTOCOL {
- MARVELL_PHY_STATUS Status;
- MARVELL_PHY_INIT Init;
+};
+extern EFI_GUID gMarvellPhyProtocolGuid; +#endif diff --git a/Platforms/Marvell/Marvell.dec b/Platforms/Marvell/Marvell.dec index 321c674..e342660 100644 --- a/Platforms/Marvell/Marvell.dec +++ b/Platforms/Marvell/Marvell.dec @@ -187,4 +187,5 @@ gMarvellSpiMasterProtocolGuid = { 0x23de66a3, 0xf666, 0x4b3e, { 0xaa, 0xa2, 0x68, 0x9b, 0x18, 0xae, 0x2e, 0x19 }} gMarvellSpiFlashProtocolGuid = { 0x9accb423, 0x5bd2, 0x4fca, { 0x9b, 0x4c, 0x2e, 0x65, 0xfc, 0x25, 0xdf, 0x21 }} gMarvellMdioProtocolGuid = { 0x0d728a1f, 0x45b5, 0x4feb, { 0x98, 0xc8, 0x31, 0x3d, 0xa8, 0x11, 0x74, 0x62 }}
- gMarvellPhyProtocolGuid = { 0x0d728a1e, 0x45b5, 0x4feb, { 0x98, 0xc8, 0x31, 0x3d, 0xa8, 0x11, 0x74, 0x62 }}
Again, not vital but would be handy to get alphabetically sorted.
Regards,
Leif
1.8.3.1