Commit d0fb6ba7 authored by Dongpo Li's avatar Dongpo Li Committed by David S. Miller

net: hix5hd2_gmac: add generic compatible string

The "hix5hd2" is SoC name, add the generic ethernet driver name.
The "hisi-gemac-v1" is the basic version and "hisi-gemac-v2" adds
the SG/TXCSUM/TSO/UFO features.
Signed-off-by: default avatarDongpo Li <lidongpo@hisilicon.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2bfcfcd3
Hisilicon hix5hd2 gmac controller Hisilicon hix5hd2 gmac controller
Required properties: Required properties:
- compatible: should be "hisilicon,hix5hd2-gmac". - compatible: should contain one of the following SoC strings:
* "hisilicon,hix5hd2-gemac"
* "hisilicon,hi3798cv200-gemac"
and one of the following version string:
* "hisilicon,hisi-gemac-v1"
* "hisilicon,hisi-gemac-v2"
- reg: specifies base physical address(s) and size of the device registers. - reg: specifies base physical address(s) and size of the device registers.
The first region is the MAC register base and size. The first region is the MAC register base and size.
The second region is external interface control register. The second region is external interface control register.
...@@ -20,7 +25,7 @@ Required properties: ...@@ -20,7 +25,7 @@ Required properties:
Example: Example:
gmac0: ethernet@f9840000 { gmac0: ethernet@f9840000 {
compatible = "hisilicon,hix5hd2-gmac"; compatible = "hisilicon,hix5hd2-gemac", "hisilicon,hisi-gemac-v1";
reg = <0xf9840000 0x1000>,<0xf984300c 0x4>; reg = <0xf9840000 0x1000>,<0xf984300c 0x4>;
interrupts = <0 71 4>; interrupts = <0 71 4>;
#address-cells = <1>; #address-cells = <1>;
......
...@@ -189,6 +189,10 @@ ...@@ -189,6 +189,10 @@
#define dma_cnt(n) ((n) >> 5) #define dma_cnt(n) ((n) >> 5)
#define dma_byte(n) ((n) << 5) #define dma_byte(n) ((n) << 5)
#define HW_CAP_TSO BIT(0)
#define GEMAC_V1 0
#define GEMAC_V2 (GEMAC_V1 | HW_CAP_TSO)
struct hix5hd2_desc { struct hix5hd2_desc {
__le32 buff_addr; __le32 buff_addr;
__le32 cmd; __le32 cmd;
...@@ -1021,7 +1025,10 @@ static int hix5hd2_dev_remove(struct platform_device *pdev) ...@@ -1021,7 +1025,10 @@ static int hix5hd2_dev_remove(struct platform_device *pdev)
} }
static const struct of_device_id hix5hd2_of_match[] = { static const struct of_device_id hix5hd2_of_match[] = {
{.compatible = "hisilicon,hix5hd2-gmac",}, { .compatible = "hisilicon,hisi-gemac-v1", .data = (void *)GEMAC_V1 },
{ .compatible = "hisilicon,hisi-gemac-v2", .data = (void *)GEMAC_V2 },
{ .compatible = "hisilicon,hix5hd2-gemac", .data = (void *)GEMAC_V1 },
{ .compatible = "hisilicon,hi3798cv200-gemac", .data = (void *)GEMAC_V2 },
{}, {},
}; };
...@@ -1029,7 +1036,7 @@ MODULE_DEVICE_TABLE(of, hix5hd2_of_match); ...@@ -1029,7 +1036,7 @@ MODULE_DEVICE_TABLE(of, hix5hd2_of_match);
static struct platform_driver hix5hd2_dev_driver = { static struct platform_driver hix5hd2_dev_driver = {
.driver = { .driver = {
.name = "hix5hd2-gmac", .name = "hisi-gemac",
.of_match_table = hix5hd2_of_match, .of_match_table = hix5hd2_of_match,
}, },
.probe = hix5hd2_dev_probe, .probe = hix5hd2_dev_probe,
...@@ -1038,6 +1045,6 @@ static struct platform_driver hix5hd2_dev_driver = { ...@@ -1038,6 +1045,6 @@ static struct platform_driver hix5hd2_dev_driver = {
module_platform_driver(hix5hd2_dev_driver); module_platform_driver(hix5hd2_dev_driver);
MODULE_DESCRIPTION("HISILICON HIX5HD2 Ethernet driver"); MODULE_DESCRIPTION("HISILICON Gigabit Ethernet MAC driver");
MODULE_LICENSE("GPL v2"); MODULE_LICENSE("GPL v2");
MODULE_ALIAS("platform:hix5hd2-gmac"); MODULE_ALIAS("platform:hisi-gemac");
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment