Przeglądaj źródła

Merge tag 'ti-v2020.10-rc4' of https://gitlab.denx.de/u-boot/custodians/u-boot-ti

- Update to ABI 3.0
- Fix i2c write in eeprom driver
Tom Rini 3 lat temu
rodzic
commit
6ade057e37

+ 6 - 6
arch/arm/dts/k3-am65-mcu.dtsi

@@ -135,7 +135,7 @@
 				<0x0 0x2a500000 0x0 0x40000>;
 			reg-names = "rt", "fifos", "proxy_gcfg", "proxy_target";
 			ti,num-rings = <286>;
-			ti,sci-rm-range-gp-rings = <0x2>; /* GP ring range */
+			ti,sci-rm-range-gp-rings = <0x1>; /* GP ring range */
 			ti,dma-ring-reset-quirk;
 			ti,sci = <&dmsc>;
 			ti,sci-dev-id = <195>;
@@ -153,11 +153,11 @@
 			ti,sci-dev-id = <194>;
 			ti,ringacc = <&mcu_ringacc>;
 
-			ti,sci-rm-range-tchan = <0x1>, /* TX_HCHAN */
-						<0x2>; /* TX_CHAN */
-			ti,sci-rm-range-rchan = <0x3>, /* RX_HCHAN */
-						<0x4>; /* RX_CHAN */
-			ti,sci-rm-range-rflow = <0x5>; /* GP RFLOW */
+			ti,sci-rm-range-tchan = <0xf>, /* TX_HCHAN */
+						<0xd>; /* TX_CHAN */
+			ti,sci-rm-range-rchan = <0xb>, /* RX_HCHAN */
+						<0xa>; /* RX_CHAN */
+			ti,sci-rm-range-rflow = <0x0>; /* GP RFLOW */
 		};
 	};
 

+ 6 - 12
board/ti/common/board_detect.c

