On Tue, Apr 9, 2019 at 5:15 AM Rocky Liao <rjliao@xxxxxxxxxxxxxx> wrote: > > On 2019-04-04 20:32, Marc Gonzalez wrote: > > +robh > > > > On 04/04/2019 11:08, Rocky Liao wrote: > > > >> This patchs patch adds an optional device property nvm-postfix to > >> allow the > >> driver to load customized nvm file based on this property > > > > While text /before/ is indeed called a "prefix", text /after/ is not a > > "postfix", > > but a "suffix". > > > > > >> Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt | 2 ++ > >> 1 file changed, 2 insertions(+) > >> > >> diff --git > >> a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt > >> b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt > >> index 824c0e2..70cda4b 100644 > >> --- a/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt > >> +++ b/Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt > >> @@ -16,6 +16,7 @@ Optional properties for compatible string > >> qcom,qca6174-bt: > >> > >> - enable-gpios: gpio specifier used to enable chip > >> - clocks: clock provided to the controller (SUSCLK_32KHZ) > >> + - nvm-postfix: nvm file postfix to load customized nvm file > > > > The device tree is supposed to describe hardware. > > > > The name of which file to load can hardly be considered part of the HW. > > > > Possible solutions: > > 1) derive the file name from the compatible string > > 2) pass the name as a module parameter > > 3) something else > > > > > >> @@ -39,6 +40,7 @@ serial@7570000 { > >> > >> enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>; > >> clocks = <&divclk4>; > >> + nvm-postfix = "i2s"; > >> }; > >> }; > > > > If one provides the entire suffix, including the underscore, then you > > can > > simplify the code: > > > > snprintf(config.fwname, sizeof(config.fwname), "qca/nvm_%08x%s.bin", > > soc_ver, suffix ? suffix : ""); > > > > Regards > . > Hi Marc, > > The major purpose for that property is about the BT audio bus type, can > it be considered as part of the HW? If yes maybe we can use a property > name "audio-bus" to reflect that. > > If not then I will adopt the solution 1 to add a new compatible string > "{ .compatible = "qcom,qca6174-bt-i2s" }" and load specific nvm for this > compatible string, please feel free to let me know if any other > concerns. I don't think the suggestion was to add the nvm string to the compatible, but rather compatible strings serve as a map key. Having board specific firmware files for wifi/bt is pretty common, but parameters for 'i2s' is a bit strange. So a better explanation of what parameters this contains would help. How/when does it vary, for example? Also, if it is only a handful of parameters, making them DT properties is preferred. Rob