11924272bSKonrad Dybcio // SPDX-License-Identifier: GPL-2.0-only 21924272bSKonrad Dybcio /* 31924272bSKonrad Dybcio * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. 41924272bSKonrad Dybcio */ 51924272bSKonrad Dybcio 61924272bSKonrad Dybcio #include <linux/debugfs.h> 71924272bSKonrad Dybcio #include <linux/io.h> 81924272bSKonrad Dybcio #include <linux/module.h> 91924272bSKonrad Dybcio #include <linux/of.h> 101924272bSKonrad Dybcio #include <linux/of_address.h> 111924272bSKonrad Dybcio #include <linux/platform_device.h> 121924272bSKonrad Dybcio 131924272bSKonrad Dybcio #include <linux/soc/qcom/ubwc.h> 141924272bSKonrad Dybcio 15197713d0SDmitry Baryshkov static const struct qcom_ubwc_cfg_data no_ubwc_data = { 16197713d0SDmitry Baryshkov /* no UBWC, no HBB */ 17197713d0SDmitry Baryshkov }; 18197713d0SDmitry Baryshkov 191924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data msm8937_data = { 201924272bSKonrad Dybcio .ubwc_enc_version = UBWC_1_0, 211924272bSKonrad Dybcio .ubwc_dec_version = UBWC_1_0, 2227282859SKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL1 | 2327282859SKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL2 | 2427282859SKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL3, 251924272bSKonrad Dybcio .highest_bank_bit = 14, 261924272bSKonrad Dybcio }; 271924272bSKonrad Dybcio 281924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data msm8998_data = { 291924272bSKonrad Dybcio .ubwc_enc_version = UBWC_1_0, 301924272bSKonrad Dybcio .ubwc_dec_version = UBWC_1_0, 3127282859SKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL1 | 3227282859SKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL2 | 3327282859SKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL3, 341924272bSKonrad Dybcio .highest_bank_bit = 15, 351924272bSKonrad Dybcio }; 361924272bSKonrad Dybcio 371924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data qcm2290_data = { 381924272bSKonrad Dybcio /* no UBWC */ 391924272bSKonrad Dybcio .highest_bank_bit = 15, 401924272bSKonrad Dybcio }; 411924272bSKonrad Dybcio 421924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data sa8775p_data = { 431924272bSKonrad Dybcio .ubwc_enc_version = UBWC_4_0, 441924272bSKonrad Dybcio .ubwc_dec_version = UBWC_4_0, 45709dd2ffSKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL3, 461924272bSKonrad Dybcio .ubwc_bank_spread = true, 471924272bSKonrad Dybcio .highest_bank_bit = 13, 481924272bSKonrad Dybcio .macrotile_mode = true, 491924272bSKonrad Dybcio }; 501924272bSKonrad Dybcio 511924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data sar2130p_data = { 521924272bSKonrad Dybcio .ubwc_enc_version = UBWC_3_0, /* 4.0.2 in hw */ 531924272bSKonrad Dybcio .ubwc_dec_version = UBWC_4_3, 54709dd2ffSKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL2 | 55709dd2ffSKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL3, 561924272bSKonrad Dybcio .ubwc_bank_spread = true, 571924272bSKonrad Dybcio .highest_bank_bit = 13, 581924272bSKonrad Dybcio .macrotile_mode = true, 591924272bSKonrad Dybcio }; 601924272bSKonrad Dybcio 611924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data sc7180_data = { 621924272bSKonrad Dybcio .ubwc_enc_version = UBWC_2_0, 631924272bSKonrad Dybcio .ubwc_dec_version = UBWC_2_0, 64709dd2ffSKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL2 | 65709dd2ffSKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL3, 661924272bSKonrad Dybcio .ubwc_bank_spread = true, 671924272bSKonrad Dybcio .highest_bank_bit = 14, 681924272bSKonrad Dybcio }; 691924272bSKonrad Dybcio 701924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data sc7280_data = { 711924272bSKonrad Dybcio .ubwc_enc_version = UBWC_3_0, 721924272bSKonrad Dybcio .ubwc_dec_version = UBWC_4_0, 73709dd2ffSKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL2 | 74709dd2ffSKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL3, 751924272bSKonrad Dybcio .ubwc_bank_spread = true, 761924272bSKonrad Dybcio .highest_bank_bit = 14, 771924272bSKonrad Dybcio .macrotile_mode = true, 781924272bSKonrad Dybcio }; 791924272bSKonrad Dybcio 801924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data sc8180x_data = { 811924272bSKonrad Dybcio .ubwc_enc_version = UBWC_3_0, 821924272bSKonrad Dybcio .ubwc_dec_version = UBWC_3_0, 8327282859SKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL2 | 8427282859SKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL3, 851924272bSKonrad Dybcio .highest_bank_bit = 16, 861924272bSKonrad Dybcio .macrotile_mode = true, 871924272bSKonrad Dybcio }; 881924272bSKonrad Dybcio 891924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data sc8280xp_data = { 901924272bSKonrad Dybcio .ubwc_enc_version = UBWC_4_0, 911924272bSKonrad Dybcio .ubwc_dec_version = UBWC_4_0, 92709dd2ffSKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL2 | 93709dd2ffSKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL3, 941924272bSKonrad Dybcio .ubwc_bank_spread = true, 951924272bSKonrad Dybcio .highest_bank_bit = 16, 961924272bSKonrad Dybcio .macrotile_mode = true, 971924272bSKonrad Dybcio }; 981924272bSKonrad Dybcio 991924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data sdm670_data = { 1001924272bSKonrad Dybcio .ubwc_enc_version = UBWC_2_0, 1011924272bSKonrad Dybcio .ubwc_dec_version = UBWC_2_0, 10227282859SKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL2 | 10327282859SKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL3, 1041924272bSKonrad Dybcio .highest_bank_bit = 14, 1051924272bSKonrad Dybcio }; 1061924272bSKonrad Dybcio 1071924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data sdm845_data = { 1081924272bSKonrad Dybcio .ubwc_enc_version = UBWC_2_0, 1091924272bSKonrad Dybcio .ubwc_dec_version = UBWC_2_0, 11027282859SKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL2 | 11127282859SKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL3, 1121924272bSKonrad Dybcio .highest_bank_bit = 15, 1131924272bSKonrad Dybcio }; 1141924272bSKonrad Dybcio 1151924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data sm6115_data = { 1161924272bSKonrad Dybcio .ubwc_enc_version = UBWC_1_0, 1171924272bSKonrad Dybcio .ubwc_dec_version = UBWC_2_0, 118709dd2ffSKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL1 | 119709dd2ffSKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL2 | 120709dd2ffSKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL3, 1211924272bSKonrad Dybcio .ubwc_bank_spread = true, 1221924272bSKonrad Dybcio .highest_bank_bit = 14, 1231924272bSKonrad Dybcio }; 1241924272bSKonrad Dybcio 1251924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data sm6125_data = { 1261924272bSKonrad Dybcio .ubwc_enc_version = UBWC_1_0, 1271924272bSKonrad Dybcio .ubwc_dec_version = UBWC_3_0, 128709dd2ffSKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL1 | 129709dd2ffSKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL2 | 130709dd2ffSKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL3, 1311924272bSKonrad Dybcio .highest_bank_bit = 14, 1321924272bSKonrad Dybcio }; 1331924272bSKonrad Dybcio 1341924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data sm6150_data = { 1351924272bSKonrad Dybcio .ubwc_enc_version = UBWC_2_0, 1361924272bSKonrad Dybcio .ubwc_dec_version = UBWC_2_0, 13727282859SKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL2 | 13827282859SKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL3, 1391924272bSKonrad Dybcio .highest_bank_bit = 14, 1401924272bSKonrad Dybcio }; 1411924272bSKonrad Dybcio 1421924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data sm6350_data = { 1431924272bSKonrad Dybcio .ubwc_enc_version = UBWC_2_0, 1441924272bSKonrad Dybcio .ubwc_dec_version = UBWC_2_0, 145709dd2ffSKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL2 | 146709dd2ffSKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL3, 1471924272bSKonrad Dybcio .ubwc_bank_spread = true, 1481924272bSKonrad Dybcio .highest_bank_bit = 14, 1491924272bSKonrad Dybcio }; 1501924272bSKonrad Dybcio 1511924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data sm7150_data = { 1521924272bSKonrad Dybcio .ubwc_enc_version = UBWC_2_0, 1531924272bSKonrad Dybcio .ubwc_dec_version = UBWC_2_0, 15427282859SKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL2 | 15527282859SKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL3, 1561924272bSKonrad Dybcio .highest_bank_bit = 14, 1571924272bSKonrad Dybcio }; 1581924272bSKonrad Dybcio 1591924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data sm8150_data = { 1601924272bSKonrad Dybcio .ubwc_enc_version = UBWC_3_0, 1611924272bSKonrad Dybcio .ubwc_dec_version = UBWC_3_0, 16227282859SKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL2 | 16327282859SKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL3, 1641924272bSKonrad Dybcio .highest_bank_bit = 15, 1651924272bSKonrad Dybcio }; 1661924272bSKonrad Dybcio 1671924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data sm8250_data = { 1681924272bSKonrad Dybcio .ubwc_enc_version = UBWC_4_0, 1691924272bSKonrad Dybcio .ubwc_dec_version = UBWC_4_0, 170709dd2ffSKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL2 | 171709dd2ffSKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL3, 1721924272bSKonrad Dybcio .ubwc_bank_spread = true, 1731924272bSKonrad Dybcio /* TODO: highest_bank_bit = 15 for LP_DDR4 */ 1741924272bSKonrad Dybcio .highest_bank_bit = 16, 1751924272bSKonrad Dybcio .macrotile_mode = true, 1761924272bSKonrad Dybcio }; 1771924272bSKonrad Dybcio 1781924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data sm8350_data = { 1791924272bSKonrad Dybcio .ubwc_enc_version = UBWC_4_0, 1801924272bSKonrad Dybcio .ubwc_dec_version = UBWC_4_0, 181709dd2ffSKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL2 | 182709dd2ffSKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL3, 1831924272bSKonrad Dybcio .ubwc_bank_spread = true, 1841924272bSKonrad Dybcio /* TODO: highest_bank_bit = 15 for LP_DDR4 */ 1851924272bSKonrad Dybcio .highest_bank_bit = 16, 1861924272bSKonrad Dybcio .macrotile_mode = true, 1871924272bSKonrad Dybcio }; 1881924272bSKonrad Dybcio 1891924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data sm8550_data = { 1901924272bSKonrad Dybcio .ubwc_enc_version = UBWC_4_0, 1911924272bSKonrad Dybcio .ubwc_dec_version = UBWC_4_3, 192709dd2ffSKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL2 | 193709dd2ffSKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL3, 1941924272bSKonrad Dybcio .ubwc_bank_spread = true, 1951924272bSKonrad Dybcio /* TODO: highest_bank_bit = 15 for LP_DDR4 */ 1961924272bSKonrad Dybcio .highest_bank_bit = 16, 1971924272bSKonrad Dybcio .macrotile_mode = true, 1981924272bSKonrad Dybcio }; 1991924272bSKonrad Dybcio 2001924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data sm8750_data = { 2011924272bSKonrad Dybcio .ubwc_enc_version = UBWC_5_0, 2021924272bSKonrad Dybcio .ubwc_dec_version = UBWC_5_0, 2031924272bSKonrad Dybcio .ubwc_swizzle = 6, 2041924272bSKonrad Dybcio .ubwc_bank_spread = true, 2051924272bSKonrad Dybcio /* TODO: highest_bank_bit = 15 for LP_DDR4 */ 2061924272bSKonrad Dybcio .highest_bank_bit = 16, 2071924272bSKonrad Dybcio .macrotile_mode = true, 2081924272bSKonrad Dybcio }; 2091924272bSKonrad Dybcio 2101924272bSKonrad Dybcio static const struct qcom_ubwc_cfg_data x1e80100_data = { 2111924272bSKonrad Dybcio .ubwc_enc_version = UBWC_4_0, 2121924272bSKonrad Dybcio .ubwc_dec_version = UBWC_4_3, 213709dd2ffSKonrad Dybcio .ubwc_swizzle = UBWC_SWIZZLE_ENABLE_LVL2 | 214709dd2ffSKonrad Dybcio UBWC_SWIZZLE_ENABLE_LVL3, 2151924272bSKonrad Dybcio .ubwc_bank_spread = true, 2161924272bSKonrad Dybcio /* TODO: highest_bank_bit = 15 for LP_DDR4 */ 2171924272bSKonrad Dybcio .highest_bank_bit = 16, 2181924272bSKonrad Dybcio .macrotile_mode = true, 2191924272bSKonrad Dybcio }; 2201924272bSKonrad Dybcio 2211924272bSKonrad Dybcio static const struct of_device_id qcom_ubwc_configs[] __maybe_unused = { 222197713d0SDmitry Baryshkov { .compatible = "qcom,apq8016", .data = &no_ubwc_data }, 223197713d0SDmitry Baryshkov { .compatible = "qcom,apq8026", .data = &no_ubwc_data }, 224197713d0SDmitry Baryshkov { .compatible = "qcom,apq8074", .data = &no_ubwc_data }, 2251924272bSKonrad Dybcio { .compatible = "qcom,apq8096", .data = &msm8998_data }, 226197713d0SDmitry Baryshkov { .compatible = "qcom,msm8226", .data = &no_ubwc_data }, 227197713d0SDmitry Baryshkov { .compatible = "qcom,msm8916", .data = &no_ubwc_data }, 2285cfd298cSDmitry Baryshkov { .compatible = "qcom,msm8917", .data = &no_ubwc_data }, 2291924272bSKonrad Dybcio { .compatible = "qcom,msm8937", .data = &msm8937_data }, 230*ec770bb2SDmitry Baryshkov { .compatible = "qcom,msm8929", .data = &no_ubwc_data }, 231197713d0SDmitry Baryshkov { .compatible = "qcom,msm8939", .data = &no_ubwc_data }, 2321924272bSKonrad Dybcio { .compatible = "qcom,msm8953", .data = &msm8937_data }, 2331924272bSKonrad Dybcio { .compatible = "qcom,msm8956", .data = &msm8937_data }, 234197713d0SDmitry Baryshkov { .compatible = "qcom,msm8974", .data = &no_ubwc_data }, 2351924272bSKonrad Dybcio { .compatible = "qcom,msm8976", .data = &msm8937_data }, 2361924272bSKonrad Dybcio { .compatible = "qcom,msm8996", .data = &msm8998_data }, 2371924272bSKonrad Dybcio { .compatible = "qcom,msm8998", .data = &msm8998_data }, 2381924272bSKonrad Dybcio { .compatible = "qcom,qcm2290", .data = &qcm2290_data, }, 2391924272bSKonrad Dybcio { .compatible = "qcom,qcm6490", .data = &sc7280_data, }, 2401924272bSKonrad Dybcio { .compatible = "qcom,sa8155p", .data = &sm8150_data, }, 2411924272bSKonrad Dybcio { .compatible = "qcom,sa8540p", .data = &sc8280xp_data, }, 2421924272bSKonrad Dybcio { .compatible = "qcom,sa8775p", .data = &sa8775p_data, }, 2431924272bSKonrad Dybcio { .compatible = "qcom,sar2130p", .data = &sar2130p_data }, 2441924272bSKonrad Dybcio { .compatible = "qcom,sc7180", .data = &sc7180_data }, 2451924272bSKonrad Dybcio { .compatible = "qcom,sc7280", .data = &sc7280_data, }, 2461924272bSKonrad Dybcio { .compatible = "qcom,sc8180x", .data = &sc8180x_data, }, 2471924272bSKonrad Dybcio { .compatible = "qcom,sc8280xp", .data = &sc8280xp_data, }, 24861f3c19aSDmitry Baryshkov { .compatible = "qcom,sda660", .data = &msm8937_data }, 24961f3c19aSDmitry Baryshkov { .compatible = "qcom,sdm450", .data = &msm8937_data }, 2501924272bSKonrad Dybcio { .compatible = "qcom,sdm630", .data = &msm8937_data }, 25161f3c19aSDmitry Baryshkov { .compatible = "qcom,sdm632", .data = &msm8937_data }, 2521924272bSKonrad Dybcio { .compatible = "qcom,sdm636", .data = &msm8937_data }, 2531924272bSKonrad Dybcio { .compatible = "qcom,sdm660", .data = &msm8937_data }, 2541924272bSKonrad Dybcio { .compatible = "qcom,sdm670", .data = &sdm670_data, }, 2551924272bSKonrad Dybcio { .compatible = "qcom,sdm845", .data = &sdm845_data, }, 2561924272bSKonrad Dybcio { .compatible = "qcom,sm4250", .data = &sm6115_data, }, 2571924272bSKonrad Dybcio { .compatible = "qcom,sm6115", .data = &sm6115_data, }, 2581924272bSKonrad Dybcio { .compatible = "qcom,sm6125", .data = &sm6125_data, }, 2591924272bSKonrad Dybcio { .compatible = "qcom,sm6150", .data = &sm6150_data, }, 2601924272bSKonrad Dybcio { .compatible = "qcom,sm6350", .data = &sm6350_data, }, 2611924272bSKonrad Dybcio { .compatible = "qcom,sm6375", .data = &sm6350_data, }, 2621924272bSKonrad Dybcio { .compatible = "qcom,sm7125", .data = &sc7180_data }, 2631924272bSKonrad Dybcio { .compatible = "qcom,sm7150", .data = &sm7150_data, }, 2640b6974bbSLuca Weiss { .compatible = "qcom,sm7225", .data = &sm6350_data, }, 26561f3c19aSDmitry Baryshkov { .compatible = "qcom,sm7325", .data = &sc7280_data, }, 2661924272bSKonrad Dybcio { .compatible = "qcom,sm8150", .data = &sm8150_data, }, 2671924272bSKonrad Dybcio { .compatible = "qcom,sm8250", .data = &sm8250_data, }, 2681924272bSKonrad Dybcio { .compatible = "qcom,sm8350", .data = &sm8350_data, }, 2691924272bSKonrad Dybcio { .compatible = "qcom,sm8450", .data = &sm8350_data, }, 2701924272bSKonrad Dybcio { .compatible = "qcom,sm8550", .data = &sm8550_data, }, 2711924272bSKonrad Dybcio { .compatible = "qcom,sm8650", .data = &sm8550_data, }, 2721924272bSKonrad Dybcio { .compatible = "qcom,sm8750", .data = &sm8750_data, }, 2731924272bSKonrad Dybcio { .compatible = "qcom,x1e80100", .data = &x1e80100_data, }, 2741924272bSKonrad Dybcio { .compatible = "qcom,x1p42100", .data = &x1e80100_data, }, 2751924272bSKonrad Dybcio { } 2761924272bSKonrad Dybcio }; 2771924272bSKonrad Dybcio 2781924272bSKonrad Dybcio const struct qcom_ubwc_cfg_data *qcom_ubwc_config_get_data(void) 2791924272bSKonrad Dybcio { 2801924272bSKonrad Dybcio const struct of_device_id *match; 2811924272bSKonrad Dybcio struct device_node *root; 2821924272bSKonrad Dybcio 2831924272bSKonrad Dybcio root = of_find_node_by_path("/"); 2841924272bSKonrad Dybcio if (!root) 2851924272bSKonrad Dybcio return ERR_PTR(-ENODEV); 2861924272bSKonrad Dybcio 2871924272bSKonrad Dybcio match = of_match_node(qcom_ubwc_configs, root); 2881924272bSKonrad Dybcio of_node_put(root); 2891924272bSKonrad Dybcio if (!match) { 2901924272bSKonrad Dybcio pr_err("Couldn't find UBWC config data for this platform!\n"); 2911924272bSKonrad Dybcio return ERR_PTR(-EINVAL); 2921924272bSKonrad Dybcio } 2931924272bSKonrad Dybcio 2941924272bSKonrad Dybcio return match->data; 2951924272bSKonrad Dybcio } 2961924272bSKonrad Dybcio EXPORT_SYMBOL_GPL(qcom_ubwc_config_get_data); 2971924272bSKonrad Dybcio 2981924272bSKonrad Dybcio MODULE_LICENSE("GPL"); 2991924272bSKonrad Dybcio MODULE_DESCRIPTION("UBWC config database for QTI SoCs"); 300