hid-mcp2221.c (975f2d73a99f35b57ffa2ad7bff8562225cdcfcb) | hid-mcp2221.c (d9786159d229cdc1f579f7cf3abf464efb453e40) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * MCP2221A - Microchip USB to I2C Host Protocol Bridge 4 * 5 * Copyright (c) 2020, Rishi Gupta <gupt21@gmail.com> 6 * 7 * Datasheet: https://ww1.microchip.com/downloads/en/DeviceDoc/20005565B.pdf 8 */ --- 1128 unchanged lines hidden (view full) --- 1137 init_completion(&mcp->wait_in_report); 1138 hid_set_drvdata(hdev, mcp); 1139 mcp->hdev = hdev; 1140 1141 ret = devm_add_action_or_reset(&hdev->dev, mcp2221_hid_unregister, hdev); 1142 if (ret) 1143 return ret; 1144 | 1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * MCP2221A - Microchip USB to I2C Host Protocol Bridge 4 * 5 * Copyright (c) 2020, Rishi Gupta <gupt21@gmail.com> 6 * 7 * Datasheet: https://ww1.microchip.com/downloads/en/DeviceDoc/20005565B.pdf 8 */ --- 1128 unchanged lines hidden (view full) --- 1137 init_completion(&mcp->wait_in_report); 1138 hid_set_drvdata(hdev, mcp); 1139 mcp->hdev = hdev; 1140 1141 ret = devm_add_action_or_reset(&hdev->dev, mcp2221_hid_unregister, hdev); 1142 if (ret) 1143 return ret; 1144 |
1145 hid_device_io_start(hdev); 1146 | |
1147 /* Set I2C bus clock diviser */ 1148 if (i2c_clk_freq > 400) 1149 i2c_clk_freq = 400; 1150 if (i2c_clk_freq < 50) 1151 i2c_clk_freq = 50; 1152 mcp->cur_i2c_clk_div = (12000000 / (i2c_clk_freq * 1000)) - 3; 1153 1154 mcp->adapter.owner = THIS_MODULE; 1155 mcp->adapter.class = I2C_CLASS_HWMON; 1156 mcp->adapter.algo = &mcp_i2c_algo; 1157 mcp->adapter.retries = 1; 1158 mcp->adapter.dev.parent = &hdev->dev; | 1145 /* Set I2C bus clock diviser */ 1146 if (i2c_clk_freq > 400) 1147 i2c_clk_freq = 400; 1148 if (i2c_clk_freq < 50) 1149 i2c_clk_freq = 50; 1150 mcp->cur_i2c_clk_div = (12000000 / (i2c_clk_freq * 1000)) - 3; 1151 1152 mcp->adapter.owner = THIS_MODULE; 1153 mcp->adapter.class = I2C_CLASS_HWMON; 1154 mcp->adapter.algo = &mcp_i2c_algo; 1155 mcp->adapter.retries = 1; 1156 mcp->adapter.dev.parent = &hdev->dev; |
1157 ACPI_COMPANION_SET(&mcp->adapter.dev, ACPI_COMPANION(hdev->dev.parent)); |
|
1159 snprintf(mcp->adapter.name, sizeof(mcp->adapter.name), 1160 "MCP2221 usb-i2c bridge"); 1161 | 1158 snprintf(mcp->adapter.name, sizeof(mcp->adapter.name), 1159 "MCP2221 usb-i2c bridge"); 1160 |
1162 i2c_set_adapdata(&mcp->adapter, mcp); | |
1163 ret = devm_i2c_add_adapter(&hdev->dev, &mcp->adapter); 1164 if (ret) { 1165 hid_err(hdev, "can't add usb-i2c adapter: %d\n", ret); 1166 return ret; 1167 } | 1161 ret = devm_i2c_add_adapter(&hdev->dev, &mcp->adapter); 1162 if (ret) { 1163 hid_err(hdev, "can't add usb-i2c adapter: %d\n", ret); 1164 return ret; 1165 } |
1166 i2c_set_adapdata(&mcp->adapter, mcp); |
|
1168 1169#if IS_REACHABLE(CONFIG_GPIOLIB) 1170 /* Setup GPIO chip */ 1171 mcp->gc = devm_kzalloc(&hdev->dev, sizeof(*mcp->gc), GFP_KERNEL); 1172 if (!mcp->gc) 1173 return -ENOMEM; 1174 1175 mcp->gc->label = "mcp2221_gpio"; --- 43 unchanged lines hidden --- | 1167 1168#if IS_REACHABLE(CONFIG_GPIOLIB) 1169 /* Setup GPIO chip */ 1170 mcp->gc = devm_kzalloc(&hdev->dev, sizeof(*mcp->gc), GFP_KERNEL); 1171 if (!mcp->gc) 1172 return -ENOMEM; 1173 1174 mcp->gc->label = "mcp2221_gpio"; --- 43 unchanged lines hidden --- |