diff options
Diffstat (limited to 'drivers/soc/aspeed/aspeed-lpc-ctrl.c')
| -rw-r--r-- | drivers/soc/aspeed/aspeed-lpc-ctrl.c | 20 | 
1 files changed, 14 insertions, 6 deletions
| diff --git a/drivers/soc/aspeed/aspeed-lpc-ctrl.c b/drivers/soc/aspeed/aspeed-lpc-ctrl.c index 439bcd6b8c4a..c557ffd0992c 100644 --- a/drivers/soc/aspeed/aspeed-lpc-ctrl.c +++ b/drivers/soc/aspeed/aspeed-lpc-ctrl.c @@ -18,15 +18,15 @@  #define DEVICE_NAME	"aspeed-lpc-ctrl" -#define HICR5 0x0 +#define HICR5 0x80  #define HICR5_ENL2H	BIT(8)  #define HICR5_ENFWH	BIT(10) -#define HICR6 0x4 +#define HICR6 0x84  #define SW_FWH2AHB	BIT(17) -#define HICR7 0x8 -#define HICR8 0xc +#define HICR7 0x88 +#define HICR8 0x8c  struct aspeed_lpc_ctrl {  	struct miscdevice	miscdev; @@ -215,6 +215,7 @@ static int aspeed_lpc_ctrl_probe(struct platform_device *pdev)  	struct device_node *node;  	struct resource resm;  	struct device *dev; +	struct device_node *np;  	int rc;  	dev = &pdev->dev; @@ -270,8 +271,15 @@ static int aspeed_lpc_ctrl_probe(struct platform_device *pdev)  		}  	} -	lpc_ctrl->regmap = syscon_node_to_regmap( -			pdev->dev.parent->of_node); +	np = pdev->dev.parent->of_node; +	if (!of_device_is_compatible(np, "aspeed,ast2400-lpc-v2") && +	    !of_device_is_compatible(np, "aspeed,ast2500-lpc-v2") && +	    !of_device_is_compatible(np, "aspeed,ast2600-lpc-v2")) { +		dev_err(dev, "unsupported LPC device binding\n"); +		return -ENODEV; +	} + +	lpc_ctrl->regmap = syscon_node_to_regmap(np);  	if (IS_ERR(lpc_ctrl->regmap)) {  		dev_err(dev, "Couldn't get regmap\n");  		return -ENODEV; | 