@@ -113,18 +113,15 @@ static int __maybe_unused ti_i2c_eeprom_get(int bus_addr, int dev_addr,
 
 	/* Corrupted data??? */
 	if (hdr_read != header) {
-		rc = dm_i2c_read(dev, 0, (uint8_t *)&hdr_read, 4);
 		/*
 		 * read the eeprom header using i2c again, but use only a
 		 * 1 byte address (some legacy boards need this..)
 		 */
-		if (rc) {
-			rc =  i2c_set_chip_offset_len(dev, 1);
-			if (rc)
-				return rc;
+		rc = i2c_set_chip_offset_len(dev, 1);
+		if (rc)
+			return rc;
 
-			rc = dm_i2c_read(dev, 0, (uint8_t *)&hdr_read, 4);
-		}
+		rc = dm_i2c_read(dev, 0, (uint8_t *)&hdr_read, 4);
 		if (rc)
 			return rc;
 	}
@@ -153,16 +150,13 @@ static int __maybe_unused ti_i2c_eeprom_get(int bus_addr, int dev_addr,
 
 	/* Corrupted data??? */
 	if (hdr_read != header) {
-		rc = i2c_read(dev_addr, 0x0, byte, (uint8_t *)&hdr_read, 4);
 		/*
 		 * read the eeprom header using i2c again, but use only a
 		 * 1 byte address (some legacy boards need this..)
 		 */
 		byte = 1;
-		if (rc) {
-			rc = i2c_read(dev_addr, 0x0, byte, (uint8_t *)&hdr_read,
-				      4);
-		}
+		rc = i2c_read(dev_addr, 0x0, byte, (uint8_t *)&hdr_read,
+			      4);
 		if (rc)
 			return rc;
 	}

+ 3 - 59
drivers/firmware/ti_sci.c

@@ -60,14 +60,12 @@ struct ti_sci_rm_type_map {
  * @max_msgs: Maximum number of messages that can be pending
  *		  simultaneously in the system
  * @max_msg_size: Maximum size of data per message that can be handled.
- * @rm_type_map: RM resource type mapping structure.
  */
 struct ti_sci_desc {
 	u8 default_host_id;
 	int max_rx_timeout_ms;
 	int max_msgs;
 	int max_msg_size;
-	struct ti_sci_rm_type_map *rm_type_map;
 };
 
 /**
@@ -1605,33 +1603,6 @@ static int ti_sci_cmd_core_reboot(const struct ti_sci_handle *handle)
 	return ret;
 }
 
-static int ti_sci_get_resource_type(struct ti_sci_info *info, u16 dev_id,
-				    u16 *type)
-{
-	struct ti_sci_rm_type_map *rm_type_map = info->desc->rm_type_map;
-	bool found = false;
-	int i;
-
-	/* If map is not provided then assume dev_id is used as type */
-	if (!rm_type_map) {
-		*type = dev_id;
-		return 0;
-	}
-
-	for (i = 0; rm_type_map[i].dev_id; i++) {
-		if (rm_type_map[i].dev_id == dev_id) {
-			*type = rm_type_map[i].type;
-			found = true;
-			break;
-		}
-	}
-
-	if (!found)
-		return -EINVAL;
-
-	return 0;
-}
-
 /**
  * ti_sci_get_resource_range - Helper to get a range of resources assigned
  *			       to a host. Resource is uniquely identified by
@@ -1654,7 +1625,6 @@ static int ti_sci_get_resource_range(const struct ti_sci_handle *handle,
 	struct ti_sci_msg_req_get_resource_range req;
 	struct ti_sci_xfer *xfer;
 	struct ti_sci_info *info;
-	u16 type;
 	int ret = 0;
 
 	if (IS_ERR(handle))
@@ -1673,14 +1643,8 @@ static int ti_sci_get_resource_range(const struct ti_sci_handle *handle,
 		return ret;
 	}
 
-	ret = ti_sci_get_resource_type(info, dev_id, &type);
-	if (ret) {
-		dev_err(dev, "rm type lookup failed for %u\n", dev_id);
-		goto fail;
-	}
-
 	req.secondary_host = s_host;
-	req.type = type & MSG_RM_RESOURCE_TYPE_MASK;
+	req.type = dev_id & MSG_RM_RESOURCE_TYPE_MASK;
 	req.subtype = subtype & MSG_RM_RESOURCE_SUBTYPE_MASK;
 
 	ret = ti_sci_do_xfer(info, xfer);
@@ -3096,7 +3060,6 @@ devm_ti_sci_get_of_resource(const struct ti_sci_handle *handle,
 			    struct udevice *dev, u32 dev_id, char *of_prop)
 {
 	u32 resource_subtype;
-	u16 resource_type;
 	struct ti_sci_resource *res;
 	bool valid_set = false;
 	int sets, i, ret;
@@ -3120,13 +3083,6 @@ devm_ti_sci_get_of_resource(const struct ti_sci_handle *handle,
 	if (!res->desc)
 		return ERR_PTR(-ENOMEM);
 
-	ret = ti_sci_get_resource_type(handle_to_ti_sci_info(handle), dev_id,
-				       &resource_type);
-	if (ret) {
-		dev_err(dev, "No valid resource type for %u\n", dev_id);
-		return ERR_PTR(-EINVAL);
-	}
-
 	ret = dev_read_u32_array(dev, of_prop, temp, res->sets);
 	if (ret)
 		return ERR_PTR(-EINVAL);
@@ -3139,7 +3095,7 @@ devm_ti_sci_get_of_resource(const struct ti_sci_handle *handle,
 							&res->desc[i].num);
 		if (ret) {
 			dev_dbg(dev, "type %d subtype %d not allocated for host %d\n",
-				resource_type, resource_subtype,
+				dev_id, resource_subtype,
 				handle_to_ti_sci_info(handle)->host_id);
 			res->desc[i].start = 0;
 			res->desc[i].num = 0;
@@ -3148,7 +3104,7 @@ devm_ti_sci_get_of_resource(const struct ti_sci_handle *handle,
 
 		valid_set = true;
 		dev_dbg(dev, "res type = %d, subtype = %d, start = %d, num = %d\n",
-			resource_type, resource_subtype, res->desc[i].start,
+			dev_id, resource_subtype, res->desc[i].start,
 			res->desc[i].num);
 
 		res->desc[i].res_map =
@@ -3172,17 +3128,6 @@ static const struct ti_sci_desc ti_sci_pmmc_k2g_desc = {
 	/* Limited by MBOX_TX_QUEUE_LEN. K2G can handle upto 128 messages! */
 	.max_msgs = 20,
 	.max_msg_size = 64,
-	.rm_type_map = NULL,
-};
-
-static struct ti_sci_rm_type_map ti_sci_am654_rm_type_map[] = {
-	{.dev_id = 56, .type = 0x00b}, /* GIC_IRQ */
-	{.dev_id = 179, .type = 0x000}, /* MAIN_NAV_UDMASS_IA0 */
-	{.dev_id = 187, .type = 0x009}, /* MAIN_NAV_RA */
-	{.dev_id = 188, .type = 0x006}, /* MAIN_NAV_UDMAP */
-	{.dev_id = 194, .type = 0x007}, /* MCU_NAV_UDMAP */
-	{.dev_id = 195, .type = 0x00a}, /* MCU_NAV_RA */
-	{.dev_id = 0, .type = 0x000}, /* end of table */
 };
 
 /* Description for AM654 */
@@ -3193,7 +3138,6 @@ static const struct ti_sci_desc ti_sci_pmmc_am654_desc = {
 	/* Limited by MBOX_TX_QUEUE_LEN. K2G can handle upto 128 messages! */
 	.max_msgs = 20,
 	.max_msg_size = 60,
-	.rm_type_map = ti_sci_am654_rm_type_map,
 };
 
 static const struct udevice_id ti_sci_ids[] = {